From b83c497b38dd6a54d6f79e978f4b38253f11d3e1 Mon Sep 17 00:00:00 2001 From: Tadashi Saito Date: Fri, 27 Mar 2015 19:44:18 +0900 Subject: Don't get ancestors' constant as Handler that name is same --- lib/rack/handler.rb | 2 +- test/spec_handler.rb | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) 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 -- cgit v1.2.3-24-ge0c7