class Gobstones::Lang::TwoArgExpression

Attributes

left_expr[R]
right_expr[R]

Public Class Methods

evaluates_with(selector) click to toggle source
# File lib/gobstones/lang/expressions/two_arg_expression.rb, line 8
def self.evaluates_with(selector)
  instance_eval do
    define_method :evaluate do |*args|
      context = args.first
      left_expr.evaluate(context).send(selector, right_expr.evaluate(context))
    end

    define_method :to_s do
      "#{selector} expression"
    end
  end
end
new(left, right) click to toggle source
# File lib/gobstones/lang/expressions/two_arg_expression.rb, line 21
def initialize(left, right)
  @left_expr = left
  @right_expr = right
end

Public Instance Methods

equality_attributes() click to toggle source
# File lib/gobstones/lang/expressions/two_arg_expression.rb, line 26
def equality_attributes
  %i[left_expr right_expr]
end