class Reader

Public Instance Methods

read(ext, filename) click to toggle source

Reader abstract

# File lib/ruby-daj/reader.rb, line 7
def read(ext, filename)
        RubyDaj::FORMATS.include?(ext) ? send(:"read_#{ext}", filename) : read_plain_text(filename)
end
read_csv(filename) click to toggle source
# File lib/ruby-daj/reader.rb, line 24
def read_csv(filename)
        CSV.read(filename)
end
read_csvh(filename) click to toggle source
# File lib/ruby-daj/reader.rb, line 28
def read_csvh(filename)
        CSV.read(filename, headers: true).map{|row| Hash[row.map{|col, row| [col, row]}]}
end
read_json(filename) click to toggle source
# File lib/ruby-daj/reader.rb, line 15
def read_json(filename)
        json = JSON.parse(File.read(filename))
        json.kind_of?(Array) ? json[0] : json
end
read_plain_text(filename) click to toggle source
# File lib/ruby-daj/reader.rb, line 11
def read_plain_text(filename)
        File.read(filename).chomp
end
read_tsv(filename) click to toggle source
# File lib/ruby-daj/reader.rb, line 32
def read_tsv(filename)
        # TODO Refactor this ugliness
        CSV.read(filename, col_sep: "\t").map{|x| x.map{|x| x.split(" ")}}.map(&:flatten)
end
read_tsvh(filename) click to toggle source
# File lib/ruby-daj/reader.rb, line 37
def read_tsvh(filename)
        CSV.read(filename, col_sep: "\t", headers: true).map do |row| 
                headers = row.headers[0].split(' ')
                fields  = row.fields[0].split(' ')
                Hash[headers.each_with_index.map{|_, index| [headers[index], fields[index]]}]
        end
end
read_yml(filename) click to toggle source
# File lib/ruby-daj/reader.rb, line 20
def read_yml(filename)
        YAML.load_file(filename)
end