Sha256: 63a1bd703ee8fe32ca0aded0ac2e1562a32f44ac9ce80e691cc0ea188770e027
Contents?: true
Size: 835 Bytes
Versions: 2
Compression:
Stored size: 835 Bytes
Contents
class Array # http://madeofcode.com/posts/74-ruby-core-extension-array-sum 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 unless method_defined?(:sum) def mean(method = nil, &block) sum(method, &block) / size.to_f end unless method_defined?(:mean) def grouped group_by { |x| x } end unless method_defined?(:grouped) def counted grouped.sort_by{|d, f| -1 * f.size }.map{|d, f| "#{d} : #{f.size}" } end unless method_defined?(:counted) def group_by hash = {} each { |x| hash[yield(x)] = x } hash end unless method_defined?(:group_by) end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
pru-0.1.8 | lib/pru/core_ext/array.rb |
pru-0.1.7 | lib/pru/core_ext/array.rb |