ios.each_line do |line|
unless line[0] == '#'
fields = line.chomp.split(delimiter)
- replace_hash[fields[options[:search_col] - 1]] = fields[options[:replace_col] - 1]
+ k = fields[options[:search_col] - 1]
+ v = fields[options[:replace_col] - 1]
+
+ raise RuntimeError, "duplicate key: #{k} found in file" if replace_hash[k]
+
+ replace_hash[k] = v
end
end
end
Biopieces.open(options[:stream_in], options[:stream_out]) do |input, output|
input.each_record do |record|
- if record.has_key? key
- if replace_hash.has_key? record[key]
+ if record[key]
+ if replace_hash[record[key]]
record[key] = replace_hash[record[key]]
end
end