Use assignment instead of call
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2327 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
parent
948be2c998
commit
7f86e026f6
@ -1,12 +1,8 @@
|
||||
*SVN*
|
||||
|
||||
* Added new symbol-driven approach to activating observers with Base#observer [DHH]. Example:
|
||||
* Added new symbol-driven approach to activating observers with Base#observers= [DHH]. Example:
|
||||
|
||||
ActiveRecord::Base.observer(:cacher, :garbage_collector)
|
||||
|
||||
...which is the same as doing:
|
||||
|
||||
[ Cacher.instance, GarbageCollector.instance ]
|
||||
ActiveRecord::Base.observers = :cacher, :garbage_collector
|
||||
|
||||
* Added AbstractAdapter#select_value and AbstractAdapter#select_values as convenience methods for selecting single values, instead of hashes, of the first column in a SELECT #2283 [solo@gatelys.com]
|
||||
|
||||
|
@ -10,16 +10,15 @@ def self.append_features(base)
|
||||
module ClassMethods
|
||||
# Activates the observers assigned. Examples:
|
||||
#
|
||||
# # Calls PersonObserver.instance and returns the instance of that observer
|
||||
# ActiveRecord::Base.observer(:person_observer)
|
||||
# # Calls PersonObserver.instance
|
||||
# ActiveRecord::Base.observers = :person_observer
|
||||
#
|
||||
# # Calls Cacher.instance and GarbageCollector.instance
|
||||
# # and returns an array with instances of both
|
||||
# ActiveRecord::Base.observer(:cacher, :garbage_collector)
|
||||
# ActiveRecord::Base.observers = :cacher, :garbage_collector
|
||||
#
|
||||
# # Same as above, just using explicit class references
|
||||
# ActiveRecord::Base.observer(Cacher, GarbageCollector)
|
||||
def observer(*observers)
|
||||
# ActiveRecord::Base.observers = Cacher, GarbageCollector
|
||||
def observers=(*observers)
|
||||
observers = [ observers ].flatten.collect do |observer|
|
||||
observer.is_a?(Symbol) ?
|
||||
observer.to_s.camelize.constantize.instance :
|
||||
|
@ -65,22 +65,22 @@ def test_before_destroy
|
||||
end
|
||||
|
||||
def test_after_save
|
||||
topic_observer = ActiveRecord::Base.observer(:topic_manual_observer)
|
||||
ActiveRecord::Base.observers = :topic_manual_observer
|
||||
|
||||
topic = Topic.find(1)
|
||||
topic.title = "hello"
|
||||
topic.save
|
||||
|
||||
assert topic_observer.has_been_notified?
|
||||
assert_equal :after_save, topic_observer.callbacks.last["callback_method"]
|
||||
assert TopicManualObserver.instance.has_been_notified?
|
||||
assert_equal :after_save, TopicManualObserver.instance.callbacks.last["callback_method"]
|
||||
end
|
||||
|
||||
def test_observer_update_on_save
|
||||
topic_observer = ActiveRecord::Base.observer(TopicManualObserver)
|
||||
ActiveRecord::Base.observers = TopicManualObserver
|
||||
|
||||
topic = Topic.find(1)
|
||||
assert topic_observer.has_been_notified?
|
||||
assert_equal :after_find, topic_observer.callbacks.first["callback_method"]
|
||||
assert TopicManualObserver.instance.has_been_notified?
|
||||
assert_equal :after_find, TopicManualObserver.instance.callbacks.first["callback_method"]
|
||||
end
|
||||
|
||||
def test_auto_observer
|
||||
|
@ -27,7 +27,7 @@
|
||||
# config.action_controller.fragment_cache_store = :file_store, "#{RAILS_ROOT}/cache"
|
||||
|
||||
# Activate observers that should always be running
|
||||
# config.active_record.observer :cacher, :garbage_collector
|
||||
# config.active_record.observers = :cacher, :garbage_collector
|
||||
|
||||
# Make Active Record use UTC-base instead of local time
|
||||
# config.active_record.default_timezone = :utc
|
||||
|
Loading…
Reference in New Issue
Block a user