Sha256: 718d82155e822f3678199f7ac434353f6d7750b0943ac4364df403eff7837d27

Contents?: true

Size: 847 Bytes

Versions: 1

Compression:

Stored size: 847 Bytes

Contents

module Tickethub
  class Aggregate

    def initialize(collection, group = [])
      @group = Array group.dup
      @collection = collection
    end

    def minimum(field)
      @collection.get aggregate: { field: field, group: @group, operation: 'minimum' }
    end

    alias_method :min, :minimum

    def maximum(field)
      @collection.get aggregate: { field: field, group: @group, operation: 'maximum' }
    end

    alias_method :max, :maximum

    def average(field)
      @collection.get aggregate: { field: field, group: @group, operation: 'average' }
    end

    alias_method :avg, :average

    def sum(field)
      @collection.get aggregate: { field: field, group: @group, operation: 'sum' }
    end

    def count(field = :all)
      @collection.get aggregate: { field: field, group: @group, operation: 'count' }
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
tickethub-0.3.61 lib/tickethub/aggregate.rb