lib/rbbt/tsv/change_id.rb in rbbt-util-5.6.14 vs lib/rbbt/tsv/change_id.rb in rbbt-util-5.6.15
- old
+ new
@@ -10,22 +10,27 @@
tsv = tsv.annotate(Hash[*tsv.keys.zip(tsv.values.collect{|l| l.dup}).flatten(1)])
orig_type = tsv.type
tsv = tsv.to_double if orig_type != :double
- tsv = tsv.attach identifiers, :fields => [format], :persist_input => true
+ if Array === identifiers
+ tsv = tsv.attach identifiers.first, :fields => [format], :persist_input => true, :identifiers => identifiers.last
+ else
+ tsv = tsv.attach identifiers, :fields => [format], :persist_input => true
+ end
tsv = tsv.reorder(format, tsv.fields - [format])
tsv = tsv.to_flat if orig_type == :flat
tsv
else
tsv.reorder(format)
end
end
- def change_key(*args)
- TSV.change_key(self, *args)
+ def change_key(format, options = {})
+ options = Misc.add_defaults options, :identifiers => self.identifiers
+ TSV.change_key(self, format, options)
end
def self.swap_id(tsv, field, format, options = {})
options = Misc.add_defaults options, :persist => false, :identifiers => tsv.identifiers