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