lib/gobstones/lang/expressions/two_arg_expression.rb in gobstones-0.0.2 vs lib/gobstones/lang/expressions/two_arg_expression.rb in gobstones-0.0.3

- old
+ new

@@ -1,38 +1,31 @@ -require 'gobstones/modules/equal_by_class' +require 'gobstones/lang/expressions/expression' module Gobstones - module Lang - - class TwoArgExpression - - include Gobstones::EqualByClass - + class TwoArgExpression < Expression attr_reader :left_expr, :right_expr 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)) + left_expr.evaluate(context).send(selector, right_expr.evaluate(context)) end + + define_method :to_s do + "#{selector} expression" + end end end def initialize(left, right) @left_expr = left @right_expr = right end - def ==(other) - super(other) && - self.left_expr == other.left_expr && - self.right_expr == other.right_expr + def equality_attributes + %i[left_expr right_expr] end - end - end - end