module Ardm::Property::ParanoidBase::ClassMethods

Public Instance Methods

inherited(model) click to toggle source
Calls superclass method
# File lib/ardm/property/support/paranoid_base.rb, line 36
def inherited(model)
  model.instance_variable_set(:@paranoid_properties, @paranoid_properties.dup)
  model.instance_variable_set(:@paranoid_scopes, @paranoid_scopes.dup)
  super
end
paranoid_properties() click to toggle source

@api private

# File lib/ardm/property/support/paranoid_base.rb, line 57
def paranoid_properties
  @paranoid_properties
end
paranoid_scopes() click to toggle source
# File lib/ardm/property/support/paranoid_base.rb, line 61
def paranoid_scopes
  @paranoid_scopes
end
set_paranoid_property(name, &block) click to toggle source

@api private

# File lib/ardm/property/support/paranoid_base.rb, line 66
def set_paranoid_property(name, &block)
  paranoid_properties[name] = block
end
set_paranoid_scope(conditions) click to toggle source
# File lib/ardm/property/support/paranoid_base.rb, line 70
def set_paranoid_scope(conditions)
  paranoid_scope = conditions
  paranoid_scopes << paranoid_scope
  default_scope { where(paranoid_scope) }
end
with_deleted(&block) click to toggle source

@api public

# File lib/ardm/property/support/paranoid_base.rb, line 43
def with_deleted(&block)
  with_deleted_scope = self.all.with_default_scope
  paranoid_scopes.each do |cond|
    with_deleted_scope.where_values.delete(cond)
  end

  if block_given?
    with_deleted_scope.scoping(&block)
  else
    with_deleted_scope.all
  end
end