Permalink
Browse files

fix uninitialized ivar warnings

  • Loading branch information...
1 parent f5ae64d commit 6033e8aeb003a37c0ebce8f6edb4349d94c8e712 @tenderlove tenderlove committed Oct 25, 2012
Showing with 10 additions and 0 deletions.
  1. +10 −0 actionpack/lib/abstract_controller/base.rb
@@ -34,6 +34,15 @@ def abstract!
@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 @@ def abstract!
# (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

0 comments on commit 6033e8a

Please sign in to comment.