# File lib/riddle/query/insert.rb, line 4 def initialize(index, columns = [], values = []) @index = index @columns = columns @values = values.first.is_a?(Array) ? values : [values] @replace = false end
# File lib/riddle/query/insert.rb, line 11 def replace! @replace = true self end
# File lib/riddle/query/insert.rb, line 16 def to_sql "#{command} INTO #{@index} (#{columns_to_s}) VALUES (#{values_to_s})" end
# File lib/riddle/query/insert.rb, line 26 def columns_to_s columns.join(', ') end
# File lib/riddle/query/insert.rb, line 22 def command @replace ? 'REPLACE' : 'INSERT' end
# File lib/riddle/query/insert.rb, line 38 def translated_value(value) case value when String "'#{value}'" when TrueClass, FalseClass value ? 1 : 0 else value end end
# File lib/riddle/query/insert.rb, line 30 def values_to_s values.collect { |value_set| value_set.collect { |value| translated_value(value) }.join(', ') }.join('), (') end