Class: RPNCalculator::InputProcessor
- Inherits:
-
Object
- Object
- RPNCalculator::InputProcessor
- Defined in:
- lib/rpn-calculator/input_processor.rb
Instance Method Summary collapse
-
#initialize(operation_processor, input_validator, input_parser) ⇒ InputProcessor
constructor
A new instance of InputProcessor.
- #process(input_expression, previous_operations = []) ⇒ Object
Constructor Details
#initialize(operation_processor, input_validator, input_parser) ⇒ InputProcessor
Returns a new instance of InputProcessor.
3 4 5 6 7 |
# File 'lib/rpn-calculator/input_processor.rb', line 3 def initialize(operation_processor, input_validator, input_parser) @input_validator = input_validator @input_parser = input_parser @operation_processor = operation_processor end |
Instance Method Details
#process(input_expression, previous_operations = []) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/rpn-calculator/input_processor.rb', line 9 def process(input_expression, previous_operations = []) validator_result = input_validator.validate(input_expression) return invalid_processor_result(validator_result) unless validator_result.valid? parser_result = input_parser.parse(input_expression) return invalid_processor_result(parser_result) unless parser_result.valid? operation_result = operation_processor.process( previous_operations + parser_result.result ) return invalid_processor_result(operation_result) unless operation_result.valid? Result::Processor.new(operation_result.result) end |