class Battleship::Position
Attributes
cardinal[RW]
coord[R]
Public Class Methods
factory(data)
click to toggle source
# File lib/battleship/position.rb, line 8 def self.factory(data) new(*data.split(" ")) rescue ArgumentError fail FactoryError.new("position must be specified as 'x y cardinal' (ie 1 2 N)") end
new(x, y, cardinal, coord_class=Coord)
click to toggle source
# File lib/battleship/position.rb, line 17 def initialize(x, y, cardinal, coord_class=Coord) @coord = coord_class.new(x, y) @cardinal = check(cardinal) end
Public Instance Methods
to_s()
click to toggle source
# File lib/battleship/position.rb, line 22 def to_s "#{coord} #{cardinal}" end
Private Instance Methods
check(cardinal)
click to toggle source
# File lib/battleship/position.rb, line 26 def check(cardinal) return cardinal if CARDINALS.include?(cardinal) fail CardinalError.new("#{cardinal} is not a valid cardinal point") end