lib/rbbt/tsv/accessor.rb in rbbt-util-5.14.12 vs lib/rbbt/tsv/accessor.rb in rbbt-util-5.14.14

- old
+ new

@@ -233,17 +233,28 @@ super(key, @serializer_module.dump(value)) end def zip_new(key, values) values = [values] unless Array === values - if self.include? key - new = [] - self[key, true].each_with_index do |v,i| - new << (v << values[i]) + case type + when :double + if self.include? key + new = [] + self[key, true].each_with_index do |v,i| + new << (v << values[i]) + end + self[key] == new + else + self[key] = values.collect{|v| [v] } end - self[key] == new + when :flat + if self.include? key + self[key] = (self[key] + values).uniq + else + self[key] = values + end else - self[key] = values.collect{|v| [v] } + raise "Cannot zip_new for type: #{type}" end end def keys keys = super - ENTRY_KEYS.to_a