summaryrefslogtreecommitdiffstats
path: root/lib/evendoors/spot.rb
blob: e88bac7129bb03504bd24fbded54dbc6c2888598 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#! /usr/bin/env ruby
# -*- coding: UTF-8 -*-

#
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
        end
        #
        attr_reader :name
        attr_accessor :viewer, :parent
        #
        def path
            return @path if @path
            p = ( @parent ? @parent.path+'/' : '') + name
            @path = p.sub(/^\/+/,'').gsub(/\/{2,}/,'/').sub(/\/+$/,'')
        end
        #
    end
    #
end
#
# EOF