class Robotoy::Services::Move
Public Class Methods
new(robot:, table:, range:)
click to toggle source
# File lib/robotoy/services/move.rb, line 4 def initialize(robot:, table:, range:) @robot = robot @table = table @range = range.to_i end
Public Instance Methods
perform()
click to toggle source
# File lib/robotoy/services/move.rb, line 10 def perform @robot.validate_if_placed send(@robot.orientation) end
Private Instance Methods
east()
click to toggle source
# File lib/robotoy/services/move.rb, line 27 def east @table.validate_next_position(x: @robot.x + @range) @robot.x += @range end
method_missing(_name, *_args)
click to toggle source
# File lib/robotoy/services/move.rb, line 37 def method_missing(_name, *_args) raise Robotoy::NotValidMethodError end
north()
click to toggle source
# File lib/robotoy/services/move.rb, line 17 def north @table.validate_next_position(y: @robot.y + @range) @robot.y += @range end
south()
click to toggle source
# File lib/robotoy/services/move.rb, line 22 def south @table.validate_next_position(y: @robot.y - @range) @robot.y -= @range end
west()
click to toggle source
# File lib/robotoy/services/move.rb, line 32 def west @table.validate_next_position(x: @robot.x - @range) @robot.x -= @range end