class RPNCalculator::CLI

Attributes

input_processor[R]
input_stack[R]
io_interface[R]

Public Class Methods

new(io_interface, input_processor) click to toggle source
# File lib/rpn-calculator/cli.rb, line 3
def initialize(io_interface, input_processor)
  @io_interface = io_interface
  @input_stack  = []
  @input_processor = input_processor
end

Public Instance Methods

start() click to toggle source
# File lib/rpn-calculator/cli.rb, line 9
def start
  while (input_expression = io_interface.read_input)
    processor_result = input_processor.process(input_expression, input_stack)

    if processor_result.valid?
      print_result_array(processor_result.result)
      @input_stack = processor_result.result
    else
      io_interface.display_output(processor_result.error)
    end
  end
end

Private Instance Methods

print_result_array(result) click to toggle source