Class: Reader
- Inherits:
-
Object
- Object
- Reader
- Defined in:
- lib/ruby-daj/reader.rb
Instance Method Summary collapse
-
#read(ext, filename) ⇒ Object
Reader abstract.
- #read_csv(filename) ⇒ Object
- #read_csvh(filename) ⇒ Object
- #read_json(filename) ⇒ Object
- #read_plain_text(filename) ⇒ Object
- #read_tsv(filename) ⇒ Object
- #read_tsvh(filename) ⇒ Object
- #read_yml(filename) ⇒ Object
Instance Method Details
#read(ext, filename) ⇒ Object
Reader abstract
7 8 9 |
# 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) ⇒ Object
24 25 26 |
# File 'lib/ruby-daj/reader.rb', line 24 def read_csv(filename) CSV.read(filename) end |
#read_csvh(filename) ⇒ Object
28 29 30 |
# 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) ⇒ Object
15 16 17 18 |
# 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) ⇒ Object
11 12 13 |
# File 'lib/ruby-daj/reader.rb', line 11 def read_plain_text(filename) File.read(filename).chomp end |
#read_tsv(filename) ⇒ Object
32 33 34 35 |
# 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) ⇒ Object
37 38 39 40 41 42 43 |
# 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) ⇒ Object
20 21 22 |
# File 'lib/ruby-daj/reader.rb', line 20 def read_yml(filename) YAML.load_file(filename) end |