José Valim
033e0a041f
ActiveRecord and ActionPack now use the new descendants implementation.
2010-06-19 17:15:21 +02:00
José Valim
b67ec8ba20
class_attribute is not a direct replacement of class_inheritable_*.
...
If you are setting a hash or an array in class_attribute or you need
to freeze it, to ensure people won't modify it in place or you need
to dup it on inheritance.
2010-06-10 19:39:09 +02:00
Mislav Marohnić
2161b8745a
improve how ActiveRecord::Observer defines callbacks on observed models
...
Instead of using a single `notify_observers` call for every callback type,
each observer now registers a unique callback for itself. Example:
before_save :_notify_user_observer_for_before_save
def _notify_user_observer_for_before_save
observer.update(:before_save, self)
end
Benefit: "before" callbacks halt when `observer.update` returns false.
This way, ActiveRecord observers can prevent records from saving.
[#4087 state:committed]
Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net >
2010-04-16 13:12:53 -07:00
Jeremy Kemper
e5ab4b0d07
Convert to class_attribute
2010-02-01 02:02:42 -08:00
José Valim
4f37b97033
Changed ActiveRecord to use new callbacks and speed up observers by only notifying events that are actually being consumed.
...
Signed-off-by: Joshua Peek <josh@joshpeek.com >
2009-09-08 10:26:39 -05:00
Joshua Peek
4d70359200
Integrate ActiveModel::Observing into ActiveRecord
2009-06-10 23:36:44 -05:00
Joshua Peek
4e50a35fa2
Break up DependencyModule's dual function of providing a "depend_on" DSL and "included" block DSL into separate modules. But, unify both approaches under AS::Concern.
2009-05-28 11:35:36 -05:00
Bryan Helmkamp
a2875bec9a
Use DependencyModule for included hooks in ActiveRecord
2009-05-11 22:23:47 -04:00
George Ogata
e8fc894f66
Make observers define #after_find in the model only if needed.
...
[#676 state:resolved]
Signed-off-by: Michael Koziarski <michael@koziarski.com >
2008-07-26 16:26:08 +02:00
Stefan Kaes
fbef982e4b
Observers not longer add an after_find method to the observed class.
...
[#625 state:resolved]
2008-07-15 16:48:16 -07:00
George Ogata
bc4a2f156b
Fix observers that use after_find. [ #375 state:resolved]
...
Signed-off-by: Pratik Naik <pratiknaik@gmail.com >
2008-06-17 19:45:18 +01:00
Pratik Naik
98dc582742
Merge docrails.
...
Signed-off-by: Pratik Naik <pratiknaik@gmail.com >
2008-05-25 12:29:00 +01:00
Jeremy Kemper
23e58a0552
Fix observed_class. References #11099 .
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8889 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2008-02-17 22:52:55 +00:00
Michael Koziarski
f3fd2b18b7
Add test for Observer#observer_class and change the implementation slightly. Closes #11099 [ernesto.jimenez]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8875 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2008-02-15 23:09:51 +00:00
Rick Olson
5ef2b089f0
Reshuffle load order so that routes and observers are initialized after plugins and app initializers. Closes #10980 [rick, fxn]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8787 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2008-02-02 20:18:18 +00:00
Jeremy Kemper
7e56c72fae
observed_subclasses gives [] if there are no observed classes
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8602 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2008-01-09 01:33:15 +00:00
Jeremy Kemper
750f15bc26
Ruby 1.9 compat: Class#subclasses is now protected
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8478 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-12-22 04:50:12 +00:00
Rick Olson
f56dd107cd
Observers can observe model names as symbols properly now. Closes #9869 [queso]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7872 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-10-14 05:20:24 +00:00
David Heinemeier Hansson
e38ad5ddcc
Added the possibility of using symbols in addition to concrete classes with ActiveRecord::Observer#observe #3998 [robbyrussell/tarmo]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7539 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-09-22 17:05:15 +00:00
Jeremy Kemper
e6941149ab
Deprecation: removed Reloadable.
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7473 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-09-14 00:25:59 +00:00
David Heinemeier Hansson
08d23d5375
Allow sweepers to be created solely for expiring after controller actions, not model changes [DHH] Added assigns method to ActionController::Caching::Sweeper to easily access instance variables on the controller [DHH]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7128 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-06-26 20:45:41 +00:00
Rick Olson
52547f5331
Add an attribute reader method for ActiveRecord::Base.observers [Rick Olson]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5211 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-09-30 01:37:07 +00:00
Rick Olson
69266a063b
Remove ActiveRecord::Base.reset since Dispatcher doesn't use it anymore. [Rick Olson]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4743 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-08-09 16:54:36 +00:00
Nicholas Seckar
74165eb6ac
New dependencies implementation
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4728 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-08-08 21:21:04 +00:00
Rick Olson
e8f0b1ddd9
Refactor ActiveRecord::Base.reset_subclasses to #reset, and add global observer resetting. [Rick Olson]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4683 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-08-06 02:08:29 +00:00
Jeremy Kemper
6a1a1e5536
r4738@asus: jeremy | 2006-06-29 20:18:43 -0700
...
Observers also watch subclasses created after they are declared. Closes #5535 .
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4521 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-06-30 04:38:24 +00:00
Marcel Molina
6186490962
Replace Ruby's deprecated append_features in favor of included. [Marcel Molina Jr.]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4310 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-04-29 18:10:14 +00:00
David Heinemeier Hansson
a4c6442612
More docs for observers ( closes #3996 ) [Robby Russel]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3744 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-03-02 03:02:51 +00:00
David Heinemeier Hansson
5cbc062c8a
Just go with Subclasses instead of OnlySubclasses
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3534 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-02-04 16:26:55 +00:00
Nicholas Seckar
1bce58b312
Add Reloadable::OnlySubclasses which handles the common case where a base class should not be reloaded, but its subclasses should be.
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3521 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-02-02 05:41:00 +00:00
David Heinemeier Hansson
01b1a87729
Added reusable reloading support through the inclusion of the Relodable module that all subclasses of ActiveRecord::Base, ActiveRecord::Observer, ActiveController::Base, and ActionMailer::Base automatically gets [DHH]. Added auto-loading support for classes in modules, so Conductor::Migration will look for conductor/migration.rb and Conductor::Database::Settings will look for conductor/database/settings.rb [Nicholas Seckar]. Refactored extensions to module, class, and object in active support [DHH]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3493 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-01-29 00:37:39 +00:00
Marcel Molina
0ba5bd583b
Update documentation for observers to reflect new configuration system.
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2766 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-10-27 16:06:04 +00:00
David Heinemeier Hansson
6720efb8e3
Use assignment instead of call
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2329 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-09-25 08:50:47 +00:00
David Heinemeier Hansson
7f86e026f6
Use assignment instead of call
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2327 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-09-25 08:48:30 +00:00
David Heinemeier Hansson
948be2c998
Added new symbol-driven approach to activating observers with Base#observer [DHH]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2326 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-09-25 08:26:29 +00:00
David Heinemeier Hansson
6f95c49a15
Fixed that Observers didn't observe sub-classes #627 [Florian Weber]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2263 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-09-19 16:34:34 +00:00
David Heinemeier Hansson
ea803aa4e3
Doc changes
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1141 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-04-10 17:47:04 +00:00
David Heinemeier Hansson
e819da27f4
Updated docs #1070
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1128 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-04-10 15:13:05 +00:00
David Heinemeier Hansson
4eab375805
Finished polishing API docs
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@773 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-02-23 23:51:34 +00:00
David Heinemeier Hansson
d5de666056
Added that Observers can use the observes class method instead of overwriting self.observed_class()
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@367 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-10 16:06:04 +00:00
David Heinemeier Hansson
db045dbbf6
Initial
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2004-11-24 01:04:44 +00:00