Class: Basic101::BinaryOperation

Inherits:
Object
  • Object
show all
Includes:
Identity
Defined in:
lib/basic101/binary_operation.rb

Instance Method Summary collapse

Methods included from Identity

#==

Constructor Details

#initialize(operator, right) ⇒ BinaryOperation

Returns a new instance of BinaryOperation.



9
10
11
12
# File 'lib/basic101/binary_operation.rb', line 9

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

Instance Method Details

#operate(left, runtime) ⇒ Object



14
15
16
17
18
19
20
21
22
# File 'lib/basic101/binary_operation.rb', line 14

def operate(left, runtime)
  if @operator.is_a?(Symbol)
    left_value = left.eval(runtime)
    right_value = @right.eval(runtime)
    left_value.public_send(@operator, right_value)
  else
    @operator.operate(left, @right, runtime)
  end
end