Sha256: 8c0eff5b54e5b99203698a46b57a19fda47541c567d4ff507f27d186a34f67f9

Contents?: true

Size: 696 Bytes

Versions: 11

Compression:

Stored size: 696 Bytes

Contents

module ActiveHouse
  module Querying
    module GroupBy
      extend ActiveSupport::Concern

      included do
        private :build_group_by_query_part
      end

      def build_group_by_query_part
        "GROUP BY #{values[:group_by].join(', ')}" unless values[:group_by].empty?
      end

      def initial_values
        super.merge group_by: []
      end

      def group_by!(*fields)
        raise ArgumentError, 'wrong number of arguments' if fields.empty?
        formatted_fields = fields.map(&:to_s)
        values[:group_by] = (values[:group_by] + formatted_fields).uniq
        self
      end

      def group_by(*fields)
        dup.group_by!(*fields)
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
active_house-0.8.0 lib/active_house/querying/group_by.rb
active_house-0.7.0 lib/active_house/querying/group_by.rb
active_house-0.6.6 lib/active_house/querying/group_by.rb
active_house-0.6.5 lib/active_house/querying/group_by.rb
active_house-0.6.4 lib/active_house/querying/group_by.rb
active_house-0.6.3 lib/active_house/querying/group_by.rb
active_house-0.6.2 lib/active_house/querying/group_by.rb
active_house-0.6.1 lib/active_house/querying/group_by.rb
active_house-0.6.0 lib/active_house/querying/group_by.rb
active_house-0.5.1 lib/active_house/querying/group_by.rb
active_house-0.5.0 lib/active_house/querying/group_by.rb