File tree Expand file tree Collapse file tree 2 files changed +14
-3
lines changed
Expand file tree Collapse file tree 2 files changed +14
-3
lines changed Original file line number Diff line number Diff line change @@ -195,7 +195,7 @@ class << self
195195 def observe ( *models )
196196 models . flatten!
197197 models . collect! { |model | model . respond_to? ( :to_sym ) ? model . to_s . camelize . constantize : model }
198- redefine_method ( :observed_classes ) { models }
198+ singleton_class . redefine_method ( :observed_classes ) { models }
199199 end
200200
201201 # Returns an array of Classes to observe.
Original file line number Diff line number Diff line change @@ -95,13 +95,13 @@ def setup
9595class ObserverTest < ActiveModel ::TestCase
9696 def setup
9797 ObservedModel . observers = :foo_observer
98- FooObserver . instance_eval do
98+ FooObserver . singleton_class . instance_eval do
9999 alias_method :original_observed_classes , :observed_classes
100100 end
101101 end
102102
103103 def teardown
104- FooObserver . instance_eval do
104+ FooObserver . singleton_class . instance_eval do
105105 undef_method :observed_classes
106106 alias_method :observed_classes , :original_observed_classes
107107 end
@@ -160,4 +160,15 @@ def teardown
160160 end
161161 assert_equal :in_around_save , yielded_value
162162 end
163+
164+ test "observe redefines observed_classes class method" do
165+ class BarObserver < ActiveModel ::Observer
166+ observe :foo
167+ end
168+
169+ assert_equal [ Foo ] , BarObserver . observed_classes
170+
171+ BarObserver . observe ( ObservedModel )
172+ assert_equal [ ObservedModel ] , BarObserver . observed_classes
173+ end
163174end
You can’t perform that action at this time.
0 commit comments