Revert "Run callbacks from object's metaclass"
This commit is contained in:
parent
40dbebba28
commit
d8a72b32c5
|
@ -1,7 +1,5 @@
|
||||||
*Edge*
|
*Edge*
|
||||||
|
|
||||||
* Run callbacks from object's metaclass [Josh Peek]
|
|
||||||
|
|
||||||
* Add Array#in_groups which splits or iterates over the array in specified number of groups. #579. [Adrian Mugnolo] Example:
|
* Add Array#in_groups which splits or iterates over the array in specified number of groups. #579. [Adrian Mugnolo] Example:
|
||||||
|
|
||||||
a = (1..10).to_a
|
a = (1..10).to_a
|
||||||
|
|
|
@ -269,15 +269,7 @@ module ActiveSupport
|
||||||
# pass
|
# pass
|
||||||
# stop
|
# stop
|
||||||
def run_callbacks(kind, options = {}, &block)
|
def run_callbacks(kind, options = {}, &block)
|
||||||
callback_chain_method = "#{kind}_callback_chain"
|
self.class.send("#{kind}_callback_chain").run(self, options, &block)
|
||||||
|
|
||||||
# Meta class inherits Class so we don't have to merge it in 1.9
|
|
||||||
if RUBY_VERSION >= '1.9'
|
|
||||||
metaclass.send(callback_chain_method).run(self, options, &block)
|
|
||||||
else
|
|
||||||
callbacks = self.class.send(callback_chain_method) | metaclass.send(callback_chain_method)
|
|
||||||
callbacks.run(self, options, &block)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -84,30 +84,6 @@ class CallbacksTest < Test::Unit::TestCase
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
class MetaclassCallbacksTest < Test::Unit::TestCase
|
|
||||||
module ModuleWithCallbacks
|
|
||||||
def self.extended(object)
|
|
||||||
object.metaclass.before_save :raise_metaclass_callback_called
|
|
||||||
end
|
|
||||||
|
|
||||||
def module_callback_called?
|
|
||||||
@module_callback_called ||= false
|
|
||||||
end
|
|
||||||
|
|
||||||
def raise_metaclass_callback_called
|
|
||||||
@module_callback_called = true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_metaclass_callbacks
|
|
||||||
person = Person.new
|
|
||||||
person.extend(ModuleWithCallbacks)
|
|
||||||
assert !person.module_callback_called?
|
|
||||||
person.save
|
|
||||||
assert person.module_callback_called?
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
class ConditionalCallbackTest < Test::Unit::TestCase
|
class ConditionalCallbackTest < Test::Unit::TestCase
|
||||||
def test_save_conditional_person
|
def test_save_conditional_person
|
||||||
person = ConditionalPerson.new
|
person = ConditionalPerson.new
|
||||||
|
|
Loading…
Reference in New Issue