class Riddle::Query::Insert
Attributes
columns[R]
values[R]
Public Class Methods
new(index, columns = [], values = [])
click to toggle source
# File lib/riddle/query/insert.rb, line 6 def initialize(index, columns = [], values = []) @index = index @columns = columns @values = values.first.is_a?(Array) ? values : [values] @replace = false end
Public Instance Methods
replace!()
click to toggle source
# File lib/riddle/query/insert.rb, line 13 def replace! @replace = true self end
to_sql()
click to toggle source
# File lib/riddle/query/insert.rb, line 18 def to_sql "#{command} INTO #{@index} (#{columns_to_s}) VALUES (#{values_to_s})" end
Private Instance Methods
columns_to_s()
click to toggle source
# File lib/riddle/query/insert.rb, line 28 def columns_to_s columns.collect { |column| column.to_s == 'id' ? 'id' : "`#{column}`" }.join(', ') end
command()
click to toggle source
# File lib/riddle/query/insert.rb, line 24 def command @replace ? 'REPLACE' : 'INSERT' end
translated_value(value)
click to toggle source
# File lib/riddle/query/insert.rb, line 43 def translated_value(value) case value when String "'#{value.gsub(/['\\]/, '').gsub(/\s+/, ' ')}'" when TrueClass, FalseClass value ? 1 : 0 when Time value.to_i when Date value.to_time.to_i when Array "(#{value.join(',')})" else value end end
values_to_s()
click to toggle source
# File lib/riddle/query/insert.rb, line 35 def values_to_s values.collect { |value_set| value_set.collect { |value| translated_value(value) }.join(', ') }.join('), (') end