diff options
author | rick <technoweenie@gmail.com> | 2008-06-29 12:13:58 -0700 |
---|---|---|
committer | rick <technoweenie@gmail.com> | 2008-06-29 12:13:58 -0700 |
commit | 01db5ded54b0e3a2ea80d28e4841d40fcec23cdf (patch) | |
tree | 9d30b4c51da7e8f0fb0fc77126450f63fd08e8fa /activemodel/lib/active_model/observing.rb | |
parent | 4cf93935b2478201863c01569e894c9dcf7e9074 (diff) | |
parent | c9e366e997c6f3a383cfaa6351fa847e92de7fe4 (diff) | |
download | rails-01db5ded54b0e3a2ea80d28e4841d40fcec23cdf.tar.gz rails-01db5ded54b0e3a2ea80d28e4841d40fcec23cdf.tar.bz2 rails-01db5ded54b0e3a2ea80d28e4841d40fcec23cdf.zip |
Merge branch 'state_machine'
Some big changes:
* Added some redundant requires so active_support/inflecto can be loaded
without the rest of ActiveSupport.
* Disabled callbacks and validations until they are added and tested.
* Converted specs back to tests, using ActiveSupport::TestCase and the new
#test helper.
* As an experiment, I imported Scott Barron's awesome AASM gem into
ActiveModel. I added multiple state machine support and vastly improved
the API (no more aasm_* prefixes). All the old tests pass. If this bothers
people, I have no problems removing this and contributing the changes back to
AASM. I just feel like AMo is a better spot for all these 'modelish' features.
Diffstat (limited to 'activemodel/lib/active_model/observing.rb')
-rw-r--r-- | activemodel/lib/active_model/observing.rb | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/activemodel/lib/active_model/observing.rb b/activemodel/lib/active_model/observing.rb index db758f5185..9e99d7472c 100644 --- a/activemodel/lib/active_model/observing.rb +++ b/activemodel/lib/active_model/observing.rb @@ -1,4 +1,6 @@ require 'observer' +require 'singleton' +require 'active_model/core' module ActiveModel module Observing @@ -73,7 +75,7 @@ module ActiveModel # Start observing the declared classes and their subclasses. def initialize self.observed_classes = self.class.models if self.class.models - observed_classes.each { |klass| add_observer! klass } + observed_classes.each { |klass| klass.add_observer(self) } end # Send observed_method(object) if the method exists. @@ -85,16 +87,12 @@ module ActiveModel # Passes the new subclass. def observed_class_inherited(subclass) #:nodoc: self.class.observe(observed_classes + [subclass]) - add_observer!(subclass) + subclass.add_observer(self) end - protected - def observed_classes - @observed_classes ||= [self.class.observed_class] - end - - def add_observer!(klass) - klass.add_observer(self) - end + protected + def observed_classes + @observed_classes ||= [self.class.observed_class] + end end end
\ No newline at end of file |