mirror of
https://github.com/github/rails.git
synced 2026-04-26 03:00:59 -04:00
make ActiveRecord::Base.subclasses a public method
Signed-off-by: wycats <wycats@gmail.com>
This commit is contained in:
@@ -1285,11 +1285,15 @@ module ActiveRecord #:nodoc:
|
||||
with_scope(method_scoping, :overwrite, &block)
|
||||
end
|
||||
|
||||
def subclasses #:nodoc:
|
||||
# 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.
|
||||
def subclasses
|
||||
@@subclasses[self] ||= []
|
||||
@@subclasses[self] + extra = @@subclasses[self].inject([]) {|list, subclass| list + subclass.subclasses }
|
||||
end
|
||||
|
||||
public :subclasses
|
||||
|
||||
# Sets the default options for the model. The format of the
|
||||
# <tt>options</tt> argument is the same as in find.
|
||||
#
|
||||
|
||||
@@ -2053,6 +2053,10 @@ class BasicsTest < ActiveRecord::TestCase
|
||||
assert !SubStiPost.descends_from_active_record?
|
||||
end
|
||||
|
||||
def test_base_subclasses_is_public_method
|
||||
assert ActiveRecord::Base.public_methods.include?("subclasses")
|
||||
end
|
||||
|
||||
def test_find_on_abstract_base_class_doesnt_use_type_condition
|
||||
old_class = LooseDescendant
|
||||
Object.send :remove_const, :LooseDescendant
|
||||
|
||||
Reference in New Issue
Block a user