Module: Anonymous::ActiveRecord
- Defined in:
- lib/anonymous/active_record.rb
Overview
This module handles anonymization for ActiveRecord models. In order to implement this module you must define a private #anonymization_definitions method in your model.
Retry Functionality: When the model update fails because of an ActiveRecord::RecordNotUnique exception the module will retry the update. This is in the event that the anonymization_definitions randomly produce values that violate a unique constraint in the database.
Instance Method Summary collapse
Instance Method Details
#anonymize ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/anonymous/active_record.rb', line 27 def anonymize anonymizer = Anonymizer.new(attributes, anonymization_definitions) update_attributes(anonymizer.anonymized_attributes) rescue ::ActiveRecord::RecordNotUnique => e @anonymization_attempts ||= 0 max_retries = Anonymous.configuration.max_anonymize_retries raise e if @anonymization_attempts >= max_retries @anonymization_attempts += 1 retry end |
#anonymize! ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/anonymous/active_record.rb', line 15 def anonymize! anonymizer = Anonymizer.new(attributes, anonymization_definitions) update_attributes!(anonymizer.anonymized_attributes) rescue ::ActiveRecord::RecordNotUnique => e @anonymization_attempts ||= 0 max_retries = Anonymous.configuration.max_anonymize_retries raise e if @anonymization_attempts >= max_retries @anonymization_attempts += 1 retry end |