class DataAnon::Strategy::Field::DateTimeDelta

Shifts data randomly within given range. Default shifts date within 10 days + or - and shifts time within 30 minutes.

!!!ruby
anonymize('DateOfBirth').using FieldStrategy::DateTimeDelta.new

!!!ruby
# shifts date within 20 days and time within 50 minutes
anonymize('DateOfBirth').using FieldStrategy::DateTimeDelta.new(20, 50)

Constants

DEFAULT_DAY_DELTA
DEFAULT_MINUTE_DELTA

Public Class Methods

new(day_delta = DEFAULT_DAY_DELTA, minute_delta = DEFAULT_MINUTE_DELTA) click to toggle source
# File lib/strategy/field/datetime/date_time_delta.rb, line 19
def initialize day_delta = DEFAULT_DAY_DELTA, minute_delta = DEFAULT_MINUTE_DELTA
  @day_delta = day_delta
  @minute_delta =  minute_delta
end

Public Instance Methods

anonymize(field) click to toggle source
# File lib/strategy/field/datetime/date_time_delta.rb, line 24
def anonymize field
  day_adjustment = DataAnon::Utils::RandomInt.generate(-@day_delta,@day_delta)
  minute_adjustment = DataAnon::Utils::RandomInt.generate(-@minute_delta,@minute_delta)
  return field.value + (day_adjustment.days + minute_adjustment.minutes)
end