From 0e274639b495c358598bcc8d9ebbefceadd6045e Mon Sep 17 00:00:00 2001 From: Xavier Noria Date: Tue, 13 Apr 2010 16:11:36 -0700 Subject: removes unnecessary assignment and local variable in AR::Base#subclasses, and revises its rdoc --- activerecord/lib/active_record/base.rb | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb index d7683a9a16..fd24dcddc3 100755 --- a/activerecord/lib/active_record/base.rb +++ b/activerecord/lib/active_record/base.rb @@ -1275,11 +1275,10 @@ module ActiveRecord #:nodoc: with_scope(method_scoping, :overwrite, &block) end - # ActiveRecord::Base utilizes the inherited hook to know about new subclasses. - # You can access the list of currently loaded ActiveRecord::Base subclasses using this accessor. + # Returns a list of all subclasses of this class, meaning all descendants. def subclasses @@subclasses[self] ||= [] - @@subclasses[self] + extra = @@subclasses[self].inject([]) {|list, subclass| list + subclass.subclasses } + @@subclasses[self] + @@subclasses[self].inject([]) {|list, subclass| list + subclass.subclasses } end public :subclasses -- cgit v1.2.3