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