Commit 700404ee by Ryan Bigg

Merge pull request #10 from asanghi/readme

Readme + only_deleted scope
parents 7e9adb2a c3e840e8
......@@ -40,7 +40,7 @@ Then run:
class Client < ActiveRecord::Base
acts_as_paranoid
...
end
......@@ -60,6 +60,16 @@ If you want a method to be called on destroy, simply provide a _before\_destroy_
...
end
You can replace the older acts_as_paranoid methods as follows:
find_with_deleted(:all) # => unscoped
find_with_deleted(:first) # => unscoped.first
find_with_deleted(id) # => unscoped.find(id)
find_only_deleted(:all) # => only_deleted
find_only_deleted(:first) # => only_deleted.first
find_only_deleted(id) # => only_deleted.find(id)
## License
This gem is released under the MIT license.
\ No newline at end of file
......@@ -5,6 +5,12 @@ module Paranoia
module Query
def paranoid? ; true ; end
def only_deleted
unscoped {
where("deleted_at is not null")
}
end
end
def destroy
......
......@@ -38,7 +38,7 @@ class ParanoiaTest < Test::Unit::TestCase
assert_equal true, model.deleted_at.nil?
assert model.frozen?
assert_equal 0, model.class.count
assert_equal 0, model.class.unscoped.count
end
......@@ -66,11 +66,22 @@ class ParanoiaTest < Test::Unit::TestCase
model.delete
assert_equal false, model.deleted_at.nil?
assert_equal 0, model.class.count
assert_equal 1, model.class.unscoped.count
end
def test_only_deleted_scope_for_paranoid_models
model = ParanoidModel.new
model.save
model.delete
model2 = ParanoidModel.new
model2.save
assert_equal model, ParanoidModel.only_deleted.last
assert_equal false, ParanoidModel.only_deleted.include?(model2)
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