class RPNParty::CLI

Public Class Methods

new() click to toggle source
# File lib/rpn_party/cli.rb, line 5
def initialize
  @calc = RPNParty::Calculator.new

  puts 'Welcome to RPNParty!'
  print '> '

  loop do
    input = gets

    if input.nil? || input.chomp == 'q'
      puts 'Goodbye!'
      exit
    end

    begin
      @calc.evaluate(input.chomp)
    rescue RPNParty::UnrecognizedInputError => error
      puts error.message
    rescue ZeroDivisionError => error
      puts error.message
    rescue RPNParty::InsufficientOperandsError => error
      puts error.message
    end

    if @calc.result.nil?
      puts 'nil'
    elsif @calc.result.is_a? Array
      puts @calc.result.join(', ')
    else
      puts @calc.result
    end
    print '> '
  end
end