lib/rbbt/tsv/index.rb in rbbt-util-5.2.4 vs lib/rbbt/tsv/index.rb in rbbt-util-5.3.0

- old
+ new

@@ -83,26 +83,35 @@ end values.unshift key values.uniq.each do |value| - case - when index_type == :double + case index_type + when :double if not new.include? value new[value] = [[key]] else current = new[value] current[0] << key new[value] = current end + when :flat + if not new.include? value + new[value] = [key] + else + current = new[value] + current << key + new[value] = current + end + else new[value] = key unless new.include? value end end end end - TSV.setup(new, :serializer => index_type, :type => index_type, :filename => filename, :fields => [new_key_field], :key_field => new_fields * ", ") + TSV.setup(new, :type => index_type, :filename => filename, :fields => [new_key_field], :key_field => new_fields * ", ") end end end def self.index(file, options = {})