module Robot::Simulator::Direction

Constants

DIRECTIONS
TO_CONSTANTS
TO_STRS

Public Class Methods

from_str(direction_str) click to toggle source
# File lib/robot/simulator/direction.rb, line 30
def self.from_str(direction_str)
  key = (direction_str || "").upcase
  raise(ArgumentError, "Direction string '#{direction_str}' must be one of #{TO_CONSTANTS.keys}") unless TO_CONSTANTS.keys.include? key
  TO_CONSTANTS[key]
end
left(direction) click to toggle source

Direction on the left when facing current direction @return [Direction]

# File lib/robot/simulator/direction.rb, line 10
def self.left(direction)
  validate direction

  DIRECTIONS[(direction + 1) % 4]
end
right(direction) click to toggle source

Direction on the right when facing current direction @return [Direction]

# File lib/robot/simulator/direction.rb, line 18
def self.right(direction)
  validate direction

  DIRECTIONS[(direction - 1 + 4) % 4]
end
to_str(direction) click to toggle source
# File lib/robot/simulator/direction.rb, line 24
def self.to_str(direction)
  validate direction

  TO_STRS[direction]
end

Private Class Methods

validate(direction) click to toggle source
# File lib/robot/simulator/direction.rb, line 36
def self.validate(direction)
  raise(ArgumentError, "Direction must be one of #{DIRECTIONS}") unless DIRECTIONS.include?(direction)
end