Class: MultiInsert::Query

Inherits:
Object
  • Object
show all
Defined in:
lib/multi_insert/query.rb

Instance Method Summary collapse

Constructor Details

#initialize(table, columns, values, opts = {}) ⇒ Query

Returns a new instance of Query.



6
7
8
9
# File 'lib/multi_insert/query.rb', line 6

def initialize(table, columns, values, opts = {})
  @table = table.to_sym
  @sql_insert = ::MultiInsert::QueryBuilder.insert(table, columns, values, opts = {})
end

Instance Method Details

#executeObject



33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/multi_insert/query.rb', line 33

def execute
  result = ActiveRecord::Base.connection.execute(to_sql)
  if @sql_returning.nil?
    nil
  else
    if @returning_flat
      result.rows.map{|r| r.first}
    else
      result
    end
  end
end

#returning(columns) ⇒ Object



11
12
13
14
15
# File 'lib/multi_insert/query.rb', line 11

def returning(columns)
  @sql_returning = ::MultiInsert::QueryBuilder.returning(columns)
  @returning_flat = false
  self
end

#returning_idObject



17
18
19
20
21
# File 'lib/multi_insert/query.rb', line 17

def returning_id
  @sql_returning = ::MultiInsert::QueryBuilder.returning([:id])
  @returning_flat = true
  self
end

#to_sObject



29
30
31
# File 'lib/multi_insert/query.rb', line 29

def to_s
  to_sql
end

#to_sqlObject



23
24
25
26
27
# File 'lib/multi_insert/query.rb', line 23

def to_sql
  sql = @sql_insert
  sql = "#{sql} #{@sql_returning}" unless @sql_returning.nil?
  sql
end