From dc74f0cb1bdbb07accc9412644ff4d30803218a7 Mon Sep 17 00:00:00 2001 From: Marc-Andre Lafortune Date: Mon, 30 Apr 2012 14:20:42 -0400 Subject: [PATCH] notify_observers should be public --- activemodel/lib/active_model/observing.rb | 37 +++++++++++------------ activemodel/test/cases/observing_test.rb | 11 +++++-- 2 files changed, 27 insertions(+), 21 deletions(-) diff --git a/activemodel/lib/active_model/observing.rb b/activemodel/lib/active_model/observing.rb index 4c7dae42f0a..f5ea285ccbd 100644 --- a/activemodel/lib/active_model/observing.rb +++ b/activemodel/lib/active_model/observing.rb @@ -110,25 +110,24 @@ module ActiveModel end end - private - # Fires notifications to model's observers - # - # def save - # notify_observers(:before_save) - # ... - # notify_observers(:after_save) - # end - # - # Custom notifications can be sent in a similar fashion: - # - # notify_observers(:custom_notification, :foo) - # - # This will call +custom_notification+, passing as arguments - # the current object and :foo. - # - def notify_observers(method, *extra_args) - self.class.notify_observers(method, self, *extra_args) - end + # Fires notifications to model's observers + # + # def save + # notify_observers(:before_save) + # ... + # notify_observers(:after_save) + # end + # + # Custom notifications can be sent in a similar fashion: + # + # notify_observers(:custom_notification, :foo) + # + # This will call +custom_notification+, passing as arguments + # the current object and :foo. + # + def notify_observers(method, *extra_args) + self.class.notify_observers(method, self, *extra_args) + end end # == Active Model Observers diff --git a/activemodel/test/cases/observing_test.rb b/activemodel/test/cases/observing_test.rb index c91938a7eec..ade60266029 100644 --- a/activemodel/test/cases/observing_test.rb +++ b/activemodel/test/cases/observing_test.rb @@ -138,7 +138,14 @@ class ObserverTest < ActiveModel::TestCase foo = Foo.new FooObserver.instance.stub = stub FooObserver.instance.stub.expects(:event_with).with(foo) - Foo.send(:notify_observers, :on_spec, foo) + Foo.notify_observers(:on_spec, foo) + end + + test "calls existing observer event from the instance" do + foo = Foo.new + FooObserver.instance.stub = stub + FooObserver.instance.stub.expects(:event_with).with(foo) + foo.notify_observers(:on_spec) end test "passes extra arguments" do @@ -150,7 +157,7 @@ class ObserverTest < ActiveModel::TestCase test "skips nonexistent observer event" do foo = Foo.new - Foo.send(:notify_observers, :whatever, foo) + Foo.notify_observers(:whatever, foo) end test "update passes a block on to the observer" do