Sha256: 775e988600bfa788b144f5f69a9a31bf663033d202f54181bf140b160fd92d62
Contents?: true
Size: 1.17 KB
Versions: 1
Compression:
Stored size: 1.17 KB
Contents
module Paranoid module Relation extend ActiveSupport::Concern included do alias_method_chain :arel, :paranoid alias_method_chain :delete_all, :paranoid end def add_paranoid_condition? @add_paranoid = true unless defined?(@add_paranoid) @klass.paranoid? && @add_paranoid end def arel_with_paranoid if add_paranoid_condition? @arel ||= without_destroyed.arel_without_paranoid else arel_without_paranoid end end def delete_all_with_paranoid(*args) if add_paranoid_condition? with_destroyed.delete_all_without_paranoid(*args) else delete_all_without_paranoid(*args) end end def skip_paranoid_condition @add_paranoid = false end def with_destroyed spawn.tap {|relation| relation.skip_paranoid_condition } end def with_destroyed_only where(@klass.paranoid_only_condition).tap {|relation| relation.skip_paranoid_condition } end def without_destroyed where(@klass.paranoid_condition).tap {|relation| relation.skip_paranoid_condition } end end end ActiveRecord::Relation.class_eval { include Paranoid::Relation }
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
paranoid-0.0.1 | lib/paranoid/relation.rb |