class Arel::InsertManager

Public Class Methods

new() click to toggle source
Calls superclass method Arel::TreeManager::new
# File lib/arel/insert_manager.rb, line 4
def initialize
  super
  @ast = Nodes::InsertStatement.new
end

Public Instance Methods

columns() click to toggle source
# File lib/arel/insert_manager.rb, line 14
def columns; @ast.columns end
create_values(values, columns) click to toggle source
# File lib/arel/insert_manager.rb, line 40
def create_values values, columns
  Nodes::Values.new values, columns
end
create_values_list(rows) click to toggle source
# File lib/arel/insert_manager.rb, line 44
def create_values_list(rows)
  Nodes::ValuesList.new(rows)
end
insert(fields) click to toggle source
# 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, @ast.columns
  end
  self
end
into(table) click to toggle source
# File lib/arel/insert_manager.rb, line 9
def into table
  @ast.relation = table
  self
end
select(select) click to toggle source
# File lib/arel/insert_manager.rb, line 17
def select select
  @ast.select = select
end
values=(val;) click to toggle source
# File lib/arel/insert_manager.rb, line 15
def values= val; @ast.values = val; end