--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Parse a line from string. Consider using CSV.parse_line instead. To parse lines in CSV string, see EXAMPLE below.
- !ruby/struct:SM::Flow::P 
  body: EXAMPLE
- !ruby/struct:SM::Flow::VERB 
  body: "  src = &quot;a,b\\r\\nc,d\\r\\ne,f&quot;\n  idx = 0\n  begin\n    parsed = []\n    parsed_cells, idx = CSV.parse_row(src, idx, parsed)\n    puts &quot;Parsed #{ parsed_cells } cells.&quot;\n    p parsed\n  end while parsed_cells &gt; 0\n"
- !ruby/struct:SM::Flow::P 
  body: ARGS
- !ruby/struct:SM::Flow::VERB 
  body: "  src: a CSV data to be parsed.  Must respond '[](idx)'.\n    src[](idx) must return a char. (Not a string such as 'a', but 97).\n    src[](idx_out_of_bounds) must return nil.  A String satisfies this\n    requirement.\n  idx: index of parsing location of 'src'.  0 origin.\n  out_dev: buffer for parsed cells.  Must respond '&lt;&lt;(aString)'.\n  col_sep: Column separator.  ?, by default.  If you want to separate\n    fields with semicolon, give ?; here.\n  row_sep: Row separator.  nil by default.  nil means &quot;\\r\\n or \\n&quot;.  If you\n    want to separate records with \\r, give ?\\r here.\n"
- !ruby/struct:SM::Flow::P 
  body: RETURNS
- !ruby/struct:SM::Flow::VERB 
  body: "  parsed_cells: num of parsed cells.\n  idx: index of next parsing location of 'src'.\n"
full_name: CSV::parse_row
is_singleton: true
name: parse_row
params: (src, idx, out_dev, fs = nil, rs = nil)
visibility: public
