Class: Arrow::CSVReader
- Inherits:
-
Object
- Object
- Arrow::CSVReader
- Defined in:
- lib/arrow/csv-reader.rb
Instance Method Summary collapse
-
#initialize(csv) ⇒ CSVReader
constructor
A new instance of CSVReader.
- #read ⇒ Object
Constructor Details
#initialize(csv) ⇒ CSVReader
Returns a new instance of CSVReader.
22 23 24 |
# File 'lib/arrow/csv-reader.rb', line 22 def initialize(csv) @csv = csv end |
Instance Method Details
#read ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/arrow/csv-reader.rb', line 26 def read values_set = [] @csv.each do |row| if row.is_a?(CSV::Row) row = row.collect(&:last) end row.each_with_index do |value, i| values = (values_set[i] ||= []) values << value end end return nil if values_set.empty? arrays = values_set.collect.with_index do |values, i| ArrayBuilder.build(values) end if @csv.headers names = @csv.headers else names = arrays.size.times.collect(&:to_s) end raw_table = {} names.each_with_index do |name, i| raw_table[name] = arrays[i] end Table.new(raw_table) end |