aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_dispatch/middleware/stack.rb
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2011-03-01 17:20:10 -0800
committerAaron Patterson <aaron.patterson@gmail.com>2011-03-01 17:20:35 -0800
commit7b6bfe84f332a3c99656f73cf0251bce0a16ba88 (patch)
treefe0fa3c7ef7d0638b9ef9f3db1b259ade1c656de /actionpack/lib/action_dispatch/middleware/stack.rb
parent50ed1a25a4e496a7a67861b1a04d667bd3445bb6 (diff)
downloadrails-7b6bfe84f332a3c99656f73cf0251bce0a16ba88.tar.gz
rails-7b6bfe84f332a3c99656f73cf0251bce0a16ba88.tar.bz2
rails-7b6bfe84f332a3c99656f73cf0251bce0a16ba88.zip
refactor Reference to a ClassCache object, fix lazy lookup in Middleware so that anonymous classes are supported
Diffstat (limited to 'actionpack/lib/action_dispatch/middleware/stack.rb')
-rw-r--r--actionpack/lib/action_dispatch/middleware/stack.rb13
1 files changed, 10 insertions, 3 deletions
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