Class: SerializationHelper::Load
- Inherits:
-
Object
- Object
- SerializationHelper::Load
show all
- Defined in:
- lib/serialization_helper.rb
Class Method Summary
collapse
Class Method Details
.load(io, truncate = true) ⇒ Object
65
66
67
68
69
|
# File 'lib/serialization_helper.rb', line 65
def self.load(io, truncate = true)
ActiveRecord::Base.connection.transaction do
load_documents(io, truncate)
end
end
|
.load_records(table, column_names, records) ⇒ Object
88
89
90
91
92
93
94
95
96
97
98
99
|
# File 'lib/serialization_helper.rb', line 88
def self.load_records(table, column_names, records)
if column_names.nil?
return
end
columns = column_names.map{|cn| ActiveRecord::Base.connection.columns(table).detect{|c| c.name == cn}}
quoted_column_names = column_names.map { |column| ActiveRecord::Base.connection.quote_column_name(column) }.join(',')
quoted_table_name = SerializationHelper::Utils.quote_table(table)
records.each do |record|
quoted_values = record.zip(columns).map{|c| ActiveRecord::Base.connection.quote(parse_erb(c.first), c.last)}.join(',')
ActiveRecord::Base.connection.execute("INSERT INTO #{quoted_table_name} (#{quoted_column_names}) VALUES (#{quoted_values})")
end
end
|
.load_table(table, data, truncate = true) ⇒ Object
79
80
81
82
83
84
85
86
|
# File 'lib/serialization_helper.rb', line 79
def self.load_table(table, data, truncate = true)
column_names = data['columns']
if truncate
truncate_table(table)
end
load_records(table, column_names, data['records'])
reset_pk_sequence!(table)
end
|
.parse_erb(input) ⇒ Object
61
62
63
|
# File 'lib/serialization_helper.rb', line 61
def self.parse_erb(input)
ERB.new(input).result rescue input
end
|
.reset_pk_sequence!(table_name) ⇒ Object
101
102
103
104
105
|
# File 'lib/serialization_helper.rb', line 101
def self.reset_pk_sequence!(table_name)
if ActiveRecord::Base.connection.respond_to?(:reset_pk_sequence!)
ActiveRecord::Base.connection.reset_pk_sequence!(table_name)
end
end
|
.truncate_table(table) ⇒ Object