Method: BioDSL::CSV#each_array
- Defined in:
- lib/BioDSL/csv.rb
#each_array(options = {}) ⇒ Object
Method to iterate over a CSV IO object yielding arrays or an enumerator
CSV.each_array(options={}) { |item| block } -> ary
CSV.each_array(options={}) -> Enumerator
Options:
* :include_header -
* :delimiter -
* :select -
* :reject -
135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 |
# File 'lib/BioDSL/csv.rb', line 135 def each_array( = {}) return to_enum :each_array unless block_given? delimiter = [:delimiter] || @delimiter @io.each do |line| line.chomp! next if line.empty? fields = line.split(delimiter) if line[0] == '#' get_header(fields, ) unless @header get_fields(fields, ) unless @fields yield @header.map(&:to_s) if [:include_header] else get_header(fields, ) unless @header get_fields(fields, ) unless @fields fields = fields.values_at(*@fields) if @fields determine_types(fields) unless @types yield fields.convert_types(@types) end end self end |