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