X-Git-Url: http://jaekl.net/gitweb/?p=quanlib.git;a=blobdiff_plain;f=classify%2Ffastset.rb;fp=classify%2Ffastset.rb;h=fa3883ef65d5aa763d9a17dae7385815fda2e904;hp=0000000000000000000000000000000000000000;hb=2c6d69af97c152524366d3fefe1808dfb78f8f56;hpb=fcaeedd4d1c128ff84371c0a7db5d0af6751492a diff --git a/classify/fastset.rb b/classify/fastset.rb new file mode 100644 index 0000000..fa3883e --- /dev/null +++ b/classify/fastset.rb @@ -0,0 +1,63 @@ + +class FastSet + @@fast_csv_file = 'fast.csv' + + def initialize + @entries = {} + load!(@@fast_csv_file) + end + + def add(id, descr) + @entries[id] = descr + end + + def has_key?(value) + @entries.has_key?(value) + end + + def inspect + data = [] + + if nil != @entries + data.push('entries=' + @entries.inspect + '') + end + + return '(FastSet:' + data.join(',') + ')' + end + + def load!(file_name) + first = true + @entries = {} + + if ! File.exist?(file_name) + puts 'WARNING: file "' + file_name + '" not found.' + return + end + + File.open(file_name, 'r:UTF-8').each_line do |line| + cols = line.split(/,/) + if first + first = false + elsif cols.length > 1 + id = cols[0] + descr = cols[1] + @entries[id] = descr + end + end + end + + def save(file_name) + File.open(file_name, 'w:UTF-8') do |fd| + fd.puts('Code,Description') + + @entries.keys.sort.each do |key| + fd.puts(key.to_s + ',' + @entries[key].to_s) + end + end + end + + def save_state + save(@@fast_csv_file) + end +end +