Class: DataAnon::Strategy::Field::DefaultAnon
- Inherits:
-
Object
- Object
- DataAnon::Strategy::Field::DefaultAnon
- Defined in:
- lib/strategy/field/default_anon.rb
Constant Summary collapse
- DEFAULT_STRATEGIES =
{:string => FieldStrategy::RandomString.new, :integer => FieldStrategy::RandomIntegerDelta.new(5), :fixnum => FieldStrategy::RandomIntegerDelta.new(5), :bignum => FieldStrategy::RandomIntegerDelta.new(5000), :float => FieldStrategy::RandomFloatDelta.new(5.0), :bigdecimal => FieldStrategy::RandomBigDecimalDelta.new(500.0), :datetime => FieldStrategy::DateTimeDelta.new, :time => FieldStrategy::TimeDelta.new, :date => FieldStrategy::DateDelta.new, :array => FieldStrategy::AnonymizeArray.new(nil), :trueclass => FieldStrategy::RandomBoolean.new, :"bson::objectid" => FieldStrategy::Whitelist.new, :falseclass => FieldStrategy::RandomBoolean.new }
Instance Method Summary collapse
- #anonymize(field) ⇒ Object
-
#initialize(user_defaults = {}) ⇒ DefaultAnon
constructor
A new instance of DefaultAnon.
Constructor Details
#initialize(user_defaults = {}) ⇒ DefaultAnon
Returns a new instance of DefaultAnon.
22 23 24 25 |
# File 'lib/strategy/field/default_anon.rb', line 22 def initialize user_defaults = {} @user_defaults = DEFAULT_STRATEGIES.merge user_defaults FieldStrategy::AnonymizeArray.user_defaults @user_defaults end |
Instance Method Details
#anonymize(field) ⇒ Object
27 28 29 30 31 |
# File 'lib/strategy/field/default_anon.rb', line 27 def anonymize field strategy = @user_defaults[field.value.class.to_s.downcase.to_sym] raise "No strategy defined for datatype #{field.value.class}. Use 'default_field_strategies' option in your script. Refer to http://sunitparekh.github.com/data-anonymization/#default-field-strategies for more details. #{field.inspect}" unless strategy strategy.anonymize field end |