Class: Polo::SqlTranslator
Defined Under Namespace
Modules: ActiveRecordFourOrGreater, ActiveRecordLessThanFour
Instance Method Summary
collapse
#insert_values
#insert_values
Constructor Details
#initialize(object, configuration = Configuration.new) ⇒ SqlTranslator
Returns a new instance of SqlTranslator.
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# File 'lib/polo/sql_translator.rb', line 9
def initialize(object, configuration = Configuration.new)
@record = object
@configuration = configuration
case @configuration.adapter
when :mysql
@adapter = Polo::Adapters::MySQL.new
when :postgres
@adapter = Polo::Adapters::Postgres.new
else
raise "Unknown SQL adapter: #{@configuration.adapter}"
end
end
|
Instance Method Details
#inserts ⇒ Object
37
38
39
40
41
|
# File 'lib/polo/sql_translator.rb', line 37
def inserts
records.map do |record|
raw_sql(record)
end
end
|
#records ⇒ Object
33
34
35
|
# File 'lib/polo/sql_translator.rb', line 33
def records
Array.wrap(@record)
end
|
#to_sql ⇒ Object
23
24
25
26
27
28
29
30
31
|
# File 'lib/polo/sql_translator.rb', line 23
def to_sql
case @configuration.on_duplicate_strategy
when :ignore
@adapter.ignore_transform(inserts, records)
when :override
@adapter.on_duplicate_key_update(inserts, records)
else inserts
end
end
|