class Cli

gem ‘colorize’

Attributes

eval_input[R]
instream[R]
messages[R]
outstream[R]
user_input[R]

Public Class Methods

new(instream, outstream) click to toggle source
# File lib/cli.rb, line 14
def initialize(instream, outstream)
  @user_input   = ""
  @messages     = Messages.new
  @instream     = instream
  @outstream    = outstream
end

Public Instance Methods

call() click to toggle source
# File lib/cli.rb, line 21
def call
  outstream.puts messages.intro
  loop do
    outstream.puts messages.command_request
    user_input = instream.gets.strip
    eval_input = EvaluateInput.new(user_input)
    break if eval_input.exit?
    process_initial_commands(eval_input)
  end
  outstream.puts messages.ending
end
process_initial_commands(eval_input) click to toggle source
# File lib/cli.rb, line 33
def process_initial_commands(eval_input)
  if eval_input.exit?
    outstream.puts messages.quit_game
  elsif eval_input.play?
    game = Game1.new(instream, outstream, messages)
    game.play
  elsif eval_input.instructions?
    outstream.puts messages.game_instructions
  else
    outstream.puts messages.not_valid_input
  end
end