Just go with Subclasses instead of OnlySubclasses

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3533 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
David Heinemeier Hansson 2006-02-04 06:11:42 +00:00
parent a6a683b0bb
commit ed080863d5
4 changed files with 12 additions and 14 deletions

View File

@ -523,7 +523,7 @@ module ActionController #:nodoc:
# ActiveRecord::Observer will mark this class as reloadable even though it should not be.
# However, subclasses of ActionController::Caching::Sweeper should be Reloadable
include Reloadable::OnlySubclasses
include Reloadable::Subclasses
def before(controller)
self.controller = controller

View File

@ -243,7 +243,7 @@ module ActiveRecord #:nodoc:
# on to any new database connections made and which can be retrieved on both a class and instance level by calling +logger+.
cattr_accessor :logger
include Reloadable::OnlySubclasses
include Reloadable::Subclasses
def self.inherited(child) #:nodoc:
@@subclasses[self] ||= []
@ -439,9 +439,7 @@ module ActiveRecord #:nodoc:
attributes.collect { |attr| create(attr) }
else
object = new(attributes)
if scoped?(:create)
scope(:create).each { |att,value| object.send("#{att}=", value) }
end
scope(:create).each { |att,value| object.send("#{att}=", value) } if scoped?(:create)
object.save
object
end

View File

@ -19,7 +19,7 @@ module Reloadable
# Captures the common pattern where a base class should not be reloaded,
# but its subclasses should be.
module OnlySubclasses
module Subclasses
def self.included(base) #nodoc:
base.send :include, Reloadable
(class << base; self; end).send(:define_method, :reloadable?) do

View File

@ -25,14 +25,14 @@ module ReloadableTestSandbox
include Reloadable
end
class OnlySubclassesReloadable
include Reloadable::OnlySubclasses
class SubclassesReloadable
include Reloadable::Subclasses
end
class ASubclassOfOnlySubclassesReloadable < OnlySubclassesReloadable
class ASubclassOfSubclassesReloadable < SubclassesReloadable
end
class AnOnlySubclassReloadableClassSubclassingAReloadableClass
include Reloadable::OnlySubclasses
include Reloadable::Subclasses
end
class ASubclassofAOnlySubclassReloadableClassWhichWasSubclassingAReloadableClass < AnOnlySubclassReloadableClassSubclassingAReloadableClass
@ -51,8 +51,8 @@ class ReloadableTest < Test::Unit::TestCase
end
def test_only_subclass_reloadable
assert ! ReloadableTestSandbox::OnlySubclassesReloadable.reloadable?
assert ReloadableTestSandbox::ASubclassOfOnlySubclassesReloadable.reloadable?
assert ! ReloadableTestSandbox::SubclassesReloadable.reloadable?
assert ReloadableTestSandbox::ASubclassOfSubclassesReloadable.reloadable?
end
def test_inside_hierarchy_only_subclass_reloadable
@ -66,11 +66,11 @@ class ReloadableTest < Test::Unit::TestCase
AReloadableClassWithSubclasses
AReloadableSubclass
AClassWhichDefinesItsOwnReloadable
ASubclassOfOnlySubclassesReloadable
ASubclassOfSubclassesReloadable
)
non_reloadables = %w(
ANonReloadableSubclass
OnlySubclassesReloadable
SubclassesReloadable
)
results = Reloadable.reloadable_classes