public
Description: Rails Plugin - soft-delete your ActiveRecord records with a deleted_at timestamp. This is a much more explicit version of ActsAsParanoid
Homepage: http://6brand.com
Clone URL: git://github.com/JackDanger/permanent_records.git
Search Repo:
ahaller (author)
Fri May 16 14:24:11 -0700 2008
commit  2aacafad73ff7641712f2b04404ebf399c87336c
tree    636fc8652389a508526e255272ef1c33753cf50b
parent  2d3775625d0d80aeadd9da308904789271538d18
name age message
folder MIT-LICENSE Thu Jan 31 10:19:07 -0800 2008 initial checkin of permanent_records plugin [studioda]
folder README Thu Jan 31 10:19:07 -0800 2008 initial checkin of permanent_records plugin [studioda]
folder Rakefile Thu Jan 31 10:19:07 -0800 2008 initial checkin of permanent_records plugin [studioda]
folder init.rb Thu Jan 31 10:19:07 -0800 2008 initial checkin of permanent_records plugin [studioda]
folder install.rb Thu Jan 31 10:19:07 -0800 2008 initial checkin of permanent_records plugin [studioda]
folder lib/ Fri May 16 13:14:06 -0700 2008 has_many :dependent => :destroy should work ... [ahaller]
folder tasks/ Thu Jan 31 10:19:07 -0800 2008 initial checkin of permanent_records plugin [studioda]
folder test/ Fri May 16 14:24:11 -0700 2008 Another test [ahaller]
folder uninstall.rb Thu Jan 31 10:19:07 -0800 2008 initial checkin of permanent_records plugin [studioda]
README
PermanentRecords
================

This plugin prevents any of your records from being destroyed casually.
Any model with a deleted_at datetime column will have that column set rather than being deleted.

Usage
=======

User.find(3).destroy          # sets the 'deleted_at' attribute to Time.now and returns a frozen record
User.find(3).destroy(:force)  # executes the real destroy method, the record will be removed from the database
User.delete_all               # bye bye everything

There are also two named scopes provided for easily searching deleted and not deleted records:

User.send :with_deleted { User.find(:all) }     # only returns deleted records.
User.send :with_not_deleted { User.find(:all) } # you guessed it.

These are named so as to work smoothly with other scoping plugins like scope_out.


Copyright (c) 2008 Jack Danger Canty of adPickles Inc., released under the MIT license