class DataAnon::Strategy::MongoDB::AnonymizeField
Public Class Methods
new(field, field_strategy, anonymization_strategy)
click to toggle source
# File lib/strategy/mongodb/anonymize_field.rb, line 6 def initialize field, field_strategy, anonymization_strategy @field = field @field_strategy = field_strategy @anonymization_strategy = anonymization_strategy end
Public Instance Methods
anonymize()
click to toggle source
# File lib/strategy/mongodb/anonymize_field.rb, line 12 def anonymize if sub_document? @anonymization_strategy.anonymize_document(@field.value, @field.row_number, @field_strategy) elsif sub_documents? anonymize_sub_documents else anonymize_field end end
anonymize_field()
click to toggle source
# File lib/strategy/mongodb/anonymize_field.rb, line 26 def anonymize_field @field_strategy = @field_strategy || @anonymization_strategy.default_strategy(@field.name) raise "Improper fields strategy defined for '#{@field.name}' within document \n #{@field.ar_record}" unless @field_strategy.respond_to?(:anonymize) @field_strategy.anonymize(@field) end
anonymize_sub_documents()
click to toggle source
# File lib/strategy/mongodb/anonymize_field.rb, line 22 def anonymize_sub_documents @field.value.collect { |value| @anonymization_strategy.anonymize_document(value, @field.row_number, @field_strategy) } end
sub_document?()
click to toggle source
# File lib/strategy/mongodb/anonymize_field.rb, line 36 def sub_document? @field.value.kind_of?(Hash) end
sub_documents?()
click to toggle source
# File lib/strategy/mongodb/anonymize_field.rb, line 32 def sub_documents? @field.value.kind_of?(Array) && (@field_strategy.kind_of?(Hash) || @field.value[0].kind_of?(Hash)) end