diff options
| author | Jérémy Zurcher <jeremy@asynk.ch> | 2012-05-11 11:34:29 +0200 | 
|---|---|---|
| committer | Jérémy Zurcher <jeremy@asynk.ch> | 2012-05-12 09:38:00 +0200 | 
| commit | 20808cfa687b0e1049466bf8e4b9f94523d5dff0 (patch) | |
| tree | 19963fbf4e4737a54073f33685b73c06ac0b29e6 | |
| parent | a1ce57fbbe635c6ae2667e534d070b1ec9feb713 (diff) | |
| download | edoors-ruby-20808cfa687b0e1049466bf8e4b9f94523d5dff0.zip edoors-ruby-20808cfa687b0e1049466bf8e4b9f94523d5dff0.tar.gz | |
Room: adapt to new way
| -rw-r--r-- | lib/evendoors/room.rb | 29 | 
1 files changed, 14 insertions, 15 deletions
| diff --git a/lib/evendoors/room.rb b/lib/evendoors/room.rb index 4e06bf7..b7f6844 100644 --- a/lib/evendoors/room.rb +++ b/lib/evendoors/room.rb @@ -23,11 +23,10 @@ module EvenDoors      #      class Room < Spot          # -        def initialize n, p=nil +        def initialize n, p              super n, p              @spots = {}              @links = {} -            @parent.add_spot self if @parent          end          #          def to_json *a @@ -41,9 +40,9 @@ module EvenDoors          #          def self.json_create o              raise EvenDoors::Exception.new "JSON #{o['kls']} != #{self.name}" if o['kls'] != self.name -            room = self.new o['name'] +            room = self.new o['name'], o['parent']              o['spots'].each do |name,spot| -                room.add_spot eval( spot['kls'] ).json_create(spot) +                eval( spot['kls'] ).json_create(spot.merge!('parent'=>room))              end              o['links'].each do |src,links|                  links.each do |link| @@ -67,12 +66,12 @@ module EvenDoors          end          #          def start! -            puts " * start #{path}" if EvenDoors::Spin.debug_routing +            puts " * start #{path}" if spin.debug_routing              @spots.values.each do |spot| spot.start! if spot.respond_to? :start! end          end          #          def stop! -            puts " * stop #{path}" if EvenDoors::Spin.debug_routing +            puts " * stop #{path}" if spin.debug_routing              @spots.values.each do |spot| spot.stop! if spot.respond_to? :stop! end          end          # @@ -87,7 +86,7 @@ module EvenDoors          end          #          def try_links p -            puts "   -> try_links ..." if EvenDoors::Spin.debug_routing +            puts "   -> try_links ..." if spin.debug_routing              links = @links[p.src.name]              return false if links.nil?              pending_link = nil @@ -98,7 +97,7 @@ module EvenDoors                  if apply_link or (p.link_value==link.cond_value)                      # link matches !                      if pending_link -                        p2 = EvenDoors::Spin.require_p p.class +                        p2 = spin.require_p p.class                          p2.clone_data p                          p2.apply_link! link                          send_p p2 @@ -131,7 +130,7 @@ module EvenDoors          end          #          def send_p p -            puts " * send_p #{(p.next_dst.nil? ? 'no dst' : p.next_dst)} ..." if EvenDoors::Spin.debug_routing +            puts " * send_p #{(p.next_dst.nil? ? 'no dst' : p.next_dst)} ..." if spin.debug_routing              if p.src.nil?                  # do not route orphan particles !!                  p.error! EvenDoors::ERROR_ROUTE_NS, spin @@ -148,12 +147,12 @@ module EvenDoors              else                  p.error! EvenDoors::ERROR_ROUTE_NDNL              end -            puts "   -> #{p.dst.path}#{EvenDoors::ACT_SEP}#{p.action}" if EvenDoors::Spin.debug_routing -            EvenDoors::Spin.send_p p +            puts "   -> #{p.dst.path}#{EvenDoors::ACT_SEP}#{p.action}" if spin.debug_routing +            spin.send_p p          end          #          def send_sys_p p -            puts " * send_sys_p #{(p.next_dst.nil? ? 'no dst' : p.next_dst)} ..." if EvenDoors::Spin.debug_routing +            puts " * send_sys_p #{(p.next_dst.nil? ? 'no dst' : p.next_dst)} ..." if spin.debug_routing              if p.next_dst                  p.split_dst!                  if p.door @@ -164,15 +163,15 @@ module EvenDoors              else                  p.error! EvenDoors::ERROR_ROUTE_SND              end -            puts "   -> #{p.dst.path}#{EvenDoors::ACT_SEP}#{p.action}" if EvenDoors::Spin.debug_routing -            EvenDoors::Spin.send_sys_p p +            puts "   -> #{p.dst.path}#{EvenDoors::ACT_SEP}#{p.action}" if spin.debug_routing +            spin.send_sys_p p          end          #          def process_sys_p p              if p.action==EvenDoors::SYS_ACT_ADD_LINK                  add_link EvenDoors::Link.from_particle_data p              end -            EvenDoors::Spin.release_p p +            spin.release_p p          end          #      end | 
