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 4
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 11
def replace!
  @replace = true
  self
end
to_sql() click to toggle source
# File lib/riddle/query/insert.rb, line 16
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 26
def columns_to_s
  columns.join(', ')
end
command() click to toggle source
# File lib/riddle/query/insert.rb, line 22
def command
  @replace ? 'REPLACE' : 'INSERT'
end
translated_value(value) click to toggle source
# 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
values_to_s() click to toggle source
# 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