about summary refs log tree commit homepage
path: root/lib/mongrel.rb
diff options
context:
space:
mode:
authorevanweaver <evanweaver@19e92222-5c0b-0410-8929-a290d50e31e9>2007-10-22 03:47:56 +0000
committerevanweaver <evanweaver@19e92222-5c0b-0410-8929-a290d50e31e9>2007-10-22 03:47:56 +0000
commite225ee6500ac948ee8b25c0dac95f94c2d6707bf (patch)
treefe00faf4e523f7df66b0ca7b68bb809a994e1331 /lib/mongrel.rb
parent449bdf6b7ed84ef3446a165c75cf532f68abdf97 (diff)
downloadunicorn-e225ee6500ac948ee8b25c0dac95f94c2d6707bf.tar.gz
git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/trunk@724 19e92222-5c0b-0410-8929-a290d50e31e9
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