Method: BioTable::TableApply#parse_row
- Defined in:
- lib/bio-table/table_apply.rb
#parse_row(line_num, line, header, column_idx, prev_fields, options) ⇒ Object
Take a line as a string and return it as a tuple of rowname and datafields
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/bio-table/table_apply.rb', line 55 def parse_row(line_num, line, header, column_idx, prev_fields, ) fields = LineParser::parse(line, [:in_format], [:split_on]) return nil,nil if fields.compact == [] if [:pad_fields] and fields.size < header.size fields += [''] * (header.size - fields.size) end fields = Formatter::strip_quotes(fields) if @strip_quotes fields = Formatter::transform_row_ids(@transform_ids, fields) if @transform_ids fields = Filter::apply_column_filter(fields,column_idx) return nil,nil if fields.compact == [] rowname = fields[0] data_fields = fields[@first_column..-1] if data_fields.size > 0 return nil,nil if not Validator::valid_row?(line_num, data_fields, prev_fields) return nil,nil if not Filter::numeric(@num_filter,data_fields,header) return nil,nil if not Filter::generic(@filter,data_fields,header) (rowname, data_fields) = Rewrite::rewrite(@rewrite,rowname,data_fields) end return rowname, data_fields end |