sunitparekh/data-anonymization

View on GitHub
lib/strategy/whitelist.rb

Summary

Maintainability
A
0 mins
Test Coverage
module DataAnon
  module Strategy
    class Whitelist < DataAnon::Strategy::Base

      def self.whitelist?
        true
      end

      def process_record(index, record)
        dest_record_map = {}
        record.attributes.each do |field_name, field_value|
          unless field_value.nil? || is_primary_key?(field_name)
            field = DataAnon::Core::Field.new(field_name, field_value, index, record, @name)
            field_strategy = @fields[field_name] || default_strategy(field_name)
            dest_record_map[field_name] = field_strategy.anonymize(field)
          end
        end
        dest_record = dest_table.new dest_record_map
        @primary_keys.each do |key|
          dest_record[key] = record[key]
        end
        dest_record.save!
      end


    end
  end
end