Class: TempTable::InsertRowFromOriginal

Inherits:
Object
  • Object
show all
Defined in:
lib/temp_table/insert_row_from_original.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(original_table_name, original_id, table_name) ⇒ InsertRowFromOriginal

Returns a new instance of InsertRowFromOriginal.



7
8
9
10
11
12
# File 'lib/temp_table/insert_row_from_original.rb', line 7

def initialize(original_table_name, original_id, table_name)
  super()
  @original_table_name = original_table_name
  @table_name = table_name
  @original_id = original_id
end

Instance Attribute Details

#original_idObject

Returns the value of attribute original_id.



5
6
7
# File 'lib/temp_table/insert_row_from_original.rb', line 5

def original_id
  @original_id
end

#original_table_nameObject

Returns the value of attribute original_table_name.



5
6
7
# File 'lib/temp_table/insert_row_from_original.rb', line 5

def original_table_name
  @original_table_name
end

#table_nameObject

Returns the value of attribute table_name.



5
6
7
# File 'lib/temp_table/insert_row_from_original.rb', line 5

def table_name
  @table_name
end

Instance Method Details

#performObject



14
15
16
17
18
19
20
21
22
23
# File 'lib/temp_table/insert_row_from_original.rb', line 14

def perform
  result = ActiveRecord::Base.connection.execute "    INSERT INTO \#{@table_name} (original_id, \#{column_names})\n    SELECT id, \#{column_names} FROM \#{@original_table_name}\n    WHERE id = \#{ActiveRecord::Base.connection.quote(original_id)}\n    RETURNING id;\n  SQL\n\n  result.getvalue(0, 0)\nend\n".squish