summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2012-05-09 00:07:16 +0200
committerJérémy Zurcher <jeremy@asynk.ch>2012-05-09 00:07:16 +0200
commitff68d2a0b8cb5715e269f307228bd14c4215d584 (patch)
tree6b14458bcd18c05657b5abea966e4d7835c6aa95
parentbc2a8c439b15823bb3c8cc88184cc1634e8069ce (diff)
downloadedoors-ruby-ff68d2a0b8cb5715e269f307228bd14c4215d584.zip
edoors-ruby-ff68d2a0b8cb5715e269f307228bd14c4215d584.tar.gz
Room, send_p set error ERROR_ROUTE_NDNS if p.src.nil?
-rw-r--r--lib/evendoors.rb1
-rw-r--r--lib/evendoors/room.rb2
2 files changed, 3 insertions, 0 deletions
diff --git a/lib/evendoors.rb b/lib/evendoors.rb
index 31d1745..6ea8644 100644
--- a/lib/evendoors.rb
+++ b/lib/evendoors.rb
@@ -24,6 +24,7 @@ module EvenDoors
ERROR_ROUTE_NMD = 'routing error: no more destination'.freeze
ERROR_ROUTE_RRWD = 'routing error: right room, wrong door'.freeze
ERROR_ROUTE_TRWR = 'routing error: top room, wrong room'.freeze
+ ERROR_ROUTE_NDNS = 'routing error: no destination, no source'.freeze
ERROR_ROUTE_NDNL = 'routing error: no destination, no link'.freeze
ERROR_ROUTE_SND = 'routing error: system no destination'.freeze
ERROR_ROUTE_SNDNA = 'routing error: system no door, no action'.freeze
diff --git a/lib/evendoors/room.rb b/lib/evendoors/room.rb
index 3c7ebc6..be5325b 100644
--- a/lib/evendoors/room.rb
+++ b/lib/evendoors/room.rb
@@ -97,6 +97,8 @@ module EvenDoors
route_p p
puts " -> #{p.dst.path}#{EvenDoors::ACT_SEP}#{p.action}" if EvenDoors::Twirl.debug
EvenDoors::Twirl.send_p p
+ elsif p.src.nil?
+ p.error! EvenDoors::ERROR_ROUTE_NDNS
elsif not try_links p
p.error! EvenDoors::ERROR_ROUTE_NDNL
puts " -> #{p.dst.path}#{EvenDoors::ACT_SEP}#{p.action}" if EvenDoors::Twirl.debug