From 7b6bfe84f332a3c99656f73cf0251bce0a16ba88 Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Tue, 1 Mar 2011 17:20:10 -0800 Subject: refactor Reference to a ClassCache object, fix lazy lookup in Middleware so that anonymous classes are supported --- actionpack/lib/action_dispatch/middleware/stack.rb | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'actionpack/lib/action_dispatch/middleware/stack.rb') diff --git a/actionpack/lib/action_dispatch/middleware/stack.rb b/actionpack/lib/action_dispatch/middleware/stack.rb index a5f651297a..fe87abb4d0 100644 --- a/actionpack/lib/action_dispatch/middleware/stack.rb +++ b/actionpack/lib/action_dispatch/middleware/stack.rb @@ -7,12 +7,19 @@ module ActionDispatch attr_reader :args, :block def initialize(klass_or_name, *args, &block) - @ref = ActiveSupport::Dependencies::Reference.new(klass_or_name) + @klass = nil + @name = klass_or_name + + if klass_or_name.respond_to?(:name) + @klass = klass_or_name + @name = @klass.name + end + @args, @block = args, block end def klass - @ref.get + @klass ||= ActiveSupport::Inflector.constantize(@name) end def ==(middleware) @@ -22,7 +29,7 @@ module ActionDispatch when Class klass == middleware else - normalize(@ref.name) == normalize(middleware) + normalize(@name) == normalize(middleware) end end -- cgit v1.2.3