Class: TempTable::Copy

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(original_table_name, table_name, extra_columns = nil) ⇒ Copy

Returns a new instance of Copy.



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

def initialize(original_table_name, table_name, extra_columns = nil)
  super()
  @table_name = table_name
  @original_table_name = original_table_name
  @extra_columns = extra_columns
end

Instance Attribute Details

#extra_columnsObject

Returns the value of attribute extra_columns.



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

def extra_columns
  @extra_columns
end

#original_table_nameObject

Returns the value of attribute original_table_name.



5
6
7
# File 'lib/temp_table/copy.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/copy.rb', line 5

def table_name
  @table_name
end

Instance Method Details

#performObject



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

def perform
  ActiveRecord::Base.connection.execute "  CREATE TEMPORARY TABLE IF NOT EXISTS \#{table_name} (\n    id SERIAL PRIMARY KEY,\n    original_id INTEGER\n  );\n  SQL\n  add_columns_from_original\n  add_extra_columns unless extra_columns.nil?\n  add_foreign_key\nend\n".squish