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 = {}