class JMESPath::Nodes::Comparator

def self.create(relation, left, right)

def self.create(relation, left, right)
  type = begin
    case relation
    when '==' then Comparators::Eq
    when '!=' then Comparators::Neq
    when '>' then Comparators::Gt
    when '>=' then Comparators::Gte
    when '<' then Comparators::Lt
    when '<=' then Comparators::Lte
    end
  end
  type.new(left, right)
end

def check(_left_value, _right_value)

def check(_left_value, _right_value)
  nil
end

def comparable?(left_value, right_value)

def comparable?(left_value, right_value)
  COMPARABLE_TYPES.any? do |type|
    left_value.is_a?(type) && right_value.is_a?(type)
  end
end

def initialize(left, right)

def initialize(left, right)
  @left = left
  @right = right
end

def optimize

def optimize
  self.class.new(@left.optimize, @right.optimize)
end

def visit(value)

def visit(value)
  check(@left.visit(value), @right.visit(value))
end