Sha256: c96375eb6b8398324d7fc8e98c463777c13aa2f99e10f80d7df3251435da579b

Contents?: true

Size: 664 Bytes

Versions: 1

Compression:

Stored size: 664 Bytes

Contents

require 'reverse-polish-calculator/helpers'
require 'reverse-polish-calculator/stack'
require 'reverse-polish-calculator/inputs'
require 'reverse-polish-calculator/input'
require 'reverse-polish-calculator/errors'
require 'reverse-polish-calculator/output'

module ReversePolishCalculator
  
  def self.start
    loop_with_error_handling do   
      stack.add(gets.chomp)
      stack.calculate
      stack.output
    end
  end
  
  def self.stack
    @stack ||= Stack.new
  end
  
  def self.loop_with_error_handling
    loop { yield }
  rescue *Errors::Classes => exception
    Errors.handle(exception)
    Output.clear
    stack.unswap
    retry
  end    
  
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
reverse-polish-calculator-0.0.1 lib/reverse-polish-calculator.rb