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
- #build_group_by_query_part ⇒ Object
- #group_by(*fields) ⇒ Object
- #group_by!(*fields) ⇒ Object
- #initial_values ⇒ Object
Instance Method Details
#build_group_by_query_part ⇒ Object
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
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_values ⇒ Object
14 15 16 |
# File 'lib/active_house/querying/group_by.rb', line 14 def initial_values super.merge group_by: [] end |