Class: RPNCalculator::IoProcessor

Inherits:
Object
  • Object
show all
Defined in:
lib/rpn-calculator/io_processor.rb

Instance Method Summary collapse

Constructor Details

#initialize(io_interface, operation_processor) ⇒ IoProcessor

Returns a new instance of IoProcessor.



3
4
5
6
7
# File 'lib/rpn-calculator/io_processor.rb', line 3

def initialize(io_interface, operation_processor)
  @io_interface = io_interface
  @input_stack  = []
  @operation_processor = operation_processor
end

Instance Method Details

#startObject



9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/rpn-calculator/io_processor.rb', line 9

def start
  while (input = io_interface.read_input)
    processor_result = operation_processor.process(input_stack, input)

    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