class Koine::SqlBuilder::Adapter

Constants

ArgumentError
INTEGER_REGEXP

Attributes

joiner[R]

Public Class Methods

new(joiner: "\s") click to toggle source
# File lib/koine/sql_builder/adapter.rb, line 12
def initialize(joiner: "\s")
  @joiner = joiner
end

Public Instance Methods

create_condition(item) click to toggle source
# File lib/koine/sql_builder/adapter.rb, line 16
def create_condition(item)
  if item.is_a?(Array)
    return condition_from_array(item)
  end

  if item.is_a?(Condition)
    return item
  end

  raise ArgumentError, "Unrecognized condition #{item.inspect}"
end
equal(field, value) click to toggle source
# File lib/koine/sql_builder/adapter.rb, line 28
def equal(field, value)
  Conditions::Equal.new(field, value, adapter: self)
end
quote(value) click to toggle source
# File lib/koine/sql_builder/adapter.rb, line 32
def quote(value)
  if INTEGER_REGEXP.match?(value.to_s)
    return value.to_s
  end

  "\"#{value}\""
end

Private Instance Methods

condition_from_array(array) click to toggle source
# File lib/koine/sql_builder/adapter.rb, line 42
def condition_from_array(array)
  if array.length != 2
    raise ArgumentError, 'Invalid argument'
  end

  equal(array.first, array.last)
end