class Object
Public Class Methods
inherited(child)
click to toggle source
Calls superclass method
# File lib/scoped_search_paranoid.rb, line 4 def self.inherited(child) super if child.column_names.include?("deleted_at") child.class_eval do scope :without_deleted, where(:deleted_at => nil) scope :with_deleted, where("\"#{self.table_name}\".\"deleted_at\" IS NULL OR \"#{self.table_name}\".\"deleted_at\" IS NOT NULL") def deleted? !!deleted_at end def destroy(force=false) if force super() else update_attribute(:deleted_at, Time.now) end end end end if child.column_names.include?("archived_at") child.class_eval do scope :without_archived, where(:archived_at => nil) scope :with_archived, where("\"#{self.table_name}\".\"archived_at\" IS NULL OR \"#{self.table_name}\".\"archived_at\" IS NOT NULL") def archived? !!archived_at end def toggle_archive! self.archived_at = archived? ? nil : Time.now self.save archived_at end end end end
Public Instance Methods
archived?()
click to toggle source
# File lib/scoped_search_paranoid.rb, line 31 def archived? !!archived_at end
deleted?()
click to toggle source
# File lib/scoped_search_paranoid.rb, line 11 def deleted? !!deleted_at end
destroy(force=false)
click to toggle source
Calls superclass method
# File lib/scoped_search_paranoid.rb, line 15 def destroy(force=false) if force super() else update_attribute(:deleted_at, Time.now) end end
toggle_archive!()
click to toggle source
# File lib/scoped_search_paranoid.rb, line 35 def toggle_archive! self.archived_at = archived? ? nil : Time.now self.save archived_at end