summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/evendoors/particle.rb4
-rw-r--r--lib/evendoors/room.rb17
2 files changed, 9 insertions, 12 deletions
diff --git a/lib/evendoors/particle.rb b/lib/evendoors/particle.rb
index f532be1..f4c4ab7 100644
--- a/lib/evendoors/particle.rb
+++ b/lib/evendoors/particle.rb
@@ -26,8 +26,8 @@ module EvenDoors
@door = o['door']
@action = o['action']
@payload = o['payload']||{}
- @src = EvenDoors::Spin.spin.resolve o['src'] if o['src']
- @dst = EvenDoors::Spin.spin.resolve o['dst'] if o['dst']
+ @src = EvenDoors::Spin.spin.search_down o['src'] if o['src']
+ @dst = EvenDoors::Spin.spin.search_down o['dst'] if o['dst']
o['dsts'].each do |dst| add_dsts dst end if o['dsts']
set_link_fields *o['link_fields'] if o['link_fields']
o['merged'].each do |merged| merge! Particle.json_create(merged) end if o['merged']
diff --git a/lib/evendoors/room.rb b/lib/evendoors/room.rb
index eaa8ace..90b824c 100644
--- a/lib/evendoors/room.rb
+++ b/lib/evendoors/room.rb
@@ -42,17 +42,14 @@ 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
+ def search_down spath
+ return self if spath==path
+ return nil if (spath=~/^#{path}\/(\w+)\/?/)!=0
+ if spot = @spots[$1]
+ return spot if spot.path==spath # needed as Door doesn't implement #search_down
+ return spot.search_down spath
end
- (@parent ? @parent.resolve(search) : nil )
+ nil
end
#
def try_links p