lib/riddle/query/insert.rb in riddle-1.5.6 vs lib/riddle/query/insert.rb in riddle-1.5.7

- old
+ new

@@ -1,49 +1,51 @@ class Riddle::Query::Insert attr_reader :columns, :values - + def initialize(index, columns = [], values = []) @index = index @columns = columns @values = values.first.is_a?(Array) ? values : [values] @replace = false end - + def replace! @replace = true self end - + def to_sql "#{command} INTO #{@index} (#{columns_to_s}) VALUES (#{values_to_s})" end - + private - + def command @replace ? 'REPLACE' : 'INSERT' end - + def columns_to_s columns.join(', ') end - + def values_to_s values.collect { |value_set| value_set.collect { |value| translated_value(value) }.join(', ') }.join('), (') end - + def translated_value(value) case value when String "'#{value.gsub(/['\\]/, '').gsub(/\s+/, ' ')}'" when TrueClass, FalseClass value ? 1 : 0 when Time value.to_i + when Array + "(#{value.join(',')})" else value end end end