lib/gobstones/lang/commands/single_assignment.rb in gobstones-0.0.2 vs lib/gobstones/lang/commands/single_assignment.rb in gobstones-0.0.3

- old
+ new

@@ -1,31 +1,26 @@ -require 'gobstones/modules/equal_by_class' +require 'gobstones/modules/equality_definition' module Gobstones - module Lang + module Commands + class SingleAssignment + include EqualityDefinition - class SingleAssignment + attr_reader :var_name, :expression - include Gobstones::EqualByClass + def initialize(var_name, expression) + @var_name = var_name + @expression = expression + end - attr_reader :var_name, :expression + def equality_attributes + %i[var_name expression] + end - def initialize(var_name, expression) - @var_name, @expression = var_name, expression + def evaluate(context) + context.set(var_name, expression.evaluate(context)) + end end - - def ==(other) - super(other) && - self.var_name == other.var_name && - self.expression == other.expression - end - - def evaluate(context) - context.set var_name, expression.evaluate(context) - end - end - end - end