diff options
Diffstat (limited to 'lib/evendoors')
| -rw-r--r-- | lib/evendoors/room.rb | 13 | 
1 files changed, 13 insertions, 0 deletions
| diff --git a/lib/evendoors/room.rb b/lib/evendoors/room.rb index d06c00f..eaa8ace 100644 --- a/lib/evendoors/room.rb +++ b/lib/evendoors/room.rb @@ -42,6 +42,19 @@ module EvenDoors              @spin = ( @parent.nil? ? self : @parent.spin )          end          # +        def resolve search +            return self if search==path +            if (search=~/^#{path}\/(\w+)\/?/)==0 +                if spot = @spots[$1] +                    return spot if spot.path==search    # needed as Door doesn't implement #resolve +                    return spot.resolve search +                else +                    nil +                end +            end +            (@parent ? @parent.resolve(search) : nil ) +        end +        #          def try_links p              puts "   -> try_links ..." if EvenDoors::Spin.debug_routing              links = @links[p.src.name] | 
