Class: Arel::OnConflictDoUpdateManager
- Inherits:
-
TreeManager
- Object
- TreeManager
- Arel::OnConflictDoUpdateManager
- Defined in:
- lib/active_record_upsert/arel/on_conflict_do_update_manager.rb
Instance Method Summary collapse
-
#initialize ⇒ OnConflictDoUpdateManager
constructor
A new instance of OnConflictDoUpdateManager.
- #set(values) ⇒ Object
- #target(column) ⇒ Object
- #target=(column) ⇒ Object
- #target_condition=(where) ⇒ Object
- #to_node ⇒ Object
- #where(expr) ⇒ Object
- #wheres=(exprs) ⇒ Object
Constructor Details
#initialize ⇒ OnConflictDoUpdateManager
Returns a new instance of OnConflictDoUpdateManager.
3 4 5 6 7 8 9 |
# File 'lib/active_record_upsert/arel/on_conflict_do_update_manager.rb', line 3 def initialize super @ast = Nodes::OnConflict.new @action = Nodes::DoUpdateSet.new @ast.action = @action @ctx = @ast end |
Instance Method Details
#set(values) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/active_record_upsert/arel/on_conflict_do_update_manager.rb', line 37 def set values if String === values @action.values = [values] else @action.values = values.map { |column,value| Nodes::Assignment.new( Nodes::UnqualifiedColumn.new(column), value ) } end self end |
#target(column) ⇒ Object
19 20 21 22 |
# File 'lib/active_record_upsert/arel/on_conflict_do_update_manager.rb', line 19 def target(column) @ast.target = column self end |
#target=(column) ⇒ Object
15 16 17 |
# File 'lib/active_record_upsert/arel/on_conflict_do_update_manager.rb', line 15 def target= column @ast.target = column end |
#target_condition=(where) ⇒ Object
11 12 13 |
# File 'lib/active_record_upsert/arel/on_conflict_do_update_manager.rb', line 11 def target_condition= where @ast.where = where end |
#to_node ⇒ Object
33 34 35 |
# File 'lib/active_record_upsert/arel/on_conflict_do_update_manager.rb', line 33 def to_node @ast end |
#where(expr) ⇒ Object
28 29 30 31 |
# File 'lib/active_record_upsert/arel/on_conflict_do_update_manager.rb', line 28 def where expr @action.wheres << expr self end |
#wheres=(exprs) ⇒ Object
24 25 26 |
# File 'lib/active_record_upsert/arel/on_conflict_do_update_manager.rb', line 24 def wheres= exprs @action.wheres = exprs end |