Sha256: 34c5facc4d50d75c785f2c9c67b9fa8e642ba7930f2f504b3bbe29e35589097f

Contents?: true

Size: 688 Bytes

Versions: 31

Compression:

Stored size: 688 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

31 entries across 31 versions & 1 rubygems

Version Path
bmg-0.23.3 lib/bmg/summarizer/avg.rb
bmg-0.23.2 lib/bmg/summarizer/avg.rb
bmg-0.23.1 lib/bmg/summarizer/avg.rb
bmg-0.23.0 lib/bmg/summarizer/avg.rb
bmg-0.21.5 lib/bmg/summarizer/avg.rb
bmg-0.21.4 lib/bmg/summarizer/avg.rb
bmg-0.20.5 lib/bmg/summarizer/avg.rb
bmg-0.19.3 lib/bmg/summarizer/avg.rb
bmg-0.21.3 lib/bmg/summarizer/avg.rb
bmg-0.21.2 lib/bmg/summarizer/avg.rb
bmg-0.21.0 lib/bmg/summarizer/avg.rb
bmg-0.20.4 lib/bmg/summarizer/avg.rb
bmg-0.20.2 lib/bmg/summarizer/avg.rb
bmg-0.20.1 lib/bmg/summarizer/avg.rb
bmg-0.20.0 lib/bmg/summarizer/avg.rb
bmg-0.19.2 lib/bmg/summarizer/avg.rb
bmg-0.19.1 lib/bmg/summarizer/avg.rb
bmg-0.19.0 lib/bmg/summarizer/avg.rb
bmg-0.18.15 lib/bmg/summarizer/avg.rb
bmg-0.18.14 lib/bmg/summarizer/avg.rb