lib/rbbt/tsv/accessor.rb in rbbt-util-5.9.12 vs lib/rbbt/tsv/accessor.rb in rbbt-util-5.10.1

- old
+ new

@@ -1,7 +1,8 @@ require 'yaml' require 'rbbt/annotations' +require 'rbbt/tsv/dumper' module TSV TSV_SERIALIZER = YAML SERIALIZED_NIL = TSV_SERIALIZER.dump nil @@ -458,11 +459,11 @@ end def options options = {} ENTRIES.each do |entry| - options[entry] = self.send(entry) + options[entry.to_sym] = self.send(entry) end IndiferentHash.setup options end @@ -496,29 +497,34 @@ with_unnamed do keys = self.keys.sort end end - str = "" - - entry_hash = no_options ? {} : (ENTRIES - ["key_field", "fields"]).collect{|key| [key.to_sym, self.send(key)]} - str = TSV.header_lines(key_field, fields, entry_hash) - - with_unnamed do - if keys.nil? - each do |key, values| - key = key.to_s if Symbol === key - str << key.to_s - str << values_to_s(values) + io = TSV::Dumper.stream self do |dumper| + dumper.init unless no_options + begin + if keys + keys.each do |key| + dumper.add key, self[key] + end + else + with_unnamed do + each do |k,v| + dumper.add k, v + end + end end - else - keys.zip(values_at(*keys)).each do |key, values| - key = key.to_s if Symbol === key - str << key.to_s << values_to_s(values) - end + rescue + Log.exception $! + parent.raise $! end + end + str = '' + while block = io.read(2048) + str << block end + str end def value_peek peek = {}