Class: Arel::InsertManager
- Inherits:
-
TreeManager
- Object
- TreeManager
- Arel::InsertManager
- Defined in:
- lib/arel/insert_manager.rb
Instance Method Summary collapse
- #columns ⇒ Object
- #create_values(values) ⇒ Object
- #create_values_list(rows) ⇒ Object
-
#initialize(table = nil) ⇒ InsertManager
constructor
A new instance of InsertManager.
- #insert(fields) ⇒ Object
- #into(table) ⇒ Object
- #select(select) ⇒ Object
- #values=(val) ⇒ Object
Constructor Details
#initialize(table = nil) ⇒ InsertManager
Returns a new instance of InsertManager.
5 6 7 |
# File 'lib/arel/insert_manager.rb', line 5 def initialize(table = nil) @ast = Nodes::InsertStatement.new(table) end |
Instance Method Details
#columns ⇒ Object
14 |
# File 'lib/arel/insert_manager.rb', line 14 def columns; @ast.columns end |
#create_values(values) ⇒ Object
40 41 42 |
# File 'lib/arel/insert_manager.rb', line 40 def create_values(values) Nodes::ValuesList.new([values]) end |
#create_values_list(rows) ⇒ Object
44 45 46 |
# File 'lib/arel/insert_manager.rb', line 44 def create_values_list(rows) Nodes::ValuesList.new(rows) end |
#insert(fields) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/arel/insert_manager.rb', line 21 def insert(fields) return if fields.empty? if String === fields @ast.values = Nodes::SqlLiteral.new(fields) else @ast.relation ||= fields.first.first.relation values = [] fields.each do |column, value| @ast.columns << column values << value end @ast.values = create_values(values) end self end |
#into(table) ⇒ Object
9 10 11 12 |
# File 'lib/arel/insert_manager.rb', line 9 def into(table) @ast.relation = table self end |
#select(select) ⇒ Object
17 18 19 |
# File 'lib/arel/insert_manager.rb', line 17 def select(select) @ast.select = select end |
#values=(val) ⇒ Object
15 |
# File 'lib/arel/insert_manager.rb', line 15 def values=(val); @ast.values = val; end |