Class: ActiveRecord::UpdateCountersWithValues::QueryBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/active_record/update_counters_with_values/query_builder.rb

Instance Method Summary collapse

Constructor Details

#initialize(klass) ⇒ QueryBuilder

Returns a new instance of QueryBuilder.



4
5
6
# File 'lib/active_record/update_counters_with_values/query_builder.rb', line 4

def initialize(klass)
  @klass = klass
end

Instance Method Details

#call(id, counters) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/active_record/update_counters_with_values/query_builder.rb', line 7

def call(id, counters)
  updates = build_updates(counters)
  conditions = build_conditions(id)
  returns = build_returns(counters)

  ("    UPDATE \#{@klass.connection.quote_table_name(@klass.table_name)}\n    SET\n      \#{updates}\n    WHERE\n      \#{conditions}\n    RETURNING\n      \#{returns}\n  SQL\nend\n")