summary refs log tree commit
diff options
context:
space:
mode:
authorTadashi Saito <tadashi_saito@dwango.co.jp>2015-03-27 19:44:18 +0900
committerAaron Patterson <aaron.patterson@gmail.com>2015-06-11 19:36:29 -0700
commitb83c497b38dd6a54d6f79e978f4b38253f11d3e1 (patch)
tree1ce3cdcf894a42c809b8c802f3e480b2f172a966
parent9971732ed0435cfb9924590031593e0a9eea1b70 (diff)
downloadrack-b83c497b38dd6a54d6f79e978f4b38253f11d3e1.tar.gz
Don't get ancestors' constant as Handler that name is same
-rw-r--r--lib/rack/handler.rb2
-rw-r--r--test/spec_handler.rb4
2 files changed, 5 insertions, 1 deletions
diff --git a/lib/rack/handler.rb b/lib/rack/handler.rb
index f11e37e3..8a5fadd5 100644
--- a/lib/rack/handler.rb
+++ b/lib/rack/handler.rb
@@ -19,7 +19,7 @@ module Rack
       if klass = @handlers[server]
         klass.split("::").inject(Object) { |o, x| o.const_get(x) }
       else
-        const_get(server)
+        const_get(server, false)
       end
 
     rescue NameError => name_error
diff --git a/test/spec_handler.rb b/test/spec_handler.rb
index e8f41fdc..c252c176 100644
--- a/test/spec_handler.rb
+++ b/test/spec_handler.rb
@@ -23,6 +23,10 @@ describe Rack::Handler do
     lambda {
       Rack::Handler.get('boom')
     }.should.raise(LoadError)
+
+    lambda {
+      Rack::Handler.get('Object')
+    }.should.raise(LoadError)
   end
 
   should "get unregistered, but already required, handler by name" do