Class: Gobstones::CLI::Runner

Inherits:
Object
  • Object
show all
Defined in:
lib/gobstones/cli/runner.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(code) ⇒ Runner

Returns a new instance of Runner.



14
15
16
17
# File 'lib/gobstones/cli/runner.rb', line 14

def initialize(code)
  @code = code
  @parser = Gobstones::Parser::TreetopParser.new
end

Class Method Details

.run(file_name) ⇒ Object



10
11
12
# File 'lib/gobstones/cli/runner.rb', line 10

def self.run(file_name)
  new(File.read(file_name)).run
end

Instance Method Details

#runObject



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/gobstones/cli/runner.rb', line 19

def run
  print_program_result parse_program.evaluate
rescue Gobstones::Parser::ParseError => e
  handle_parse_error e
rescue Gobstones::Runner::GobstonesTypeError => e
  handle_type_error e
rescue Gobstones::Runner::BoomError => e
  handle_boom_error e
rescue Gobstones::Runner::UndefinedVariableError => e
  handle_undefined_variable_error e
rescue Gobstones::Runner::EmptyCellError => e
  handle_empty_cell_error e
rescue Gobstones::Runner::OutOfBoardError => e
  handle_out_of_board_error e
rescue Gobstones::Runner::DefinitionNotFound => e
  handle_definition_not_found_error e
rescue Gobstones::Runner::WrongArgumentsError => e
  handle_wrong_arguments_error e
rescue Gobstones::Runner::GobstonesRuntimeError => e
  handle_runtime_error e
rescue StandardError => e
  raise e
end