Sha256: 72b68b2278f043dc6d83a09bcd95a9d99189a2d0db1dedc12a3670f029b4318c

Contents?: true

Size: 691 Bytes

Versions: 21

Compression:

Stored size: 691 Bytes

Contents

module Bmg
  class Summarizer
    #
    # Average summarizer.
    #
    # Example:
    #
    #   # direct ruby usage
    #   Bmg::Summarizer.avg(:qty).summarize(...)
    #
    class Avg < Summarizer

      # Returns [0.0, 0.0] as least value.
      def least()
        [0.0, 0.0]
      end

      # Collects one more value + the sum of all
      def _happens(memo, val) 
        [memo.first + val, memo.last + 1]
      end

      # Finalizes the computation.
      def finalize(memo) 
        memo.first / memo.last 
      end

    end # class Avg

    # Factors an average summarizer
    def self.avg(*args, &bl)
      Avg.new(*args, &bl)
    end

  end # class Summarizer
end # module Bmg

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
bmg-0.18.2 lib/bmg/summarizer/avg.rb
bmg-0.18.1 lib/bmg/summarizer/avg.rb
bmg-0.18.0 lib/bmg/summarizer/avg.rb
bmg-0.17.8 lib/bmg/summarizer/avg.rb
bmg-0.17.7 lib/bmg/summarizer/avg.rb
bmg-0.17.6 lib/bmg/summarizer/avg.rb
bmg-0.17.5 lib/bmg/summarizer/avg.rb
bmg-0.17.4 lib/bmg/summarizer/avg.rb
bmg-0.17.3 lib/bmg/summarizer/avg.rb
bmg-0.17.2 lib/bmg/summarizer/avg.rb
bmg-0.16.7 lib/bmg/summarizer/avg.rb
bmg-0.17.1 lib/bmg/summarizer/avg.rb
bmg-0.17.0 lib/bmg/summarizer/avg.rb
bmg-0.16.6 lib/bmg/summarizer/avg.rb
bmg-0.16.5 lib/bmg/summarizer/avg.rb
bmg-0.16.4 lib/bmg/summarizer/avg.rb
bmg-0.16.3 lib/bmg/summarizer/avg.rb
bmg-0.16.2 lib/bmg/summarizer/avg.rb
bmg-0.16.1 lib/bmg/summarizer/avg.rb
bmg-0.16.0 lib/bmg/summarizer/avg.rb