diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2012-10-25 10:49:04 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2012-10-25 10:49:13 -0700 |
commit | 6033e8aeb003a37c0ebce8f6edb4349d94c8e712 (patch) | |
tree | b5f60f29b662fa21e9a1db19af853a5b75ae20bf | |
parent | f5ae64dc284712089adb66b55c2a9abcc3f6d8b4 (diff) | |
download | rails-6033e8aeb003a37c0ebce8f6edb4349d94c8e712.tar.gz rails-6033e8aeb003a37c0ebce8f6edb4349d94c8e712.tar.bz2 rails-6033e8aeb003a37c0ebce8f6edb4349d94c8e712.zip |
fix uninitialized ivar warnings
-rw-r--r-- | actionpack/lib/abstract_controller/base.rb | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/actionpack/lib/abstract_controller/base.rb b/actionpack/lib/abstract_controller/base.rb index 388e043f0b..56dc9ab7a1 100644 --- a/actionpack/lib/abstract_controller/base.rb +++ b/actionpack/lib/abstract_controller/base.rb @@ -34,6 +34,15 @@ module AbstractController @abstract = true end + def inherited(klass) # :nodoc: + # define the abstract ivar on subclasses so that we don't get + # uninitialized ivar warnings + unless klass.instance_variable_defined?(:@abstract) + klass.instance_variable_set(:@abstract, false) + end + super + end + # A list of all internal methods for a controller. This finds the first # abstract superclass of a controller, and gets a list of all public # instance methods on that abstract class. Public instance methods of @@ -42,6 +51,7 @@ module AbstractController # (ActionController::Metal and ActionController::Base are defined as abstract) def internal_methods controller = self + controller = controller.superclass until controller.abstract? controller.public_instance_methods(true) end |