Class: YDD::SerializationHelper::Load
- Inherits:
-
Object
- Object
- YDD::SerializationHelper::Load
- Defined in:
- lib/ydd/serialization_helper.rb
Direct Known Subclasses
Class Method Summary collapse
- .load(io, truncate = true) ⇒ Object
- .load_records(table, column_names, records) ⇒ Object
- .load_table(table, data, truncate = true) ⇒ Object
- .reset_pk_sequence!(table_name) ⇒ Object
- .truncate_table(table) ⇒ Object
Class Method Details
.load(io, truncate = true) ⇒ Object
36 37 38 39 40 |
# File 'lib/ydd/serialization_helper.rb', line 36 def self.load(io, truncate = true) YDD.connection.transaction do load_documents(io, truncate) end end |
.load_records(table, column_names, records) ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/ydd/serialization_helper.rb', line 57 def self.load_records(table, column_names, records) return if column_names.nil? columns = column_names.map{ |cn| YDD.connection.columns(table).detect{ |c| c.name == cn } } quoted_column_names = column_names.map { |column| YDD.connection.quote_column_name(column) }.join(',') quoted_table_name = SerializationHelper::Utils.quote_table(table) #records.sort_by! { |r| r['id'].to_i } if column_names.include? 'id' records.each do |record| quoted_values = record.zip(columns).map{|c| YDD.connection.quote(c.first, c.last)}.join(',') YDD.connection.execute("INSERT INTO #{quoted_table_name} (#{quoted_column_names}) VALUES (#{quoted_values})") end end |
.load_table(table, data, truncate = true) ⇒ Object
50 51 52 53 54 55 |
# File 'lib/ydd/serialization_helper.rb', line 50 def self.load_table(table, data, truncate = true) column_names = data['columns'] truncate_table(table) if truncate load_records(table, column_names, data['records']) reset_pk_sequence!(table) end |
.reset_pk_sequence!(table_name) ⇒ Object
69 70 71 72 73 |
# File 'lib/ydd/serialization_helper.rb', line 69 def self.reset_pk_sequence!(table_name) if YDD.connection.respond_to?(:reset_pk_sequence!) YDD.connection.reset_pk_sequence!(table_name) end end |
.truncate_table(table) ⇒ Object
42 43 44 45 46 47 48 |
# File 'lib/ydd/serialization_helper.rb', line 42 def self.truncate_table(table) begin YDD.connection.execute("TRUNCATE #{SerializationHelper::Utils.quote_table(table)}") rescue Exception YDD.connection.execute("DELETE FROM #{SerializationHelper::Utils.quote_table(table)}") end end |