module Duracloud::TSV
Constants
- CHUNK_SIZE
Public Instance Methods
csv()
click to toggle source
# File lib/duracloud/tsv.rb, line 8 def csv @csv ||= CSV.new(tsv, csv_options) end
load_tsv(io_or_str)
click to toggle source
# File lib/duracloud/tsv.rb, line 41 def load_tsv(io_or_str) @tsv_source = io_or_str.is_a?(String) ? StringIO.new(io_or_str, "rb") : io_or_str end
load_tsv_file(path)
click to toggle source
# File lib/duracloud/tsv.rb, line 53 def load_tsv_file(path) load_tsv File.new(path, "rb") end
rows()
click to toggle source
# File lib/duracloud/tsv.rb, line 12 def rows @rows ||= Enumerator.new do |e| table.each { |row| e << row.to_hash } end end
table()
click to toggle source
# File lib/duracloud/tsv.rb, line 18 def table csv.rewind csv.read ensure csv.rewind end
to_s()
click to toggle source
# File lib/duracloud/tsv.rb, line 57 def to_s tsv.to_s end
tsv() { |chunk| ... }
click to toggle source
# File lib/duracloud/tsv.rb, line 25 def tsv(&block) return unless tsv_source? begin tsv_source.rewind if block_given? while chunk = tsv_source.read(CHUNK_SIZE) yield chunk end else tsv_source.read end ensure tsv_source.rewind end end
tsv_source()
click to toggle source
# File lib/duracloud/tsv.rb, line 45 def tsv_source @tsv_source end
tsv_source?()
click to toggle source
# File lib/duracloud/tsv.rb, line 49 def tsv_source? !!@tsv_source end
Private Instance Methods
csv_options()
click to toggle source
# File lib/duracloud/tsv.rb, line 63 def csv_options { col_sep: "\t", quote_char: "`", headers: true, return_headers: false, header_converters: header_converters, } end
header_converters()
click to toggle source
# File lib/duracloud/tsv.rb, line 72 def header_converters lambda { |h| h.downcase.gsub(/-/, "_") } end