class Glimmer::Calculator::Command::Operation

Public Instance Methods

calculate() click to toggle source
# File lib/models/glimmer/calculator/command/operation.rb, line 15
def calculate
  calculation_result = BigDecimal.new(number1.to_s).send(operation_method, BigDecimal.new(number2.to_s)).to_s('F')
  calculation_result.match(/\.0+$/) ? calculation_result.to_i : calculation_result
end
execute() click to toggle source
# File lib/models/glimmer/calculator/command/operation.rb, line 5
def execute          
  if number1 && number2 && operation && !last_command.equals?
    self.result = operation.calculate.to_s            
    self.number1 = self.result
  else
    self.result = last_result || '0'
    self.operation = self
  end
end
operation_method() click to toggle source

Subclasses must implement to indicate operation method on number (e.g. :+ for addition)

# File lib/models/glimmer/calculator/command/operation.rb, line 21
def operation_method
  raise 'Not implemented!'
end