Sha256: e65a685b111787724ceb47869deb8d8e2114550c34f529273362d0bc3e974662

Contents?: true

Size: 851 Bytes

Versions: 4

Compression:

Stored size: 851 Bytes

Contents

# encoding: utf-8

module QueryBuilder::CQL

  module Modifiers

    # Provides COUNT(*|1) clause to SELECT statement
    #
    module Count

      # Adds COUNT clause to the statement
      #
      # @param [Integer] value
      #
      # @return [QueryBuilder::Core::Statement] updated statement
      #
      def count(value = nil)
        self << Clause.new(value: value)
      end

      private

      def maybe_selected
        list = clauses(:selected)
        list.any? ? list.join(", ") : "*"
      end

      # The clause for adding to a statement
      #
      # @api private
      #
      class Clause < Base

        type :selected
        attribute :value

        def to_s
          "COUNT(#{value ? value : "*"})"
        end

      end # class Clause

    end # module Count

  end # module Modifiers

end # module QueryBuilder::CQL

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
query_builder-0.0.4 lib/query_builder/cql/modifiers/count.rb
query_builder-0.0.3 lib/query_builder/cql/modifiers/count.rb
query_builder-0.0.2 lib/query_builder/cql/modifiers/count.rb
query_builder-0.0.1 lib/query_builder/cql/modifiers/count.rb