class Koine::SqlBuilder::Conditions::Comparison

Attributes

adapter[R]
field[R]
value[R]

Public Class Methods

new(field, value, adapter:) click to toggle source
# File lib/koine/sql_builder/conditions/comparison.rb, line 7
def initialize(field, value, adapter:)
  @adapter = adapter
  @field = field.dup
  @value = value.dup
end

Public Instance Methods

not() click to toggle source
# File lib/koine/sql_builder/conditions/comparison.rb, line 13
def not
  not_class.new(field, value, adapter: adapter)
end

Private Instance Methods

nil?() click to toggle source
# File lib/koine/sql_builder/conditions/comparison.rb, line 23
def nil?
  @value.nil?
end
not_class() click to toggle source
# File lib/koine/sql_builder/conditions/comparison.rb, line 27
def not_class
  parts = self.class.to_s.split('::')
  last = parts.pop
  last = "Not#{last}".sub('NotNot', '')
  klass = parts.push(last).join('::')

  if Object.const_defined?(klass)
    return Object.const_get(klass)
  end

  raise NotImplementedError, "Comparison class #{klass} is not defined"
end