class ActiveAny::Relation::WhereClause::Condition
Attributes
key[R]
value[R]
Public Class Methods
new(key, value)
click to toggle source
# File lib/active_any/relation/where_clause.rb, line 9 def initialize(key, value) @key = key @value = value register_handler(BasicObject, :base_handler) register_handler(Regexp, :regexp_handler) register_handler(Range, :range_handler) register_handler(Array, :array_handler) end
Public Instance Methods
evaluate(adapter, record = nil)
click to toggle source
# File lib/active_any/relation/where_clause.rb, line 19 def evaluate(adapter, record = nil) adapter.public_send(handle_for(value), record, key, value) end
to_h()
click to toggle source
# File lib/active_any/relation/where_clause.rb, line 23 def to_h { key => value } end
Private Instance Methods
handle_for(value)
click to toggle source
# File lib/active_any/relation/where_clause.rb, line 29 def handle_for(value) handlers.select { |klass, _| value.is_a?(klass) }.last.last end
handlers()
click to toggle source
# File lib/active_any/relation/where_clause.rb, line 33 def handlers @handlers ||= [] end
register_handler(klass, method)
click to toggle source
# File lib/active_any/relation/where_clause.rb, line 37 def register_handler(klass, method) handlers << [klass, method] end