Module: ActiveHouse::Querying::GroupBy

Extended by:
ActiveSupport::Concern
Included in:
ActiveHouse::QueryBuilder
Defined in:
lib/active_house/querying/group_by.rb

Instance Method Summary collapse

Instance Method Details

#build_group_by_query_partObject



10
11
12
# File 'lib/active_house/querying/group_by.rb', line 10

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

#group_by(*fields) ⇒ Object



25
26
27
# File 'lib/active_house/querying/group_by.rb', line 25

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

#group_by!(*fields) ⇒ Object

Raises:

  • (ArgumentError)


18
19
20
21
22
23
# File 'lib/active_house/querying/group_by.rb', line 18

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

#initial_valuesObject



14
15
16
# File 'lib/active_house/querying/group_by.rb', line 14

def initial_values
  super.merge group_by: []
end