Module: ActiveHouse::Querying::Having
- Extended by:
- ActiveSupport::Concern
- Included in:
- ActiveHouse::QueryBuilder
- Defined in:
- lib/active_house/querying/having.rb
Instance Method Summary collapse
- #build_having_query_part ⇒ Object
- #format_having(conditions) ⇒ Object
- #having(*conditions) ⇒ Object
- #having!(*conditions) ⇒ Object
- #initial_values ⇒ Object
Instance Method Details
#build_having_query_part ⇒ Object
13 14 15 |
# File 'lib/active_house/querying/having.rb', line 13 def build_having_query_part "HAVING\n" + values[:having].join(" AND\n") unless values[:having].empty? end |
#format_having(conditions) ⇒ Object
31 32 33 34 35 36 37 38 |
# File 'lib/active_house/querying/having.rb', line 31 def format_having(conditions) raise ArgumentError, 'wrong number of arguments' if conditions.empty? raise ArgumentError, 'wrong number of arguments' if conditions.empty? return [ActiveHouse::PreparedStatement.prepare_sql(*conditions)] if conditions.size > 1 ActiveHouse::PreparedStatement.build_condition(conditions.first) end |
#having(*conditions) ⇒ Object
27 28 29 |
# File 'lib/active_house/querying/having.rb', line 27 def having(*conditions) dup.having!(*conditions) end |
#having!(*conditions) ⇒ Object
21 22 23 24 25 |
# File 'lib/active_house/querying/having.rb', line 21 def having!(*conditions) formatted_conditions = format_having(conditions) values[:having] = (values[:having] + formatted_conditions).uniq self end |
#initial_values ⇒ Object
17 18 19 |
# File 'lib/active_house/querying/having.rb', line 17 def initial_values super.merge having: [] end |