aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel/lib/active_model/observing.rb
diff options
context:
space:
mode:
authorrick <technoweenie@gmail.com>2008-06-29 12:13:58 -0700
committerrick <technoweenie@gmail.com>2008-06-29 12:13:58 -0700
commit01db5ded54b0e3a2ea80d28e4841d40fcec23cdf (patch)
tree9d30b4c51da7e8f0fb0fc77126450f63fd08e8fa /activemodel/lib/active_model/observing.rb
parent4cf93935b2478201863c01569e894c9dcf7e9074 (diff)
parentc9e366e997c6f3a383cfaa6351fa847e92de7fe4 (diff)
downloadrails-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.rb18
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