main
1class NavigateRover
2 def initialize(plateau_size, starting_position, instructions)
3 @plateau_size = plateau_size
4 @x, @y, @heading = starting_position.split()
5 @instructions = instructions.split(//)
6 end
7
8 def run
9 run_against(create_plateau(@plateau_size).deploy_rover_to(@heading, @x.to_i, @y.to_i))
10 end
11
12 private
13
14 def create_plateau(plateau_size)
15 x,y = plateau_size.split(' ')
16 Plateau.new(x,y)
17 end
18
19 def run_against(rover)
20 @instructions.each do |instruction|
21 eval("#{instruction.upcase}Command").new.run(rover)
22 end
23 rover.to_s
24 end
25end