Sha256: c6d46af7566a17e25354613a7d490ae78d899ce7fe09404f84ff0e180ca98714
Contents?: true
Size: 1.1 KB
Versions: 2
Compression:
Stored size: 1.1 KB
Contents
#!/usr/bin/env ruby # -*- encoding: utf-8 -*- # Copyright muflax <mail@muflax.com>, 2013 # License: GNU GPL 3 <http://www.gnu.org/copyleft/gpl.html> module Enumerable def average self.sum.to_f / self.size.to_f end alias :mean :average alias :avg :average def geometric_mean self.reduce(:*).to_f ** (1.0 / self.size.to_f) end def median self.percentile 0.5 end def median_by &block self.percentile_by 0.5, &block end def percentile percent self.sort[(self.size * percent).round] end def percentile_by percent, &block self.sort_by(&block)[(self.size * percent).round] end def triangle self.to_a.triangle end def histogram &block histo = vivaHash 0 self.each do |el| histo[block.call(el)] += 1 end histo end def count_by &block self.histogram(&block).sort_by(&:second).to_h end def rfind *arg, &block self.reverse.find(*arg, &block) end end class Object def in? other other.include?(self) rescue NoMethodError raise ArgumentError.new("The parameter passed to #in? must respond to #include?") end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
muflax-0.3.9 | lib/muflax/enumerable.rb |
muflax-0.3.8 | lib/muflax/enumerable.rb |