Class: Koine::SqlBuilder::Adapter

Inherits:
Object
  • Object
show all
Defined in:
lib/koine/sql_builder/adapter.rb

Constant Summary collapse

ArgumentError =
Class.new(::ArgumentError)
INTEGER_REGEXP =
/^\d+$/

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(joiner: "\s") ⇒ Adapter

Returns a new instance of Adapter.



12
13
14
# File 'lib/koine/sql_builder/adapter.rb', line 12

def initialize(joiner: "\s")
  @joiner = joiner
end

Instance Attribute Details

#joinerObject (readonly)

Returns the value of attribute joiner.



10
11
12
# File 'lib/koine/sql_builder/adapter.rb', line 10

def joiner
  @joiner
end

Instance Method Details

#create_condition(item) ⇒ Object

Raises:



16
17
18
19
20
21
22
23
24
25
26
# 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) ⇒ Object



28
29
30
# File 'lib/koine/sql_builder/adapter.rb', line 28

def equal(field, value)
  Conditions::Equal.new(field, value, adapter: self)
end

#quote(value) ⇒ Object



32
33
34
35
36
37
38
# 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