Module: BulkUploadable::ClassMethods
- Defined in:
- lib/bulk_uploadable.rb
Instance Method Summary collapse
- #bulk_upload(keys, values, use_transaction = false) ⇒ Object
- #perform_sql(sql) ⇒ Object
- #perform_sql_in_transaction(sql) ⇒ Object
Instance Method Details
#bulk_upload(keys, values, use_transaction = false) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/bulk_uploadable.rb', line 12 def bulk_upload(keys, values, use_transaction = false) sql_columns = "(#{keys.join(', ')})" escaped_values = values.collect do |value| value.collect {|v| sanitize(v) } end sql_values = escaped_values.collect do |value| "(#{value.join(', ')})" end.join(', ') sql_query = "INSERT INTO #{self.table_name} #{sql_columns} VALUES #{sql_values}" if use_transaction self.perform_sql_in_transaction sql_query else self.perform_sql sql_query end end |
#perform_sql(sql) ⇒ Object
32 33 34 |
# File 'lib/bulk_uploadable.rb', line 32 def perform_sql(sql) self.connection.execute(sql) end |
#perform_sql_in_transaction(sql) ⇒ Object
36 37 38 39 40 41 |
# File 'lib/bulk_uploadable.rb', line 36 def perform_sql_in_transaction(sql) stmt_result = nil self.transaction do stmt_result = self.connection.execute(sql).to_a end end |