Class: Anonymous::Anonymizer

Inherits:
Object
  • Object
show all
Defined in:
lib/anonymous/anonymizer.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(attributes, anonymization_definitions) ⇒ Anonymizer

Returns a new instance of Anonymizer.



5
6
7
8
9
# File 'lib/anonymous/anonymizer.rb', line 5

def initialize(attributes, anonymization_definitions)
  @attributes = symbolize_keys(attributes)
  @anonymization_definitions = symbolize_keys(anonymization_definitions)
  @anonymization_attempts = 0
end

Instance Attribute Details

#anonymization_definitionsObject (readonly)

Returns the value of attribute anonymization_definitions.



3
4
5
# File 'lib/anonymous/anonymizer.rb', line 3

def anonymization_definitions
  @anonymization_definitions
end

Instance Method Details

#anonymized_attributesObject



11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/anonymous/anonymizer.rb', line 11

def anonymized_attributes
  attributes_to_anonymise = non_nil_attributes

  attributes_to_anonymise.each_with_object({}) do |(attr_name, value), result|
    anonymization_definition = anonymization_definitions.fetch(attr_name)

    if anonymization_definition.respond_to?(:call)
      result[attr_name] = anonymization_definition.call(value)
    else
      result[attr_name] = anonymization_definition
    end
  end
end