Sha256: 5ecf381b8bf35ecab3e4afa830f203bd16d901ff34450588e0b83a765646dccd
Contents?: true
Size: 1.1 KB
Versions: 1
Compression:
Stored size: 1.1 KB
Contents
class Pru VERSION = File.read( File.join(File.dirname(__FILE__),'..','VERSION') ).strip def self.map(io, code) String.class_eval <<-RUBY, __FILE__, __LINE__ + 1 def _pru(i) #{code} end RUBY i = 1 io.readlines.each do |line| result = line[0..-2]._pru(i) if result == true yield line elsif result.is_a?(Regexp) yield line if line =~ result elsif result yield result end i += 1 end end def self.reduce(array, code) Array.class_eval <<-RUBY, __FILE__, __LINE__ + 1 def _pru #{code} end RUBY array._pru end end # http://madeofcode.com/posts/74-ruby-core-extension-array-sum class Array def sum(method = nil, &block) if block_given? raise ArgumentError, "You cannot pass a block and a method!" if method inject(0) { |sum, i| sum + yield(i) } elsif method inject(0) { |sum, i| sum + i.send(method) } else inject(0) { |sum, i| sum + i } end end end class Array def mean(method = nil, &block) sum(method, &block) / size.to_f end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
pru-0.1.2 | lib/pru.rb |