Sha256: 1624a64535b641dc82cf7840bcfc90366b23a1b81c6e6b6244f51416a9821be2

Contents?: true

Size: 572 Bytes

Versions: 1

Compression:

Stored size: 572 Bytes

Contents

module Paranoia
  def self.included(klazz)
    klazz.extend Query
  end

  module Query
    def paranoid? ; true ; end
  end

  def destroy
    _run_destroy_callbacks
    self[:deleted_at] ||= Time.now
    self.save    
  end
  alias :delete :destroy

  def destroyed?
    !self[:deleted_at].nil?
  end
  alias :deleted? :destroyed?
end

class ActiveRecord::Base
  def self.acts_as_paranoid
    self.send(:include, Paranoia)
    default_scope :conditions => { :deleted_at => nil }
  end

  def self.paranoid? ; false ; end
  def paranoid? ; self.class.paranoid? ; end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
paranoia-1.0.1 lib/paranoia.rb