Sha256: 11d02a9c95e136a12a61e4bf38e8a99f840af49935b561d7edb0a1cc7c4866a3

Contents?: true

Size: 1.02 KB

Versions: 4

Compression:

Stored size: 1.02 KB

Contents

# encoding: utf-8

module Veritas
  class Aggregate

    # The count of a series of values
    class Count < Aggregate

      DEFAULT = 0

      # Return the count for a series of values
      #
      # @example
      #   count = Count.call(count, value)
      #
      # @param [Integer] count
      #
      # @param [Object] _value
      #
      # @return [Integer]
      #
      # @api public
      def self.call(count, value)
        value.nil? ? count : count.succ
      end

      # Return the type returned from #call
      #
      # @return [Class<Attribute::Integer>]
      #
      # @api public
      def type
        Attribute::Integer
      end

      module Methods

        # Return a count aggregate function
        #
        # @example
        #   count = attribute.count
        #
        # @param [Attribute]
        #
        # @return [Count]
        #
        # @api public
        def count
          Count.new(self)
        end

      end # module Methods
    end # class Count
  end # class Aggregate
end # module Veritas

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
veritas-0.0.7 lib/veritas/aggregate/count.rb
veritas-0.0.6 lib/veritas/aggregate/count.rb
veritas-0.0.5 lib/veritas/aggregate/count.rb
veritas-0.0.4 lib/veritas/aggregate/count.rb