Class: TabTools::Anonymizer
- Inherits:
-
Object
- Object
- TabTools::Anonymizer
- Defined in:
- lib/tabtools/utilities/anonymizer.rb
Constant Summary collapse
- @@anonymousText =
<<ANONTEXT Lorem ipsum dolor sit amet consectetur adipiscing elit Mauris urna erat volutpat a ullamcorper sit amet convallis quis dui Ut sem erat euismod in iaculis id tincidunt aliquam magna Vivamus lobortis eu erat in feugiat Vestibulum fermentum dictum fermentum Class aptent taciti sociosqu ad litora torquent per conubia nostra per inceptos himenaeos Ut quis rutrum mi Mauris sit amet cursus nisi Suspendisse accumsan leo ac lobortis egestas sapien eros mattis lorem eu posuere mi justo in nunc Sed felis ligula egestas vel nulla sed egestas lobortis justo Donec quis interdum velit Proin felis arcu vestibulum non augue nec ultricies pulvinar velit Nunc ac libero velit Aenean bibendum varius nisi ut molestie Nam tempus nec lacus eget malesuada Donec et accumsan dolor et ullamcorper ante Etiam quis consectetur leo Suspendisse mattis sagittis imperdiet Phasellus facilisis eget justo ac mollis Phasellus eleifend tortor est sit amet venenatis enim fringilla id Vestibulum rutrum tempus tortor ac volutpat Nullam non imperdiet lorem Cras tincidunt porttitor condimentum Pellentesque tincidunt magna id aliquet interdum augue nisl convallis enim volutpat mollis urna metus et lacus Donec tortor sapien ultrices sit amet blandit quis gravida ut massa Mauris mauris lacus pretium sit amet risus quis blandit viverra lorem Nunc fringilla elit a elementum gravida Duis vel sodales elit eget tempor leo Quisque in semper nisl Fusce eget risus sollicitudin molestie diam et tincidunt sem Curabitur accumsan pretium interdum Suspendisse semper enim ac augue hendrerit vel sollicitudin diam mollis Curabitur lacinia ante nec eros maximus a vehicula velit aliquet In ullamcorper nec ante eu dictum Proin mi enim malesuada ut ornare sit amet maximus commodo ipsum Nullam venenatis purus non sollicitudin sollicitudin augue augue euismod lorem ut hendrerit velit neque sed nibh Class aptent taciti sociosqu ad litora torquent per conubia nostra per inceptos himenaeos Proin ac elementum nisl ANONTEXT
Instance Attribute Summary collapse
-
#anonWords(value) ⇒ Object
readonly
Returns the value of attribute anonWords.
-
#field ⇒ Object
Returns the value of attribute field.
-
#high ⇒ Object
readonly
Returns the value of attribute high.
-
#input ⇒ Object
Returns the value of attribute input.
-
#low ⇒ Object
readonly
Returns the value of attribute low.
-
#output ⇒ Object
Returns the value of attribute output.
Instance Method Summary collapse
- #anonymize(input, fields, output) ⇒ Object
- #codeValue(value) ⇒ Object
-
#initialize ⇒ Anonymizer
constructor
A new instance of Anonymizer.
Constructor Details
#initialize ⇒ Anonymizer
Returns a new instance of Anonymizer.
36 37 38 39 40 41 42 43 44 |
# 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 |
Instance Attribute Details
#anonWords(value) ⇒ Object (readonly)
Returns the value of attribute anonWords.
7 8 9 |
# File 'lib/tabtools/utilities/anonymizer.rb', line 7 def anonWords @anonWords end |
#field ⇒ Object
Returns the value of attribute field.
8 9 10 |
# File 'lib/tabtools/utilities/anonymizer.rb', line 8 def field @field end |
#high ⇒ Object (readonly)
Returns the value of attribute high.
7 8 9 |
# File 'lib/tabtools/utilities/anonymizer.rb', line 7 def high @high end |
#input ⇒ Object
Returns the value of attribute input.
8 9 10 |
# File 'lib/tabtools/utilities/anonymizer.rb', line 8 def input @input end |
#low ⇒ Object (readonly)
Returns the value of attribute low.
7 8 9 |
# File 'lib/tabtools/utilities/anonymizer.rb', line 7 def low @low end |
#output ⇒ Object
Returns the value of attribute output.
8 9 10 |
# File 'lib/tabtools/utilities/anonymizer.rb', line 8 def output @output end |
Instance Method Details
#anonymize(input, fields, output) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# 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) ⇒ Object
76 77 78 79 80 81 |
# File 'lib/tabtools/utilities/anonymizer.rb', line 76 def codeValue value if @codedWords[value].nil? @codedWords[value] = anonWords end @codedWords[value] end |