class Anonymizable::Configuration

Attributes

associations_to_anonymize[R]
associations_to_delete[R]
associations_to_destroy[R]
attrs_to_anonymize[R]
attrs_to_nullify[R]
guard[R]
post_anonymization_callbacks[R]

Public Class Methods

new(klass) click to toggle source
# File lib/anonymizable/configuration.rb, line 16
def initialize(klass)
  @klass                        = klass
  @guard                        = nil
  @attrs_to_nullify             = Set.new
  @attrs_to_anonymize           = Hash.new
  @associations_to_anonymize    = Set.new
  @associations_to_delete       = Set.new
  @associations_to_destroy      = Set.new
  @post_anonymization_callbacks = Set.new
  @public                       = false
  @raise_on_delete          = false
end

Public Instance Methods

after(*callbacks) click to toggle source
# File lib/anonymizable/configuration.rb, line 49
def after(*callbacks)
  callbacks.each do |callback|
    validate_callback(callback)
  end

  @post_anonymization_callbacks += callbacks
end
associations(*associations, &block) click to toggle source
# File lib/anonymizable/configuration.rb, line 45
def associations(*associations, &block)
  instance_eval(&block)
end
attributes(*attrs) click to toggle source
# File lib/anonymizable/configuration.rb, line 35
def attributes(*attrs)
  @attrs_to_anonymize.merge! attrs.extract_options!

  attrs.each do |attr|
      validate_attribute(attr)
    end

  @attrs_to_nullify += attrs
end
only_if(callback) click to toggle source
# File lib/anonymizable/configuration.rb, line 29
def only_if(callback)
  validate_callback(callback)

  @guard = callback
end
public?() click to toggle source
# File lib/anonymizable/configuration.rb, line 57
def public?
  @public
end
raise_on_delete?() click to toggle source
# File lib/anonymizable/configuration.rb, line 61
def raise_on_delete?
  @raise_on_delete
end

Private Instance Methods

anonymize(*associations) click to toggle source
# File lib/anonymizable/configuration.rb, line 75
def anonymize(*associations)
  @associations_to_anonymize += associations
end
delete(*associations) click to toggle source
# File lib/anonymizable/configuration.rb, line 79
def delete(*associations)
  @associations_to_delete += associations
end
destroy(*associations) click to toggle source
# File lib/anonymizable/configuration.rb, line 83
def destroy(*associations)
  @associations_to_destroy += associations
end
public() click to toggle source
# File lib/anonymizable/configuration.rb, line 67
def public
  @public = true
end
raise_on_delete() click to toggle source
# File lib/anonymizable/configuration.rb, line 71
def raise_on_delete
  @raise_on_delete = true
end
validate_attribute(attr) click to toggle source
# File lib/anonymizable/configuration.rb, line 93
def validate_attribute(attr)
  if !@klass.attribute_names.include?(attr.to_s)
    raise ConfigurationError.new("Nonexitent attribute #{attr} on #{@klass}.")
  end
end
validate_callback(callback) click to toggle source
# File lib/anonymizable/configuration.rb, line 87
def validate_callback(callback)
  if !callback.respond_to?(:call) && !callback.is_a?(String) && !callback.is_a?(Symbol)
    raise ConfigurationError.new("Expected #{callback} to respond to 'call' or be a string or symbol.")
  end
end