class TabTools::Anonymizer
Attributes
anonWords[R]
field[RW]
high[R]
input[RW]
low[R]
output[RW]
Public Class Methods
new()
click to toggle source
# File lib/tabtools/utilities/anonymizer.rb, line 36 def initialize @anonWords = @@anonymousText.gsub(/\n/,' ').split @coded = {} @low = 0 @limit = @anonWords.length-1 @rand = Random.new @minWords = 2 @maxWords = 4 end
Public Instance Methods
anonymize(input, fields, output)
click to toggle source
# File lib/tabtools/utilities/anonymizer.rb, line 46 def anonymize(input, fields, output) puts "Anonymizing %-25s to %-25s - %s " % [input, output, fields.inspect] raise 'The input file must be specified' if input.nil? raise 'The input file must exist' unless File.exist?(input) raise 'The field(s) to anonymize must be provided as a String or an array of Strings' unless fields.instance_of?(String) || fields.instance_of?(Array) @input = input @output = output @anonVals = {} csvFields = CSV.open(@input, &:readline) output = CSV.open(@output,'w') output << csvFields fields = [fields] if fields.is_a? String CSV.foreach('input.csv', :headers => true) do |row| fields.each do |field| row[field] = anonWords(row[field]) unless row[field].nil? end output << row end end
codeValue(value)
click to toggle source
# File lib/tabtools/utilities/anonymizer.rb, line 76 def codeValue value if @codedWords[value].nil? @codedWords[value] = anonWords end @codedWords[value] end