Module: ArelExtensions::InsertManager

Included in:
Arel::InsertManager
Defined in:
lib/arel_extensions/insert_manager.rb

Defined Under Namespace

Classes: BulkValues

Instance Method Summary collapse

Instance Method Details

#bulk_insert(cols, data) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/arel_extensions/insert_manager.rb', line 5

def bulk_insert(cols, data)
res_columns = []
case cols.first
when String, Symbol
  cols.each { |c|
    res_columns << @ast.relation[c]
  }
when Array
  if String === cols.first.first
    res_columns = cols.map {|c| [@ast.relation[c.first]] }
  elsif Arel::Attributes::Attribute == cols.first.first
    res_columns = cols
  end
when NilClass
  res_columns = @ast.relation.columns
end
self.values = BulkValues.new(res_columns, data)
@ast.columns = res_columns
end