diff options
author | evanweaver <evanweaver@19e92222-5c0b-0410-8929-a290d50e31e9> | 2007-10-22 03:47:56 +0000 |
---|---|---|
committer | evanweaver <evanweaver@19e92222-5c0b-0410-8929-a290d50e31e9> | 2007-10-22 03:47:56 +0000 |
commit | e225ee6500ac948ee8b25c0dac95f94c2d6707bf (patch) | |
tree | fe00faf4e523f7df66b0ca7b68bb809a994e1331 /lib/mongrel.rb | |
parent | 449bdf6b7ed84ef3446a165c75cf532f68abdf97 (diff) | |
download | unicorn-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.rb | 30 |
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 |