From d916c197fd06eb5f818e2bd75d5d1312c4758975 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Zurcher?= Date: Thu, 10 May 2012 17:22:36 +0200 Subject: Room: implement resolve --- lib/evendoors/room.rb | 13 +++++++++++++ 1 file changed, 13 insertions(+) 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] -- cgit v1.1-2-g2b99