about summary refs log tree commit homepage
path: root/lib/mongrel.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/mongrel.rb')
-rw-r--r--lib/mongrel.rb30
1 files changed, 14 insertions, 16 deletions
diff --git a/lib/mongrel.rb b/lib/mongrel.rb
index d8bf3d8..edee39e 100644
--- a/lib/mongrel.rb
+++ b/lib/mongrel.rb
@@ -59,19 +59,17 @@ module Mongrel
       @matcher = nil
     end
     
-    def register(path, handler)
-      if @routes[path]
-        raise RegistrationError, "#{path.inspect} is already registered"
-      elsif !path or path.empty?
-        raise RegistrationError, "Path is empty"
-      end      
-      @routes[path.dup] = handler
+    def register(uri, handler)
+      raise RegistrationError, "#{uri.inspect} is already registered" if @routes[uri]
+      raise RegistrationError, "URI is empty" if !uri or uri.empty?
+      raise RegistrationError, "URI must begin with a \"#{Const::SLASH}\"" unless uri[0..0] == Const::SLASH
+      @routes[uri.dup] = handler
       rebuild
     end
     
-    def unregister(path)
-      handler = @routes.delete(path)
-      raise RegistrationError, "#{path.inspect} was not registered" unless handler
+    def unregister(uri)
+      handler = @routes.delete(uri)
+      raise RegistrationError, "#{uri.inspect} was not registered" unless handler
       rebuild
       handler
     end
@@ -94,15 +92,15 @@ module Mongrel
     private
     
     def rebuild
-      routes = @routes.sort_by do |path, handler|        
+      routes = @routes.sort_by do |uri, handler|        
         # Sort by name
-        path
-      end.sort_by do |path, handler|          
+        uri
+      end.sort_by do |uri, handler|          
         # Then by descending length
-        -path.length
+        -uri.length
       end
-      @matcher = Regexp.new(routes.map do |path, handler|
-        Regexp.new('^' + Regexp.escape(path))
+      @matcher = Regexp.new(routes.map do |uri, handler|
+        Regexp.new('^' + Regexp.escape(uri))
       end.join('|'))
     end