Class: Reader

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby-daj/reader.rb

Instance Method Summary collapse

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