Commit ceaaecb1 by Ryan Bigg

Merge pull request #157 from poporul/clear_association_cache

Clear association cache
parents fe706284 5257eec4
......@@ -34,11 +34,7 @@ module Paranoia
alias :deleted :only_deleted
def restore(id, opts = {})
if id.is_a?(Array)
id.map { |one_id| restore(one_id, opts) }
else
only_deleted.find(id).restore!(opts)
end
Array(id).flatten.map { |one_id| only_deleted.find(one_id).restore!(opts) }
end
end
......@@ -97,6 +93,8 @@ module Paranoia
restore_associated_records if opts[:recursive]
end
end
self
end
alias :restore :restore!
......@@ -143,6 +141,8 @@ module Paranoia
end
end
end
clear_association_cache if destroyed_associations.present?
end
end
......
......@@ -290,6 +290,13 @@ class ParanoiaTest < test_framework
assert_equal false, model.destroyed?
end
def test_restore_on_object_return_self
model = ParanoidModel.create
model.destroy
assert_equal model.class, model.restore.class
end
# Regression test for #92
def test_destroy_twice
model = ParanoidModel.new
......@@ -537,6 +544,21 @@ class ParanoiaTest < test_framework
connect! # Reconnect the main connection
end
def test_restore_clear_association_cache_if_associations_present
parent = ParentModel.create
3.times { parent.very_related_models.create }
parent.destroy
assert_equal 0, parent.very_related_models.count
assert_equal 0, parent.very_related_models.size
parent.restore(recursive: true)
assert_equal 3, parent.very_related_models.count
assert_equal 3, parent.very_related_models.size
end
private
def get_featureful_model
FeaturefulModel.new(:name => "not empty")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment