module NdrSupport::Obfuscator
Contains logic for consistently obfuscating names and addresses using a simple substitution cipher.
Public Instance Methods
obfuscate(name, seed = nil)
click to toggle source
Obfuscate a name or address, either with the given seed, or default seed
# File lib/ndr_support/obfuscator.rb, line 13 def obfuscate(name, seed = nil) rnd = Random.new(seed || @seed) vowels = %w(A E I O U) consonants = ('A'..'Z').to_a - vowels digits = ('0'..'9').to_a dict = Hash[(vowels + consonants + digits).zip(vowels.shuffle(random: rnd) + consonants.shuffle(random: rnd) + digits.shuffle(random: rnd))] name.upcase.split(//).map { |s| dict[s] || s }.join end
setup(seed)
click to toggle source
Set default obfuscation seed
# File lib/ndr_support/obfuscator.rb, line 8 def setup(seed) @seed = seed end