#! /usr/bin/env ruby # -*- coding: UTF-8 -*- # # Copyright 2012 Jérémy Zurcher # # This file is part of evendoors-ruby. # # evendoors-ruby is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # evendoors-ruby is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with evendoors-ruby. If not, see . # module EvenDoors # class Spot # def initialize n, p @name = n # unique in it's room @parent = p # single direct parent @viewer = nil # particle going through that position will be sent there readonly raise EvenDoors::Exception.new "Spot name #{name} is not valid" if @name.include? EvenDoors::PATH_SEP end # attr_reader :name attr_accessor :viewer, :parent # def path return @path if @path @path = ( @parent ? @parent.path+EvenDoors::PATH_SEP : '') + name end # def spin return @spin if @spin @spin = ( @parent.nil? ? self : @parent.spin ) end # end # end # # EOF