class MassInsert::Adapters::AbstractAdapter
Attributes
options[RW]
values[RW]
Public Class Methods
new(values, options)
click to toggle source
Calls superclass method
# File lib/mass_insert/adapters/abstract_adapter.rb, line 6 def initialize(values, options) super(options.fetch(:class_name)) @values = values @options = options end
Public Instance Methods
to_sql()
click to toggle source
# File lib/mass_insert/adapters/abstract_adapter.rb, line 12 def to_sql "#{insert_sql} #{values_sql};" end
Private Instance Methods
array_of_attributes_sql()
click to toggle source
# File lib/mass_insert/adapters/abstract_adapter.rb, line 44 def array_of_attributes_sql values.map do |attrs| columns.map do |name| value = column_value(attrs, name) connection.quote(value) end.join(',') end end
column_value(attrs, column)
click to toggle source
# File lib/mass_insert/adapters/abstract_adapter.rb, line 53 def column_value(attrs, column) attrs.fetch(column.to_sym) do attrs.fetch(column.to_s, nil) end end
columns()
click to toggle source
# File lib/mass_insert/adapters/abstract_adapter.rb, line 18 def columns @columns ||= begin columns = column_names.dup columns.delete(primary_key) unless options[:primary_key] columns.map(&:to_sym) end end
columns_sql()
click to toggle source
# File lib/mass_insert/adapters/abstract_adapter.rb, line 36 def columns_sql "(#{quoted_columns.join(',')})" end
insert_sql()
click to toggle source
# File lib/mass_insert/adapters/abstract_adapter.rb, line 32 def insert_sql "INSERT INTO #{quoted_table_name} #{columns_sql} VALUES" end
quoted_columns()
click to toggle source
# File lib/mass_insert/adapters/abstract_adapter.rb, line 26 def quoted_columns columns.map do |name| connection.quote_column_name(name) end end
values_sql()
click to toggle source
# File lib/mass_insert/adapters/abstract_adapter.rb, line 40 def values_sql "(#{array_of_attributes_sql.join('),(')})" end