Class: RPNCalculator::OperationProcessor

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

Instance Method Summary collapse

Constructor Details

#initialize(operation_classes, input_validator, input_parser) ⇒ OperationProcessor

Returns a new instance of OperationProcessor.



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

def initialize(operation_classes, input_validator, input_parser)
  @input_validator   = input_validator
  @input_parser      = input_parser
  @operation_classes = operation_classes
  @operation_symbols = @operation_classes.keys
end

Instance Method Details

#process(previous_operations, input) ⇒ Object

Refator needed, process should receive parsed input



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

def process(previous_operations, input)
  validator_result = input_validator.validate(input)
  return Result::Processor.new([], validator_result.error) unless validator_result.valid?

  parser_result = input_parser.parse(input)
  return Result::Processor.new([], parser_result.error) unless parser_result.valid?

  process_operations(previous_operations + parser_result.parsed_elements)
end