ÿØÿà JFIF    ÿÛ „ ( %!1!%*+...983,7(-.- PK7t]j instance-c.rinu[U:RDoc::AnyMethod[iI" instance:EFI"CSV::instance;TT: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [ I"KThis method will return a CSV instance, just like CSV::new(), but the ;TI"Rinstance will be cached and returned for all future calls to this method for ;TI"Ithe same +data+ object (tested by Object#object_id()) with the same ;TI"+options+.;To:RDoc::Markup::BlankLineo; ; [I"MIf a block is given, the instance is passed to the block and the return ;TI"1value becomes the return value of the block.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below00I" instance;T[I")(data = $stdout, options = Hash.new);T@FI"CSV;TcRDoc::NormalClass00PK7t]ΊDeof-i.rinu[U:RDoc::AnyMethod[iI"eof:ETI" CSV#eof;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI"CSV;TcRDoc::NormalClass0[@FI" eof?;TPK7t]/RWYYwrite_headers%3f-i.rinu[U:RDoc::AnyMethod[iI"write_headers?:EFI"CSV#write_headers?;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"OReturns +true+ if headers are written in output. See CSV::new for details.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"CSV;TcRDoc::NormalClass00PK7t]9! readline-i.rinu[U:RDoc::AnyMethod[iI" readline:ETI"CSV#readline;TF: publico:RDoc::Markup::Document: @parts[: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI"CSV;TcRDoc::NormalClass0[@FI" shift;FPK7t]_ BBheader_row%3f-i.rinu[U:RDoc::AnyMethod[iI"header_row?:EFI"CSV#header_row?;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I">Returns +true+ if the next row read will be a header row.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"CSV;TcRDoc::NormalClass00PK7t]:binmode%3f-i.rinu[U:RDoc::AnyMethod[iI" binmode?:ETI"CSV#binmode?;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI"CSV;TcRDoc::NormalClass00PK7t] g flock-i.rinu[U:RDoc::AnyMethod[iI" flock:ETI"CSV#flock;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I" (*args);T@ FI"CSV;TcRDoc::NormalClass00PK7t]M?aa inspect-i.rinu[U:RDoc::AnyMethod[iI" inspect:EFI"CSV#inspect;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"FReturns a simplified description of the key CSV attributes in an ;TI"ASCII compatible String.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"CSV;TcRDoc::NormalClass00PK7t]nFknn shift-i.rinu[U:RDoc::AnyMethod[iI" shift:EFI"CSV#shift;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"QThe primary read method for wrapped Strings and IOs, a single row is pulled ;TI"Pfrom the data source, parsed and returned as an Array of fields (if header ;TI"Brows are not used) or a CSV::Row (when header rows are used).;To:RDoc::Markup::BlankLineo; ; [I".The data source must be open for reading.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[[I" gets;To;; [; @; 0[I" readline;To;; [; @; 0I"();T@FI"CSV;TcRDoc::NormalClass00PK7t]% parser-i.rinu[U:RDoc::AnyMethod[iI" parser:ETI"CSV#parser;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI"CSV;TcRDoc::NormalClass00PK7t]!generate_lines-c.rinu[U:RDoc::AnyMethod[iI"generate_lines:ETI"CSV::generate_lines;TT: privateo:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"9Returns the \String created by generating \CSV from ;TI"#using the specified +options+.;To:RDoc::Markup::BlankLineo; ; [I"UArgument +rows+ must be an \Array of row. Row is \Array of \String or \CSV::Row.;T@o; ; [I"Special options:;To:RDoc::Markup::List: @type: BULLET: @items[o:RDoc::Markup::ListItem: @label0; [o; ; [I"MOption :row_sep defaults to "\n" on Ruby 3.0 or later ;TI"Cand $INPUT_RECORD_SEPARATOR ($/) otherwise.:;To:RDoc::Markup::Verbatim; [I"'$INPUT_RECORD_SEPARATOR # => "\n" ;T: @format0o;;0; [o; ; [ I"WThis method accepts an additional option, :encoding, which sets the base ;TI"OEncoding for the output. This method will try to guess your Encoding from ;TI"Nthe first non-+nil+ field in +row+, if possible, but you may need to use ;TI"%this parameter as a backup plan.;T@o; ; [I"For other +options+, ;TI"Ksee {Options for Generating}[#class-CSV-label-Options+for+Generating].;T@S:RDoc::Markup::Rule: weighti@o; ; [I"*Returns the \String generated from an;To;; [I"_CSV.generate_lines(['foo', '0'], ['bar', '1'], ['baz', '2']) # => "foo,0\nbar,1\nbaz.2\n" ;T;0S;;i@o; ; [I"Raises an exception;To;; [I"F# Raises NoMethodError (undefined method `find' for :foo:Symbol) ;TI"CSV.generate_lines(:foo);T;0: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below0I"BCSV.generate_lines(rows) CSV.generate_lines(rows, **options) ;T0[I"(rows, **options);T@Parser/prepare_strip-i.rinu[U:RDoc::AnyMethod[iI"prepare_strip:ETI"CSV::Parser#prepare_strip;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/parser.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI" Parser;TcRDoc::NormalClass00PK7t]o'Parser/parse_unquoted_column_value-i.rinu[U:RDoc::AnyMethod[iI" parse_unquoted_column_value:ETI",CSV::Parser#parse_unquoted_column_value;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/parser.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI" Parser;TcRDoc::NormalClass00PK7t]y"Parser/quote_character-i.rinu[U:RDoc::AnyMethod[iI"quote_character:ETI" CSV::Parser#quote_character;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/parser.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI" Parser;TcRDoc::NormalClass00PK7t]6Y(Parser/prepare_variable-i.rinu[U:RDoc::AnyMethod[iI"prepare_variable:ETI"!CSV::Parser#prepare_variable;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/parser.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI" Parser;TcRDoc::NormalClass00PK7t]$[Parser/last_line-i.rinu[U:RDoc::AnyMethod[iI"last_line:ETI"CSV::Parser#last_line;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/parser.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI" Parser;TcRDoc::NormalClass00PK7t]w,' ' Parser/cdesc-Parser.rinu[U:RDoc::NormalClass[iI" Parser:ETI"CSV::Parser;TI" Object;To:RDoc::Markup::Document: @parts[o;;[o:RDoc::Markup::Paragraph;[I"DNote: Don't use this class directly. This is an internal class.;T: @fileI"lib/csv/parser.rb;T:0@omit_headings_from_table_of_contents_below0; 0; 0[[ U:RDoc::Constant[iI"&STRING_SCANNER_SCAN_ACCEPT_STRING;TI"3CSV::Parser::STRING_SCANNER_SCAN_ACCEPT_STRING;T: public0o;;[; @; 0@@cRDoc::NormalClass0U; [iI"SCANNER_TEST;TI"CSV::Parser::SCANNER_TEST;T; 0o;;[; @; 0@@@0U; [iI"!SCANNER_TEST_CHUNK_SIZE_NAME;TI".CSV::Parser::SCANNER_TEST_CHUNK_SIZE_NAME;T; 0o;;[; @; 0@@@0U; [iI""SCANNER_TEST_CHUNK_SIZE_VALUE;TI"/CSV::Parser::SCANNER_TEST_CHUNK_SIZE_VALUE;T; 0o;;[; @; 0@@@0[[[I" class;T[[; [[:protected[[: private[[I"new;TI"lib/csv/parser.rb;T[I" instance;T[[; [[;[[;[9[I"add_unconverted_fields;T@:[I"adjust_headers;T@:[I"build_scanner;T@:[I"column_separator;T@:[I"detect_row_separator;T@:[I" emit_row;T@:[I"field_size_limit;T@:[I"header_row?;T@:[I" headers;T@:[I"ignore_broken_line;T@:[I"last_line;T@:[I"liberal_parsing?;T@:[I" line;T@:[I" lineno;T@:[I"max_field_size;T@:[I"may_quoted?;T@:[I" parse;T@:[I"parse_column_end;T@:[I"parse_column_value;T@:[I"parse_headers;T@:[I"parse_no_quote;T@:[I"parse_quotable_loose;T@:[I"parse_quotable_robust;T@:[I"parse_quoted_column_value;T@:[I"parse_row_end;T@:[I" parse_unquoted_column_value;T@:[I" prepare;T@:[I"prepare_backslash;T@:[I"prepare_header;T@:[I"prepare_line;T@:[I"prepare_parser;T@:[I"prepare_quote_character;T@:[I"prepare_quoted;T@:[I"prepare_separators;T@:[I"prepare_skip_lines;T@:[I"prepare_strip;T@:[I"prepare_unquoted;T@:[I"prepare_variable;T@:[I"quote_character;T@:[I"resolve_row_separator;T@:[I"return_headers?;T@:[I"row_separator;T@:[I"skip_blanks?;T@:[I"skip_line?;T@:[I"skip_lines;T@:[I"skip_needless_lines;T@:[I"start_row;T@:[I"strip_value;T@:[I"unconverted_fields?;T@:[I"use_headers?;T@:[I"validate_field_size;T@:[I"'validate_strip_and_col_sep_options;T@:[[U:RDoc::Context::Section[i0o;;[; 0; 0[I"lib/csv/parser.rb;TI"CSV;T@PK7t]'Parser/prepare_backslash-i.rinu[U:RDoc::AnyMethod[iI"prepare_backslash:ETI""CSV::Parser#prepare_backslash;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/parser.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI" Parser;TcRDoc::NormalClass00PK7t]KParser/headers-i.rinu[U:RDoc::AnyMethod[iI" headers:ETI"CSV::Parser#headers;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/parser.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI" Parser;TcRDoc::NormalClass00PK7t]/Parser/UnexpectedError/cdesc-UnexpectedError.rinu[U:RDoc::NormalClass[iI"UnexpectedError:ETI"!CSV::Parser::UnexpectedError;TI"StandardError;To:RDoc::Markup::Document: @parts[o;;[o:RDoc::Markup::Paragraph;[I"+Raised when unexpected case is happen.;T: @fileI"lib/csv/parser.rb;T:0@omit_headings_from_table_of_contents_below0; 0; 0[[[[[I" class;T[[: public[[:protected[[: private[[I" instance;T[[; [[; [[;[[[U:RDoc::Context::Section[i0o;;[; 0; 0[I"lib/csv/parser.rb;TI"CSV::Parser;TcRDoc::NormalClassPK7t]ld Parser/prepare_parser-i.rinu[U:RDoc::AnyMethod[iI"prepare_parser:ETI"CSV::Parser#prepare_parser;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/parser.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI" Parser;TcRDoc::NormalClass00PK7t]NyParser/emit_row-i.rinu[U:RDoc::AnyMethod[iI" emit_row:ETI"CSV::Parser#emit_row;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/parser.rb;T:0@omit_headings_from_table_of_contents_below00I"row;T[I"!(row, quoted_fields, &block);T@ FI" Parser;TcRDoc::NormalClass00PK7t] Parser/parse_quotable_loose-i.rinu[U:RDoc::AnyMethod[iI"parse_quotable_loose:ETI"%CSV::Parser#parse_quotable_loose;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/parser.rb;T:0@omit_headings_from_table_of_contents_below000[I" (&block);T@ FI" Parser;TcRDoc::NormalClass00PK7t]PE0Parser/skip_blanks%3f-i.rinu[U:RDoc::AnyMethod[iI"skip_blanks?:ETI"CSV::Parser#skip_blanks?;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/parser.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI" Parser;TcRDoc::NormalClass00PK7t]KǔParser/field_size_limit-i.rinu[U:RDoc::AnyMethod[iI"field_size_limit:ETI"!CSV::Parser#field_size_limit;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/parser.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI" Parser;TcRDoc::NormalClass00PK7t]rAParser/lineno-i.rinu[U:RDoc::AnyMethod[iI" lineno:ETI"CSV::Parser#lineno;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/parser.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI" Parser;TcRDoc::NormalClass00PK7t]n~$Parser/row_separator-i.rinu[U:RDoc::AnyMethod[iI"row_separator:ETI"CSV::Parser#row_separator;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/parser.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI" Parser;TcRDoc::NormalClass00PK7t]N  "Parser/add_unconverted_fields-i.rinu[U:RDoc::AnyMethod[iI"add_unconverted_fields:ETI"'CSV::Parser#add_unconverted_fields;TF: privateo:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"OThis method injects an instance variable unconverted_fields into ;TI"N+row+ and an accessor method for +row+ called unconverted_fields(). The ;TI"1variable is set to the contents of +fields+.;T: @fileI"lib/csv/parser.rb;T:0@omit_headings_from_table_of_contents_below000[I"(row, fields);T@FI" Parser;TcRDoc::NormalClass00PK7t]Parser/skip_needless_lines-i.rinu[U:RDoc::AnyMethod[iI"skip_needless_lines:ETI"$CSV::Parser#skip_needless_lines;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/parser.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI" Parser;TcRDoc::NormalClass00PK7t]uParser/liberal_parsing%3f-i.rinu[U:RDoc::AnyMethod[iI"liberal_parsing?:ETI"!CSV::Parser#liberal_parsing?;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/parser.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI" Parser;TcRDoc::NormalClass00PK7t]jA%Z Parser/detect_row_separator-i.rinu[U:RDoc::AnyMethod[iI"detect_row_separator:ETI"%CSV::Parser#detect_row_separator;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/parser.rb;T:0@omit_headings_from_table_of_contents_below000[I"(sample, cr, lf);T@ FI" Parser;TcRDoc::NormalClass00PK7t]7Parser/prepare_header-i.rinu[U:RDoc::AnyMethod[iI"prepare_header:ETI"CSV::Parser#prepare_header;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/parser.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI" Parser;TcRDoc::NormalClass00PK8t]3Parser/Scanner/keep_start-i.rinu[U:RDoc::AnyMethod[iI"keep_start:ETI"$CSV::Parser::Scanner#keep_start;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/parser.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI" Scanner;TcRDoc::NormalClass00PK8t]hxParser/Scanner/new-c.rinu[U:RDoc::AnyMethod[iI"new:ETI"CSV::Parser::Scanner::new;TT: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/parser.rb;T:0@omit_headings_from_table_of_contents_below000[I" (*args);T@ TI" Scanner;TcRDoc::NormalClass00PK8t]!kkParser/Scanner/cdesc-Scanner.rinu[U:RDoc::NormalClass[iI" Scanner:ETI"CSV::Parser::Scanner;TI"StringScanner;To:RDoc::Markup::Document: @parts[o;;[o:RDoc::Markup::Paragraph;[I"JCSV::Scanner receives a CSV output, scans it and return the content. ;TI"RIt also controls the life cycle of the object with its methods +keep_start+, ;TI"*+keep_end+, +keep_back+, +keep_drop+.;To:RDoc::Markup::BlankLineo; ;[ I"MUses StringScanner (the official strscan gem). Strscan provides lexical ;TI"Oscanning operations on a String. We inherit its object and take advantage ;TI"9on the methods. For more information, please visit: ;TI"Mhttps://ruby-doc.org/stdlib-2.6.1/libdoc/strscan/rdoc/StringScanner.html;T: @fileI"lib/csv/parser.rb;T:0@omit_headings_from_table_of_contents_below0; 0; 0[[[[[I" class;T[[: public[[:protected[[: private[[I"new;TI"lib/csv/parser.rb;T[I" instance;T[[; [[;[[;[ [I"each_line;T@*[I"keep_back;T@*[I"keep_drop;T@*[I" keep_end;T@*[I"keep_start;T@*[[U:RDoc::Context::Section[i0o;;[; 0; 0[I"lib/csv/parser.rb;TI"CSV::Parser;TcRDoc::NormalClassPK8t]Parser/Scanner/keep_end-i.rinu[U:RDoc::AnyMethod[iI" keep_end:ETI""CSV::Parser::Scanner#keep_end;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/parser.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI" Scanner;TcRDoc::NormalClass00PK8t]HParser/Scanner/keep_back-i.rinu[U:RDoc::AnyMethod[iI"keep_back:ETI"#CSV::Parser::Scanner#keep_back;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/parser.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI" Scanner;TcRDoc::NormalClass00PK8t]0Parser/Scanner/keep_drop-i.rinu[U:RDoc::AnyMethod[iI"keep_drop:ETI"#CSV::Parser::Scanner#keep_drop;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/parser.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI" Scanner;TcRDoc::NormalClass00PK8t]şTParser/Scanner/each_line-i.rinu[U:RDoc::AnyMethod[iI"each_line:ETI"#CSV::Parser::Scanner#each_line;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/parser.rb;T:0@omit_headings_from_table_of_contents_below00I" line;T[I"(row_separator);T@ FI" Scanner;TcRDoc::NormalClass00PK8t]'^!Parser/unconverted_fields%3f-i.rinu[U:RDoc::AnyMethod[iI"unconverted_fields?:ETI"$CSV::Parser#unconverted_fields?;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/parser.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI" Parser;TcRDoc::NormalClass00PK8t]<!Parser/parse_quotable_robust-i.rinu[U:RDoc::AnyMethod[iI"parse_quotable_robust:ETI"&CSV::Parser#parse_quotable_robust;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/parser.rb;T:0@omit_headings_from_table_of_contents_below000[I" (&block);T@ FI" Parser;TcRDoc::NormalClass00PK8t]rParser/parse-i.rinu[U:RDoc::AnyMethod[iI" parse:ETI"CSV::Parser#parse;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/parser.rb;T:0@omit_headings_from_table_of_contents_below00I" headers;T[I" (&block);T@ FI" Parser;TcRDoc::NormalClass00PK8t]%PParser/prepare_quoted-i.rinu[U:RDoc::AnyMethod[iI"prepare_quoted:ETI"CSV::Parser#prepare_quoted;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/parser.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI" Parser;TcRDoc::NormalClass00PK8t] writer-i.rinu[U:RDoc::AnyMethod[iI" writer:ETI"CSV#writer;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI"CSV;TcRDoc::NormalClass00PK8t] header_converters-i.rinu[U:RDoc::AnyMethod[iI"header_converters:EFI"CSV#header_converters;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"QReturns the current list of converters in effect for headers. See CSV::new ;TI"Nfor details. Built-in converters will be returned by name, while others ;TI"will be returned as is.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"CSV;TcRDoc::NormalClass00PK8t];P٨ read-c.rinu[U:RDoc::AnyMethod[iI" read:EFI"CSV::read;TT: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"NUse to slurp a CSV file into an Array of Arrays. Pass the +path+ to the ;TI"Rfile and any +options+ CSV::new() understands. This method also understands ;TI"Pan additional :encoding parameter that you can use to specify the ;TI"OEncoding of the data in the file to be read. You must provide this unless ;TI"Syour data is in Encoding::default_external(). CSV will use this to determine ;TI"Phow to parse the data. You may provide a second Encoding to have the data ;TI"-transcoded as it is read. For example, ;TI"Pencoding: "UTF-32BE:UTF-8" would read UTF-32BE data from the file ;TI"4but transcode it to UTF-8 before CSV parses it.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"(path, *options);T@FI"CSV;TcRDoc::NormalClass00PK8t]Zɡ encoding-i.rinu[U:RDoc::Attr[iI" encoding:ETI"CSV#encoding;TI"R;T: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"OThe Encoding CSV is parsing or writing in. This will be the Encoding you ;TI"Hreceive parsed data in and/or the Encoding data will be written in.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below0F@I"CSV;TcRDoc::NormalClass0PK8t]parser_options-i.rinu[U:RDoc::AnyMethod[iI"parser_options:ETI"CSV#parser_options;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI"CSV;TcRDoc::NormalClass00PK8t]Z::skip_lines-i.rinu[U:RDoc::Attr[iI"skip_lines:ETI"CSV#skip_lines;TI"R;T: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"DThe regex marking a line as a comment. See CSV::new for details;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below0F@I"CSV;TcRDoc::NormalClass0PK8t]%F--new-c.rinu[U:RDoc::AnyMethod[iI"new:ETI" CSV::new;TT: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [ I"RThis constructor will wrap either a String or IO object passed in +data+ for ;TI"Rreading and/or writing. In addition to the CSV instance methods, several IO ;TI"Qmethods are delegated. (See CSV::open() for a complete list.) If you pass ;TI"Na String for +data+, you can later retrieve it (after writing to it, for ;TI" example) with CSV.string().;To:RDoc::Markup::BlankLineo; ; [I"LNote that a wrapped String will be positioned at at the beginning (for ;TI"Nreading). If you want it at the end (for writing), use CSV::generate(). ;TI"NIf you want any other positioning, pass a preset StringIO object instead.;T@o; ; [I"OYou may set any reading and/or writing preferences in the +options+ Hash. ;TI"Available options are:;T@o:RDoc::Markup::List: @type: NOTE: @items[o:RDoc::Markup::ListItem: @label[I":col_sep;T; [o; ; [I"+The String placed between each field. ;TI")This String will be transcoded into ;TI"(the data's Encoding before parsing.;To;;[I":row_sep;T; [o; ; ["I",The String appended to the end of each ;TI"*row. This can be set to the special ;TI",:auto setting, which requests ;TI"*that CSV automatically discover this ;TI"*from the data. Auto-discovery reads ;TI",ahead in the data looking for the next ;TI"("\r\n", "\n", or ;TI")"\r" sequence. A sequence ;TI"+will be selected even if it occurs in ;TI"'a quoted field, assuming that you ;TI"&would have the same line endings ;TI"+there. If none of those sequences is ;TI"%found, +data+ is ARGF, ;TI")STDIN, STDOUT, or ;TI",STDERR, or the stream is only ;TI"'available for output, the default ;TI"&$INPUT_RECORD_SEPARATOR ;TI"(($/) is used. Obviously, ;TI")discovery takes a little time. Set ;TI"+manually if speed is important. Also ;TI"+note that IO objects should be opened ;TI"'in binary mode on Windows if this ;TI"!feature will be used as the ;TI"'line-ending translation can cause ;TI"*problems with resetting the document ;TI")position to where it was before the ;TI"%read ahead. This String will be ;TI")transcoded into the data's Encoding ;TI"before parsing.;To;;[I" :quote_char;T; [o; ; [I")The character used to quote fields. ;TI"'This has to be a single character ;TI"!String. This is useful for ;TI"&application that incorrectly use ;TI"'' as the quote character ;TI"(instead of the correct ". ;TI"'CSV will always consider a double ;TI"&sequence this character to be an ;TI"(escaped quote. This String will be ;TI")transcoded into the data's Encoding ;TI"before parsing.;To;;[I"&:field_size_limit;T; [o; ; [I"*This is a maximum size CSV will read ;TI")ahead looking for the closing quote ;TI"*for a field. (In truth, it reads to ;TI"'the first line ending beyond this ;TI"(size.) If a quote cannot be found ;TI"'within the limit CSV will raise a ;TI"*MalformedCSVError, assuming the data ;TI"+is faulty. You can use this limit to ;TI"&prevent what are effectively DoS ;TI"+attacks on the parser. However, this ;TI"+limit can cause a legitimate parse to ;TI",fail and thus is set to +nil+, or off, ;TI"by default.;To;;[I" :converters;T; [o; ; [I"+An Array of names from the Converters ;TI",Hash and/or lambdas that handle custom ;TI"%conversion. A single converter ;TI"*doesn't have to be in an Array. All ;TI"*built-in converters try to transcode ;TI"(fields to UTF-8 before converting. ;TI"*The conversion will fail if the data ;TI"'cannot be transcoded, leaving the ;TI"field unchanged.;To;;[I"(:unconverted_fields;T; [o; ; [I"If set to +true+, an ;TI")unconverted_fields() method will be ;TI"*added to all returned rows (Array or ;TI"+CSV::Row) that will return the fields ;TI"+as they were before conversion. Note ;TI"(that :headers supplied by ;TI",Array or String were not fields of the ;TI"*document and thus will have an empty ;TI"Array attached.;To;;[I":headers;T; [o; ; [I"&If set to :first_row or ;TI"(+true+, the initial row of the CSV ;TI"&file will be treated as a row of ;TI"'headers. If set to an Array, the ;TI"+contents will be used as the headers. ;TI"+If set to a String, the String is run ;TI")through a call of CSV::parse_line() ;TI"&with the same :col_sep, ;TI":row_sep, and ;TI"+:quote_char as this instance ;TI"+to produce an Array of headers. This ;TI"*setting causes CSV#shift() to return ;TI")rows as CSV::Row objects instead of ;TI"%Arrays and CSV#read() to return ;TI",CSV::Table objects instead of an Array ;TI"of Arrays.;To;;[I"$:return_headers;T; [o; ; [ I",When +false+, header rows are silently ;TI"*swallowed. If set to +true+, header ;TI",rows are returned in a CSV::Row object ;TI" with identical headers and ;TI",fields (save that the fields do not go ;TI"through the converters).;To;;[I"#:write_headers;T; [o; ; [I"*When +true+ and :headers is ;TI",set, a header row will be added to the ;TI" output.;To;;[I"':header_converters;T; [o; ; [ I"#Identical in functionality to ;TI"(:converters save that the ;TI")conversions are only made to header ;TI"+rows. All built-in converters try to ;TI"'transcode headers to UTF-8 before ;TI"+converting. The conversion will fail ;TI"'if the data cannot be transcoded, ;TI""leaving the header unchanged.;To;;[I"!:skip_blanks;T; [o; ; [I"*When set to a +true+ value, CSV will ;TI"(skip over any rows with no content.;To;;[I"":force_quotes;T; [o; ; [I"*When set to a +true+ value, CSV will ;TI"%quote all CSV fields it creates.;To;;[I" :skip_lines;T; [o; ; [I")When set to an object responding to ;TI")match, every line matching ;TI",it is considered a comment and ignored ;TI"+during parsing. When set to a String, ;TI"(it is first converted to a Regexp. ;TI"-When set to +nil+ no line is considered ;TI"*a comment. If the passed object does ;TI"$not respond to match, ;TI"&ArgumentError is thrown.;T@o; ; [I"7See CSV::DEFAULT_OPTIONS for the default settings.;T@o; ; [I"SOptions cannot be overridden in the instance methods for performance reasons, ;TI"*so be sure to set what you want here.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"(data, options = Hash.new);T@FI"CSV;TcRDoc::NormalClass00PK8t]TYqqreturn_headers%3f-i.rinu[U:RDoc::AnyMethod[iI"return_headers?:EFI"CSV#return_headers?;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"EReturns +true+ if headers will be returned as a row of results. ;TI"See CSV::new for details.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"CSV;TcRDoc::NormalClass00PK8t]{H parse-c.rinu[U:RDoc::AnyMethod[iI" parse:EFI"CSV::parse;TT: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"RThis method can be used to easily parse CSV out of a String. You may either ;TI"Qprovide a +block+ which will be called with each row of the String in turn, ;TI"Ior just use the returned Array of Arrays (when no +block+ is given).;To:RDoc::Markup::BlankLineo; ; [I"QYou pass your +str+ to read from, and an optional +options+ Hash containing ;TI"%anything CSV::new() understands.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below0I"Uparse( str, options = Hash.new ) { |row| ... } parse( str, options = Hash.new ) ;T0[I"(*args, &block);T@FI"CSV;TcRDoc::NormalClass00PK8t]U\ puts-i.rinu[U:RDoc::AnyMethod[iI" puts:ETI" CSV#puts;TF: publico:RDoc::Markup::Document: @parts[: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I" (row);T@ FI"CSV;TcRDoc::NormalClass0[@FI"<<;TPK8t]^] eof%3f-i.rinu[U:RDoc::AnyMethod[iI" eof?:ETI" CSV#eof?;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[[I"eof;To;; [; @ ; 0I"();T@ FI"CSV;TcRDoc::NormalClass00PK8t] to_i-i.rinu[U:RDoc::AnyMethod[iI" to_i:ETI" CSV#to_i;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI"CSV;TcRDoc::NormalClass00PK8t]v.'"build_writer_fields_converter-i.rinu[U:RDoc::AnyMethod[iI""build_writer_fields_converter:ETI"&CSV#build_writer_fields_converter;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI"CSV;TcRDoc::NormalClass00PK8t]bWriter/prepare_format-i.rinu[U:RDoc::AnyMethod[iI"prepare_format:ETI"CSV::Writer#prepare_format;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/writer.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI" Writer;TcRDoc::NormalClass00PK8t]""'Writer/prepare_force_quotes_fields-i.rinu[U:RDoc::AnyMethod[iI" prepare_force_quotes_fields:ETI",CSV::Writer#prepare_force_quotes_fields;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/writer.rb;T:0@omit_headings_from_table_of_contents_below000[I"(force_quotes);T@ FI" Writer;TcRDoc::NormalClass00PK8t]܁Writer/cdesc-Writer.rinu[U:RDoc::NormalClass[iI" Writer:ETI"CSV::Writer;TI" Object;To:RDoc::Markup::Document: @parts[o;;[o:RDoc::Markup::Paragraph;[I"DNote: Don't use this class directly. This is an internal class.;T: @fileI"lib/csv/writer.rb;T:0@omit_headings_from_table_of_contents_below0; 0; 0[[ I" headers;TI"R;T: privateFI"lib/csv/writer.rb;T[ I" lineno;T@; F@[[[[I" class;T[[: public[[:protected[[; [[I"new;T@[I" instance;T[[; [[;[[; [[I"<<;T@[I" prepare;T@[I" prepare_force_quotes_fields;T@[I"prepare_format;T@[I"prepare_header;T@[I"prepare_output;T@[I" quote;T@[I"quote_field;T@[I" rewind;T@[[U:RDoc::Context::Section[i0o;;[; 0; 0[I"lib/csv/writer.rb;TI"CSV;TcRDoc::NormalClassPK8t]BWriter/new-c.rinu[U:RDoc::AnyMethod[iI"new:ETI"CSV::Writer::new;TT: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/writer.rb;T:0@omit_headings_from_table_of_contents_below000[I"(output, options);T@ FI" Writer;TcRDoc::NormalClass00PK8t]DWriter/prepare_output-i.rinu[U:RDoc::AnyMethod[iI"prepare_output:ETI"CSV::Writer#prepare_output;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/writer.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI" Writer;TcRDoc::NormalClass00PK8t]IWriter/quote_field-i.rinu[U:RDoc::AnyMethod[iI"quote_field:ETI"CSV::Writer#quote_field;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/writer.rb;T:0@omit_headings_from_table_of_contents_below000[I" (field);T@ FI" Writer;TcRDoc::NormalClass00PK8t]N<Writer/prepare-i.rinu[U:RDoc::AnyMethod[iI" prepare:ETI"CSV::Writer#prepare;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/writer.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI" Writer;TcRDoc::NormalClass00PK8t]TWriter/headers-i.rinu[U:RDoc::Attr[iI" headers:ETI"CSV::Writer#headers;TI"R;T: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/writer.rb;T:0@omit_headings_from_table_of_contents_below0F@ I"CSV::Writer;TcRDoc::NormalClass0PK8t]1Writer/quote-i.rinu[U:RDoc::AnyMethod[iI" quote:ETI"CSV::Writer#quote;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/writer.rb;T:0@omit_headings_from_table_of_contents_below000[I"(field, i);T@ FI" Writer;TcRDoc::NormalClass00PK8t]Pϴ--Writer/rewind-i.rinu[U:RDoc::AnyMethod[iI" rewind:ETI"CSV::Writer#rewind;TF: privateo:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I" Winds back to the beginning;T: @fileI"lib/csv/writer.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI" Writer;TcRDoc::NormalClass00PK8t]%Writer/lineno-i.rinu[U:RDoc::Attr[iI" lineno:ETI"CSV::Writer#lineno;TI"R;T: privateo:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"OA CSV::Writer receives an output, prepares the header, format and output. ;TI"@It allows us to write new rows in the object and rewind it.;T: @fileI"lib/csv/writer.rb;T:0@omit_headings_from_table_of_contents_below0F@I"CSV::Writer;TcRDoc::NormalClass0PK8t](Writer/%3c%3c-i.rinu[U:RDoc::AnyMethod[iI"<<:ETI"CSV::Writer#<<;TF: privateo:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"Adds a new row;T: @fileI"lib/csv/writer.rb;T:0@omit_headings_from_table_of_contents_below000[I" (row);T@FI" Writer;TcRDoc::NormalClass00PK8t]Writer/prepare_header-i.rinu[U:RDoc::AnyMethod[iI"prepare_header:ETI"CSV::Writer#prepare_header;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/writer.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI" Writer;TcRDoc::NormalClass00PK8t]Rnvwriter_options-i.rinu[U:RDoc::AnyMethod[iI"writer_options:ETI"CSV#writer_options;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI"CSV;TcRDoc::NormalClass00PK8t]9/)0 filter-c.rinu[U:RDoc::AnyMethod[iI" filter:EFI"CSV::filter;TT: publico:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [I"OThis method is a convenience for building Unix-like filters for CSV data. ;TI"MEach row is yielded to the provided block which can alter it as needed. ;TI"MAfter the block returns, the row is appended to +output+ altered or not.;To:RDoc::Markup::BlankLineo; ; [I"KThe +input+ and +output+ arguments can be anything CSV::new() accepts ;TI"F(generally String or IO objects). If not given, they default to ;TI"(ARGF and $stdout.;T@o; ; [ I"LThe +options+ parameter is also filtered down to CSV::new() after some ;TI"Bclever key parsing. Any key beginning with :in_ or ;TI"O:input_ will have that leading identifier stripped and will only ;TI"Obe used in the +options+ Hash for the +input+ object. Keys starting with ;TI"O:out_ or :output_ affect only +output+. All other keys ;TI""are assigned to both objects.;T@o; ; [I"7The :output_row_sep +option+ defaults to ;TI"4$INPUT_RECORD_SEPARATOR ($/).;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below0I"filter( options = Hash.new ) { |row| ... } filter( input, options = Hash.new ) { |row| ... } filter( input, output, options = Hash.new ) { |row| ... } ;TI"row;T[I" (*args);T@"FI"CSV;TcRDoc::NormalClass00PK8t]NFII generate-c.rinu[U:RDoc::AnyMethod[iI" generate:EFI"CSV::generate;TT: publico:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [ I"NThis method wraps a String you provide, or an empty default String, in a ;TI"QCSV object which is passed to the provided block. You can use the block to ;TI"Nappend CSV rows to the String and when the block exits, the final String ;TI"will be returned.;To:RDoc::Markup::BlankLineo; ; [I"PNote that a passed String *is* modified by this method. Call dup() before ;TI"&passing if you need a new String.;T@o; ; [ I"RThe +options+ parameter can be anything CSV::new() understands. This method ;TI"Nunderstands an additional :encoding parameter when not passed a ;TI"QString to set the base Encoding for the output. CSV needs this hint if you ;TI".plan to output non-ASCII compatible data.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below0I"dgenerate( str, options = Hash.new ) { |csv| ... } generate( options = Hash.new ) { |csv| ... } ;TI"csv;T[I" (*args);T@FI"CSV;TcRDoc::NormalClass00PK8t]MatchP/cdesc-MatchP.rinu[U:RDoc::NormalModule[iI" MatchP:ETI"CSV::MatchP;T0o:RDoc::Markup::Document: @parts[o;;[: @fileI"lib/csv/match_p.rb;T:0@omit_headings_from_table_of_contents_below0; 0; 0[[[[[I" class;T[[: public[[:protected[[: private[[I" instance;T[[; [[; [[; [[I" match?;TI"lib/csv/match_p.rb;T[[U:RDoc::Context::Section[i0o;;[; 0; 0[I"lib/csv/match_p.rb;TI"CSV;TcRDoc::NormalClassPK8t]GMatchP/match%3f-i.rinu[U:RDoc::AnyMethod[iI" match?:ETI"CSV::MatchP#match?;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/match_p.rb;T:0@omit_headings_from_table_of_contents_below000[I"(pattern);T@ FI" MatchP;TcRDoc::NormalModule00PK8t]UALZZquote_char-i.rinu[U:RDoc::Attr[iI"quote_char:ETI"CSV#quote_char;TI"R;T: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"QThe encoded :quote_char used in parsing and writing. See CSV::new ;TI"for details.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below0F@I"CSV;TcRDoc::NormalClass0PK8t]ӻDyyconvert_fields-i.rinu[U:RDoc::AnyMethod[iI"convert_fields:EFI"CSV#convert_fields;TF: privateo:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [ I"RProcesses +fields+ with @converters, or @header_converters ;TI"Oif +headers+ is passed as +true+, returning the converted field set. Any ;TI"Oconverter that changes the field into something other than a String halts ;TI"Qthe pipeline of conversion for that field. This is primarily an efficiency ;TI"shortcut.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"(fields, headers = false);T@FI"CSV;TcRDoc::NormalClass00PK8t]ZJ" line-i.rinu[U:RDoc::AnyMethod[iI" line:ETI" CSV#line;TF: privateo:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [I")Returns the line most recently read:;To:RDoc::Markup::Verbatim; [ I"&string = "foo,0\nbar,1\nbaz,2\n" ;TI"path = 't.csv' ;TI"File.write(path, string) ;TI"CSV.open(path) do |csv| ;TI" csv.each do |row| ;TI"" p [csv.lineno, csv.line] ;TI" end ;TI" end ;T: @format0o; ; [I" Output:;To; ; [I"[1, "foo,0\n"] ;TI"[2, "bar,1\n"] ;TI"[3, "baz,2\n"];T; 0: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below0I"csv.line -> array ;T0[I"();T@ FI"CSV;TcRDoc::NormalClass00PK8t]AG path-i.rinu[U:RDoc::AnyMethod[iI" path:ETI" CSV#path;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI"CSV;TcRDoc::NormalClass00PK8t]3L++ cdesc-CSV.rinu[U:RDoc::NormalClass[iI"CSV:ET@I" Object;To:RDoc::Markup::Document: @parts[o;;[;o:RDoc::Markup::Paragraph;[I"PThis class provides a complete interface to CSV files and data. It offers ;TI"Qtools to enable you to read and write to and from Strings or IO objects, as ;TI" needed.;To:RDoc::Markup::BlankLineS:RDoc::Markup::Heading: leveli: textI" Reading;T@S; ; i; I"From a File;T@S; ; i ; I"A Line at a Time;T@o:RDoc::Markup::Verbatim;[I".CSV.foreach("path/to/file.csv") do |row| ;TI" # use row here... ;TI" end ;T: @format0S; ; i ; I"All at Once;T@o;;[I"0arr_of_arrs = CSV.read("path/to/file.csv") ;T;0S; ; i; I"From a String;T@S; ; i ; I"A Line at a Time;T@o;;[I"+CSV.parse("CSV,data,String") do |row| ;TI" # use row here... ;TI" end ;T;0S; ; i ; I"All at Once;T@o;;[I"0arr_of_arrs = CSV.parse("CSV,data,String") ;T;0S; ; i; I" Writing;T@S; ; i; I"To a File;T@o;;[ I"1CSV.open("path/to/file.csv", "wb") do |csv| ;TI"+ csv << ["row", "of", "CSV", "data"] ;TI"! csv << ["another", "row"] ;TI" # ... ;TI" end ;T;0S; ; i; I"To a String;T@o;;[ I"(csv_string = CSV.generate do |csv| ;TI"+ csv << ["row", "of", "CSV", "data"] ;TI"! csv << ["another", "row"] ;TI" # ... ;TI" end ;T;0S; ; i; I"Convert a Single Line;T@o;;[I"4csv_string = ["CSV", "data"].to_csv # to CSV ;TI"6csv_array = "CSV,String".parse_csv # from CSV ;T;0S; ; i; I"Shortcut Interface;T@o;;[ I"MCSV { |csv_out| csv_out << %w{my data here} } # to $stdout ;TI"NCSV(csv = "") { |csv_str| csv_str << %w{my data here} } # to a String ;TI"MCSV($stderr) { |csv_err| csv_err << %w{my data here} } # to $stderr ;TI"NCSV($stdin) { |csv_in| csv_in.each { |row| p row } } # from $stdin ;T;0S; ; i; I"Advanced Usage;T@S; ; i; I"Wrap an IO Object;T@o;;[I" csv = CSV.new(io, options) ;TI"Q# ... read (with gets() or each()) from and write (with <<) to csv here ... ;T;0S; ; i; I">CSV and Character Encodings (M17n or Multilingualization);T@o; ;[ I"TThis new CSV parser is m17n savvy. The parser works in the Encoding of the IO ;TI"Tor String object being read from or written to. Your data is never transcoded ;TI"S(unless you ask Ruby to transcode it for you) and will literally be parsed in ;TI"Sthe Encoding it is in. Thus CSV will return Arrays or Rows of Strings in the ;TI"SEncoding of your data. This is accomplished by transcoding the parser itself ;TI"into your Encoding.;T@o; ;[ I"SSome transcoding must take place, of course, to accomplish this multiencoding ;TI"Fsupport. For example, :col_sep, :row_sep, and ;TI"Q:quote_char must be transcoded to match your data. Hopefully this ;TI"Qmakes the entire process feel transparent, since CSV's defaults should just ;TI"Qmagically work for you data. However, you can set these values manually in ;TI"2the target Encoding to avoid the translation.;T@o; ;[ I"LIt's also important to note that while all of CSV's core parser is now ;TI"JEncoding agnostic, some features are not. For example, the built-in ;TI"Oconverters will try to transcode data to UTF-8 before making conversions. ;TI"RAgain, you can provide custom converters that are aware of your Encodings to ;TI"Javoid this translation. It's just too hard for me to support native ;TI",conversions in all of Ruby's Encodings.;T@o; ;[ I"TAnyway, the practical side of this is simple: make sure IO and String objects ;TI"Spassed into CSV have the proper Encoding set and everything should just work. ;TI"QCSV methods that allow you to open IO objects (CSV::foreach(), CSV::open(), ;TI"MCSV::read(), and CSV::readlines()) do allow you to specify the Encoding.;T@o; ;[ I"ROne minor exception comes when generating CSV into a String with an Encoding ;TI"Othat is not ASCII compatible. There's no existing data for CSV to use to ;TI"Tprepare itself and thus you will probably need to manually specify the desired ;TI"SEncoding for most of those cases. It will try to guess using the fields in a ;TI"Mrow of output though, when using CSV::generate_line() or Array#to_csv().;T@o; ;[I"RI try to point out any other Encoding issues in the documentation of methods ;TI"as they come up.;T@o; ;[ I"SThis has been tested to the best of my ability with all non-"dummy" Encodings ;TI"MRuby ships with. However, it is brave new code and may have some bugs. ;TI"SPlease feel free to {report}[mailto:james@grayproductions.net] any issues you ;TI"find with it.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below0;0;0[ [ I" col_sep;TI"R;T: publicFI"lib/csv.rb;T[ I" encoding;TI"R;T;F@[ I"field_size_limit;TI"R;T;F@[ I" lineno;TI"R;T;F@[ I"quote_char;TI"R;T;F@[ I" row_sep;TI"R;T;F@[ I"skip_lines;TI"R;T;F@[ U:RDoc::Constant[iI" VERSION;FI"CSV::VERSION;T00o;;[o; ;[I"*The version of the installed library.;T;@;0@@cRDoc::NormalClass0U;[iI"FieldInfo;FI"CSV::FieldInfo;T00o;;[o; ;[ I"NA FieldInfo Struct contains details about a field's position in the data ;TI"Rsource it was read from. CSV will pass this Struct to some blocks that make ;TI"Jdecisions based on field structure. See CSV.convert_fields() for an ;TI" example.;T@o:RDoc::Markup::List: @type: NOTE: @items[o:RDoc::Markup::ListItem: @label[I"index;T;[o; ;[I"2The zero-based index of the field in its row.;To;;[I"line;T;[o; ;[I"2The line of the data source this row is from.;To;;[I"header;T;[o; ;[I"/The header for the column, when available.;T;@;0@@@0U;[iI"DateMatcher;FI"CSV::DateMatcher;T00o;;[o; ;[I"@A Regexp used to find and convert some common Date formats.;T;@;0@@@0U;[iI"DateTimeMatcher;FI"CSV::DateTimeMatcher;T00o;;[o; ;[I"DA Regexp used to find and convert some common DateTime formats.;T;@;0@@@0U;[iI"ConverterEncoding;FI"CSV::ConverterEncoding;T00o;;[o; ;[I")The encoding used by all converters.;T;@;0@@@0U;[iI"Converters;FI"CSV::Converters;T00o;;[ o; ;[I"RThis Hash holds the built-in converters of CSV that can be accessed by name. ;TI"PYou can select Converters with CSV.convert() or through the +options+ Hash ;TI"passed to CSV::new().;T@o;;;;[ o;;[I":integer;T;[o; ;[I"*Converts any field Integer() accepts.;To;;[I":float;T;[o; ;[I"(Converts any field Float() accepts.;To;;[I":numeric;T;[o; ;[I"(A combination of :integer ;TI"and :float.;To;;[I":date;T;[o; ;[I".Converts any field Date::parse() accepts.;To;;[I":date_time;T;[o; ;[I"2Converts any field DateTime::parse() accepts.;To;;[I":all;T;[o; ;[I"0All built-in converters. A combination of ;TI"/:date_time and :numeric.;T@o; ;[I"OAll built-in converters transcode field data to UTF-8 before attempting a ;TI"Qconversion. If your data cannot be transcoded to UTF-8 the conversion will ;TI".fail and the field will remain unchanged.;T@o; ;[I"PThis Hash is intentionally left unfrozen and users should feel free to add ;TI":values to it that can be accessed by all CSV objects.;T@o; ;[I"PTo add a combo field, the value should be an Array of names. Combo fields ;TI"+can be nested with other combo fields.;T;@;0@@@0U;[iI"HeaderConverters;FI"CSV::HeaderConverters;T00o;;[ o; ;[I"PThis Hash holds the built-in header converters of CSV that can be accessed ;TI"Lby name. You can select HeaderConverters with CSV.header_convert() or ;TI"5through the +options+ Hash passed to CSV::new().;T@o;;;;[o;;[I":downcase;T;[o; ;[I"+Calls downcase() on the header String.;To;;[I":symbol;T;[o; ;[I"0The header String is downcased, spaces are ;TI"4replaced with underscores, non-word characters ;TI"1are dropped, and finally to_sym() is called.;T@o; ;[I"JAll built-in header converters transcode header data to UTF-8 before ;TI"Nattempting a conversion. If your data cannot be transcoded to UTF-8 the ;TI"?conversion will fail and the header will remain unchanged.;T@o; ;[I"PThis Hash is intentionally left unfrozen and users should feel free to add ;TI":values to it that can be accessed by all CSV objects.;T@o; ;[I"PTo add a combo field, the value should be an Array of names. Combo fields ;TI"+can be nested with other combo fields.;T;@;0@@@0U;[iI"DEFAULT_OPTIONS;FI"CSV::DEFAULT_OPTIONS;T00o;;[o; ;[I"MThe options used when no overrides are given by calling code. They are:;T@o;;;;[o;;[I":col_sep;T;[o; ;[I"",";To;;[I":row_sep;T;[o; ;[I":auto;To;;[I" :quote_char;T;[o; ;[I"'"';To;;[I"&:field_size_limit;T;[o; ;[I" +nil+;To;;[I" :converters;T;[o; ;[I" +nil+;To;;[I"(:unconverted_fields;T;[o; ;[I" +nil+;To;;[I":headers;T;[o; ;[I" +false+;To;;[I"$:return_headers;T;[o; ;[I" +false+;To;;[I"':header_converters;T;[o; ;[I" +nil+;To;;[I"!:skip_blanks;T;[o; ;[I" +false+;To;;[I"":force_quotes;T;[o; ;[I" +false+;To;;[I" :skip_lines;T;[o; ;[I" +nil+;T;@;0@@@0[[I"Enumerable;To;;[;@;0@[[I" class;T[[;[[I" filter;F@[I" foreach;F@[I" generate;F@[I"generate_line;F@[I" instance;F@[I"new;T@[I" open;F@[I" parse;F@[I"parse_line;F@[I" read;F@[I"readlines;F@[I" table;F@[:protected[[: private[[I" instance;T[[;[[I"<<;T@[I" add_row;T@[I" convert;F@[I"converters;F@[I" each;F@[I"force_quotes?;F@[I" gets;T@[I"header_convert;F@[I"header_converters;F@[I"header_row?;F@[I" headers;F@[I" inspect;F@[I" puts;T@[I" read;F@[I" readline;T@[I"readlines;T@[I"return_headers?;F@[I" rewind;F@[I" shift;F@[I"skip_blanks?;F@[I"unconverted_fields?;F@[I"write_headers?;F@[;[[;[[I"add_converter;F@[I"add_unconverted_fields;F@[I"convert_fields;F@[I"encode_re;F@[I"encode_str;F@[I"escape_re;F@[I"init_comments;F@[I"init_converters;F@[I"init_headers;F@[I"init_parsers;F@[I"init_separators;F@[I"parse_headers;F@[I"raw_encoding;F@[[I"Forwardable;To;;[o; ;[I"#IO and StringIO Delegation ###;T;@;0@[U:RDoc::Context::Section[i0o;;[;0;0[@@cRDoc::TopLevelPK8t]v  Row/each_pair-i.rinu[U:RDoc::AnyMethod[iI"each_pair:ETI"CSV::Row#each_pair;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/row.rb;T:0@omit_headings_from_table_of_contents_below000[I" (&block);T@ FI"Row;TcRDoc::NormalClass0[I" CSV::Row;TFI" each;TPK8t]|hnRow/values_at-i.rinu[U:RDoc::AnyMethod[iI"values_at:ETI"CSV::Row#values_at;TF: publico:RDoc::Markup::Document: @parts[: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"(*headers_and_or_indices);T@ FI"Row;TcRDoc::NormalClass0[I" CSV::Row;TFI" fields;FPK8t]pI䠤Row/has_key%3f-i.rinu[U:RDoc::AnyMethod[iI" has_key?:EFI"CSV::Row#has_key?;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"@Returns +true+ if there is a field with the given +header+.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[[I" include?;To;; [; @; 0[I" key?;To;; [; @; 0[I" member?;To;; [; @; 0I" (header);T@FI"Row;TcRDoc::NormalClass00PK8t]TRow/field-i.rinu[U:RDoc::AnyMethod[iI" field:EFI"CSV::Row#field;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"QThis method will return the field value by +header+ or +index+. If a field ;TI"%is not found, +nil+ is returned.;To:RDoc::Markup::BlankLineo; ; [I"LWhen provided, +offset+ ensures that a header match occurs on or later ;TI"Kthan the +offset+ index. You can use this to find duplicate headers, ;TI"4without resorting to hard-coding exact indices.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below0I" "0" ;TI"row.dig('Value') # => "0" ;TI"row.dig(5) # => nil;T: @format0: @fileI"lib/csv/row.rb;T:0@omit_headings_from_table_of_contents_below0I"6row.dig(index_or_header, *identifiers) -> object ;T0[I" (index_or_header, *indexes);T@FI"Row;TcRDoc::NormalClass00PK8t]:55Row/header_row%3f-i.rinu[U:RDoc::AnyMethod[iI"header_row?:EFI"CSV::Row#header_row?;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I",Returns +true+ if this is a header row.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Row;TcRDoc::NormalClass00PK8t]cDDRow/inspect-i.rinu[U:RDoc::AnyMethod[iI" inspect:EFI"CSV::Row#inspect;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"CA summary of fields, by header, in an ASCII compatible String.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Row;TcRDoc::NormalClass00PK8t]FRow/key%3f-i.rinu[U:RDoc::AnyMethod[iI" key?:ETI"CSV::Row#key?;TF: publico:RDoc::Markup::Document: @parts[: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I" (header);T@ FI"Row;TcRDoc::NormalClass0[I" CSV::Row;TFI" has_key?;FPK8t]b܏Row/deconstruct-i.rinu[U:RDoc::AnyMethod[iI"deconstruct:ETI"CSV::Row#deconstruct;TF: privateo:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"PReturns the new \Array suitable for pattern matching containing the values ;TI"of the row.;T: @fileI"lib/csv/row.rb;T:0@omit_headings_from_table_of_contents_below0I"row.deconstruct -> array ;T0[I"();T@FI"Row;TcRDoc::NormalClass00PK8t]BRow/fetch-i.rinu[U:RDoc::AnyMethod[iI" fetch:EFI"CSV::Row#fetch;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [ I"IThis method will fetch the field value by +header+. It has the same ;TI"Nbehavior as Hash#fetch: if there is a field with the given +header+, its ;TI"Jvalue is returned. Otherwise, if a block is given, it is yielded the ;TI"I+header+ and its result is returned; if a +default+ is given as the ;TI"Esecond argument, it is returned; otherwise a KeyError is raised.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below0I"Lfetch( header ) fetch( header ) { |row| ... } fetch( header, default ) ;TI" header;T[I"(header, *varargs);T@FI"Row;TcRDoc::NormalClass00PK8t]U\ Row/new-c.rinu[U:RDoc::AnyMethod[iI"new:ETI"CSV::Row::new;TT: publico:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [I"NConstruct a new CSV::Row from +headers+ and +fields+, which are expected ;TI"Nto be Arrays. If one Array is shorter than the other, it will be padded ;TI"with +nil+ objects.;To:RDoc::Markup::BlankLineo; ; [I"OThe optional +header_row+ parameter can be set to +true+ to indicate, via ;TI"MCSV::Row.header_row?() and CSV::Row.field_row?(), that this is a header ;TI";row. Otherwise, the row is assumes to be a field row.;T@o; ; [I"OA CSV::Row object supports the following Array methods through delegation:;T@o:RDoc::Markup::List: @type: BULLET: @items[o:RDoc::Markup::ListItem: @label0; [o; ; [I" empty?();To;;0; [o; ; [I" length();To;;0; [o; ; [I" size();T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"*(headers, fields, header_row = false);T@*FI"Row;TcRDoc::NormalClass00PK8t].c(( Row/row-i.rinu[U:RDoc::Attr[iI"row:ETI"CSV::Row#row;TI"R;T:protectedo:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"3Internal data format used to compare equality.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below0F@I" CSV::Row;TcRDoc::NormalClass0PK8t]DRow/include%3f-i.rinu[U:RDoc::AnyMethod[iI" include?:ETI"CSV::Row#include?;TF: publico:RDoc::Markup::Document: @parts[: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I" (header);T@ FI"Row;TcRDoc::NormalClass0[I" CSV::Row;TFI" has_key?;FPK8t]^ Row/push-i.rinu[U:RDoc::AnyMethod[iI" push:EFI"CSV::Row#push;TF: publico:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [I">A shortcut for appending multiple fields. Equivalent to:;To:RDoc::Markup::BlankLineo:RDoc::Markup::Verbatim; [I"(args.each { |arg| csv_row << arg } ;T: @format0o; ; [I".This method returns the row for chaining.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I" (*args);T@FI"Row;TcRDoc::NormalClass00PK8t]uŵRow/deconstruct_keys-i.rinu[U:RDoc::AnyMethod[iI"deconstruct_keys:ETI"CSV::Row#deconstruct_keys;TF: privateo:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"MReturns the new \Hash suitable for pattern matching containing only the ;TI"#keys specified as an argument.;T: @fileI"lib/csv/row.rb;T:0@omit_headings_from_table_of_contents_below0I"(row.deconstruct_keys(keys) -> hash ;T0[I" (keys);T@FI"Row;TcRDoc::NormalClass00PK8t]5Row/%5b%5d-i.rinu[U:RDoc::AnyMethod[iI"[]:ETI"CSV::Row#[];TF: publico:RDoc::Markup::Document: @parts[: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I")(header_or_index, minimum_index = 0);T@ FI"Row;TcRDoc::NormalClass0[I" CSV::Row;TFI" field;FPK8t]'`4Row/fields-i.rinu[U:RDoc::AnyMethod[iI" fields:EFI"CSV::Row#fields;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [ I"PThis method accepts any number of arguments which can be headers, indices, ;TI"MRanges of either, or two-element Arrays containing a header and offset. ;TI"HEach argument will be replaced with a field lookup as described in ;TI"CSV::Row.field().;To:RDoc::Markup::BlankLineo; ; [I":If called with no arguments, all fields are returned.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[[I"values_at;To;; [; @; 0I"(*headers_and_or_indices);T@FI"Row;TcRDoc::NormalClass00PK8t]d   Row/to_s-i.rinu[U:RDoc::AnyMethod[iI" to_s:ETI"CSV::Row#to_s;TF: publico:RDoc::Markup::Document: @parts[: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"(options = Hash.new);T@ FI"Row;TcRDoc::NormalClass0[I" CSV::Row;TFI" to_csv;FPK8t] V5++Row/delete-i.rinu[U:RDoc::AnyMethod[iI" delete:EFI"CSV::Row#delete;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"MUsed to remove a pair from the row by +header+ or +index+. The pair is ;TI"Nlocated as described in CSV::Row.field(). The deleted pair is returned, ;TI"+or +nil+ if a pair could not be found.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below0I"?delete( header ) delete( header, offset ) delete( index ) ;T0[I")(header_or_index, minimum_index = 0);T@FI"Row;TcRDoc::NormalClass00PK8t]懊Row/index-i.rinu[U:RDoc::AnyMethod[iI" index:EFI"CSV::Row#index;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"NThis method will return the index of a field with the provided +header+. ;TI"PThe +offset+ can be used to locate duplicate header names, as described in ;TI"CSV::Row.field().;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below0I"-index( header ) index( header, offset ) ;T0[I" (header, minimum_index = 0);T@FI"Row;TcRDoc::NormalClass00PK8t]#\kRow/delete_if-i.rinu[U:RDoc::AnyMethod[iI"delete_if:EFI"CSV::Row#delete_if;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"PThe provided +block+ is passed a header and field for each pair in the row ;TI"Mand expected to return +true+ or +false+, depending on whether the pair ;TI"should be deleted.;To:RDoc::Markup::BlankLineo; ; [I".This method returns the row for chaining.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I" (&block);T@FI"Row;TcRDoc::NormalClass00PK8t]i[[Row/field%3f-i.rinu[U:RDoc::AnyMethod[iI" field?:EFI"CSV::Row#field?;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"GReturns +true+ if +data+ matches a field in this row, and +false+ ;TI"otherwise.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I" (data);T@FI"Row;TcRDoc::NormalClass00PK8t]7||Row/to_hash-i.rinu[U:RDoc::AnyMethod[iI" to_hash:EFI"CSV::Row#to_hash;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"PCollapses the row into a simple Hash. Be warning that this discards field ;TI")order and clobbers duplicate fields.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Row;TcRDoc::NormalClass00PK8t]DRow/to_csv-i.rinu[U:RDoc::AnyMethod[iI" to_csv:EFI"CSV::Row#to_csv;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"LReturns the row as a CSV String. Headers are not used. Equivalent to:;To:RDoc::Markup::BlankLineo:RDoc::Markup::Verbatim; [I"%csv_row.fields.to_csv( options );T: @format0: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[[I" to_s;To;; [;@;0I"(options = Hash.new);T@FI"Row;TcRDoc::NormalClass00PK8t]SJssRow/header%3f-i.rinu[U:RDoc::AnyMethod[iI" header?:EFI"CSV::Row#header?;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"NReturns +true+ if +name+ is a header for this row, and +false+ otherwise.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[[I" include?;To;; [; @; 0I" (name);T@FI"Row;TcRDoc::NormalClass00PK8t] Row/%5b%5d%3d-i.rinu[U:RDoc::AnyMethod[iI"[]=:EFI"CSV::Row#[]=;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"KLooks up the field by the semantics described in CSV::Row.field() and ;TI"assigns the +value+.;To:RDoc::Markup::BlankLineo; ; [I"PAssigning past the end of the row with an index will set all pairs between ;TI"Lto [nil, nil]. Assigning to an unused header appends the new ;TI" pair.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below0I"K[]=( header, value ) []=( header, offset, value ) []=( index, value ) ;T0[I" (*args);T@FI"Row;TcRDoc::NormalClass00PK8t]4C\&&Row/headers-i.rinu[U:RDoc::AnyMethod[iI" headers:EFI"CSV::Row#headers;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"%Returns the headers of this row.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Row;TcRDoc::NormalClass00PK8t]XXRow/member%3f-i.rinu[U:RDoc::AnyMethod[iI" member?:ETI"CSV::Row#member?;TF: publico:RDoc::Markup::Document: @parts[: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I" (header);T@ FI"Row;TcRDoc::NormalClass0[I" CSV::Row;TFI" has_key?;FPK8t]! Row/each-i.rinu[U:RDoc::AnyMethod[iI" each:EFI"CSV::Row#each;TF: publico:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [I"GYields each pair of the row as header and field tuples (much like ;TI"iterating over a Hash).;To:RDoc::Markup::BlankLineo; ; [I"Support for Enumerable.;T@o; ; [I".This method returns the row for chaining.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I" (&block);T@FI"Row;TcRDoc::NormalClass00PK8t]ǡeeRow/initialize_copy-i.rinu[U:RDoc::AnyMethod[iI"initialize_copy:ETI"CSV::Row#initialize_copy;TF: privateo:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"Calls superclass method.;T: @fileI"lib/csv/row.rb;T:0@omit_headings_from_table_of_contents_below0I",row.initialize_copy(other_row) -> self ;T0[I" (other);T@TI"Row;TcRDoc::NormalClass00PK8t]ue22Row/field_row%3f-i.rinu[U:RDoc::AnyMethod[iI"field_row?:EFI"CSV::Row#field_row?;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"+Returns +true+ if this is a field row.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Row;TcRDoc::NormalClass00PK8t]QPpp Row/to_h-i.rinu[U:RDoc::AnyMethod[iI" to_h:ETI"CSV::Row#to_h;TF: privateo:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [I"MReturns the new \Hash formed by adding each header-value pair in +self+ ;TI"&as a key-value pair in the \Hash.;To:RDoc::Markup::Verbatim; [ I"2source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n" ;TI".table = CSV.parse(source, headers: true) ;TI"row = table[0] ;TI"1row.to_h # => {"Name"=>"foo", "Value"=>"0"} ;T: @format0o; ; [I"AHeader order is preserved, but repeated headers are ignored:;To; ; [ I".source = "Name,Name,Name\nFoo,Bar,Baz\n" ;TI".table = CSV.parse(source, headers: true) ;TI"row = table[0] ;TI""row.to_h # => {"Name"=>"Foo"};T; 0: @fileI"lib/csv/row.rb;T:0@omit_headings_from_table_of_contents_below0I"row.to_h -> hash ;T0[[I" to_hash;To;; [; @;0I"();T@FI"Row;TcRDoc::NormalClass00PK8t]DRow/%3c%3c-i.rinu[U:RDoc::AnyMethod[iI"<<:ETI"CSV::Row#<<;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [ I"PIf a two-element Array is provided, it is assumed to be a header and field ;TI"Mand the pair is appended. A Hash works the same way with the key being ;TI"Othe header and the value being the field. Anything else is assumed to be ;TI"8a lone field which is appended with a +nil+ header.;To:RDoc::Markup::BlankLineo; ; [I".This method returns the row for chaining.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below0I"J<<( field ) <<( header_and_field_array ) <<( header_and_field_hash ) ;T0[I" (arg);T@FI"Row;TcRDoc::NormalClass00PK8t]eeRow/%3d%3d-i.rinu[U:RDoc::AnyMethod[iI"==:ETI"CSV::Row#==;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"LReturns +true+ if this row contains the same headers and fields in the ;TI"same order as +other+.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I" (other);T@FI"Row;TcRDoc::NormalClass00PK8t]~ to_io-i.rinu[U:RDoc::AnyMethod[iI" to_io:ETI"CSV#to_io;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI"CSV;TcRDoc::NormalClass00PK8t] add_row-i.rinu[U:RDoc::AnyMethod[iI" add_row:ETI"CSV#add_row;TF: publico:RDoc::Markup::Document: @parts[: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I" (row);T@ FI"CSV;TcRDoc::NormalClass0[@FI"<<;TPK8t]=ʌ$$+FieldsConverter/need_static_convert%3f-i.rinu[U:RDoc::AnyMethod[iI"need_static_convert?:ETI".CSV::FieldsConverter#need_static_convert?;TF: privateo:RDoc::Markup::Document: @parts[: @fileI" lib/csv/fields_converter.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI"FieldsConverter;TcRDoc::NormalClass00PK8t]p$FieldsConverter/need_convert%3f-i.rinu[U:RDoc::AnyMethod[iI"need_convert?:ETI"'CSV::FieldsConverter#need_convert?;TF: privateo:RDoc::Markup::Document: @parts[: @fileI" lib/csv/fields_converter.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI"FieldsConverter;TcRDoc::NormalClass00PK8t]L' FieldsConverter/new-c.rinu[U:RDoc::AnyMethod[iI"new:ETI"CSV::FieldsConverter::new;TT: privateo:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"@A CSV::FieldsConverter is a data structure for storing the ;TI"=fields converter properties to be passed as a parameter ;TI"Hwhen parsing a new file (e.g. CSV::Parser.new(@io, parser_options));T: @fileI" lib/csv/fields_converter.rb;T:0@omit_headings_from_table_of_contents_below000[I"(options={});T@FI"FieldsConverter;TcRDoc::NormalClass00PK8t]uFieldsConverter/empty%3f-i.rinu[U:RDoc::AnyMethod[iI" empty?:ETI" CSV::FieldsConverter#empty?;TF: privateo:RDoc::Markup::Document: @parts[: @fileI" lib/csv/fields_converter.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI"FieldsConverter;TcRDoc::NormalClass00PK8t]>**"FieldsConverter/add_converter-i.rinu[U:RDoc::AnyMethod[iI"add_converter:ETI"'CSV::FieldsConverter#add_converter;TF: privateo:RDoc::Markup::Document: @parts[: @fileI" lib/csv/fields_converter.rb;T:0@omit_headings_from_table_of_contents_below000[I"(name=nil, &converter);T@ FI"FieldsConverter;TcRDoc::NormalClass00PK8t]@P  'FieldsConverter/builtin_converters-i.rinu[U:RDoc::AnyMethod[iI"builtin_converters:ETI",CSV::FieldsConverter#builtin_converters;TF: privateo:RDoc::Markup::Document: @parts[: @fileI" lib/csv/fields_converter.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI"FieldsConverter;TcRDoc::NormalClass00PK8t] 'b  (FieldsConverter/cdesc-FieldsConverter.rinu[U:RDoc::NormalClass[iI"FieldsConverter:ETI"CSV::FieldsConverter;TI" Object;To:RDoc::Markup::Document: @parts[o;;[o:RDoc::Markup::Paragraph;[I"DNote: Don't use this class directly. This is an internal class.;T: @fileI" lib/csv/fields_converter.rb;T:0@omit_headings_from_table_of_contents_below0; 0; 0[[[[I"Enumerable;To;;[; @; 0I" lib/csv/fields_converter.rb;T[[I" class;T[[: public[[:protected[[: private[[I"new;T@[I" instance;T[[; [[; [[;[ [I"add_converter;T@[I"builtin_converters;T@[I" convert;T@[I" each;T@[I" empty?;T@[I"need_convert?;T@[I"need_static_convert?;T@[[U:RDoc::Context::Section[i0o;;[; 0; 0[I" lib/csv/fields_converter.rb;TI"CSV;TcRDoc::NormalClassPK8t]Kt  FieldsConverter/each-i.rinu[U:RDoc::AnyMethod[iI" each:ETI"CSV::FieldsConverter#each;TF: privateo:RDoc::Markup::Document: @parts[: @fileI" lib/csv/fields_converter.rb;T:0@omit_headings_from_table_of_contents_below000[I" (&block);T@ FI"FieldsConverter;TcRDoc::NormalClass00PK8t]D00FieldsConverter/convert-i.rinu[U:RDoc::AnyMethod[iI" convert:ETI"!CSV::FieldsConverter#convert;TF: privateo:RDoc::Markup::Document: @parts[: @fileI" lib/csv/fields_converter.rb;T:0@omit_headings_from_table_of_contents_below000[I"-(fields, headers, lineno, quoted_fields);T@ FI"FieldsConverter;TcRDoc::NormalClass00PK8t] Du**max_field_size-i.rinu[U:RDoc::AnyMethod[iI"max_field_size:ETI"CSV#max_field_size;TF: privateo:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"9Returns the limit for field size; used for parsing; ;TI"Ksee {Option +max_field_size+}[#class-CSV-label-Option+max_field_size]:;To:RDoc::Markup::Verbatim; [I")CSV.new('').max_field_size # => nil ;T: @format0o; ; [I"Since 3.2.3.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below0I"*csv.max_field_size -> integer or nil ;T0[I"();T@FI"CSV;TcRDoc::NormalClass00PK8t]zaQQ row_sep-i.rinu[U:RDoc::Attr[iI" row_sep:ETI"CSV#row_sep;TI"R;T: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"NThe encoded :row_sep used in parsing and writing. See CSV::new ;TI"for details.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below0F@I"CSV;TcRDoc::NormalClass0PK8t]㺝parser_enumerator-i.rinu[U:RDoc::AnyMethod[iI"parser_enumerator:ETI"CSV#parser_enumerator;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI"CSV;TcRDoc::NormalClass00PK8t]qU< ioctl-i.rinu[U:RDoc::AnyMethod[iI" ioctl:ETI"CSV#ioctl;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I" (*args);T@ FI"CSV;TcRDoc::NormalClass00PK8t]@d#writer_fields_converter-i.rinu[U:RDoc::AnyMethod[iI"writer_fields_converter:ETI" CSV#writer_fields_converter;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI"CSV;TcRDoc::NormalClass00PK8t]0K CCparse_line-c.rinu[U:RDoc::AnyMethod[iI"parse_line:EFI"CSV::parse_line;TT: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"QThis method is a shortcut for converting a single line of a CSV String into ;TI"Pan Array. Note that if +line+ contains multiple rows, anything beyond the ;TI"first row is ignored.;To:RDoc::Markup::BlankLineo; ; [I"DThe +options+ parameter can be anything CSV::new() understands.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"(line, options = Hash.new);T@FI"CSV;TcRDoc::NormalClass00PK8t](!!readlines-c.rinu[U:RDoc::AnyMethod[iI"readlines:EFI"CSV::readlines;TT: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"Alias for CSV::read().;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I" (*args);T@FI"CSV;TcRDoc::NormalClass00PK8t]8(j open-c.rinu[U:RDoc::AnyMethod[iI" open:EFI"CSV::open;TT: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"PThis method opens an IO object, and wraps that with CSV. This is intended ;TI"5as the primary interface for writing a CSV file.;To:RDoc::Markup::BlankLineo; ; [I"KYou must pass a +filename+ and may optionally add a +mode+ for Ruby's ;TI"Jopen(). You may also pass an optional Hash containing any +options+ ;TI"2CSV::new() understands as the final argument.;T@o; ; [ I"RThis method works like Ruby's open() call, in that it will pass a CSV object ;TI"Lto a provided block and close it when the block terminates, or it will ;TI"Rreturn the CSV object when no block is provided. (*Note*: This is different ;TI"Hfrom the Ruby 1.8 CSV library which passed rows to the block. Use ;TI"'CSV::foreach() for that behavior.);T@o; ; [ I"PYou must provide a +mode+ with an embedded Encoding designator unless your ;TI"Rdata is in Encoding::default_external(). CSV will check the Encoding of the ;TI"Qunderlying IO object (set by the +mode+ you pass) to determine how to parse ;TI"Rthe data. You may provide a second Encoding to have the data transcoded as ;TI"Pit is read just as you can with a normal call to IO::open(). For example, ;TI"M"rb:UTF-32BE:UTF-8" would read UTF-32BE data from the file but ;TI"0transcode it to UTF-8 before CSV parses it.;T@o; ; [I"QAn opened CSV object will delegate to many IO methods for convenience. You ;TI"may call:;T@o:RDoc::Markup::List: @type: BULLET: @items[$o:RDoc::Markup::ListItem: @label0; [o; ; [I"binmode();To;;0; [o; ; [I"binmode?();To;;0; [o; ; [I" close();To;;0; [o; ; [I"close_read();To;;0; [o; ; [I"close_write();To;;0; [o; ; [I"closed?();To;;0; [o; ; [I" eof();To;;0; [o; ; [I" eof?();To;;0; [o; ; [I"external_encoding();To;;0; [o; ; [I" fcntl();To;;0; [o; ; [I" fileno();To;;0; [o; ; [I" flock();To;;0; [o; ; [I" flush();To;;0; [o; ; [I" fsync();To;;0; [o; ; [I"internal_encoding();To;;0; [o; ; [I" ioctl();To;;0; [o; ; [I" isatty();To;;0; [o; ; [I" path();To;;0; [o; ; [I" pid();To;;0; [o; ; [I" pos();To;;0; [o; ; [I" pos=();To;;0; [o; ; [I" reopen();To;;0; [o; ; [I" seek();To;;0; [o; ; [I" stat();To;;0; [o; ; [I" sync();To;;0; [o; ; [I" sync=();To;;0; [o; ; [I" tell();To;;0; [o; ; [I" to_i();To;;0; [o; ; [I" to_io();To;;0; [o; ; [I"truncate();To;;0; [o; ; [I" tty?();T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below0I"open( filename, mode = "rb", options = Hash.new ) { |faster_csv| ... } open( filename, options = Hash.new ) { |faster_csv| ... } open( filename, mode = "rb", options = Hash.new ) open( filename, options = Hash.new ) ;TI"csv;T[I" (*args);T@FI"CSV;TcRDoc::NormalClass00PK8t]sDAa"build_header_fields_converter-i.rinu[U:RDoc::AnyMethod[iI""build_header_fields_converter:ETI"&CSV#build_header_fields_converter;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI"CSV;TcRDoc::NormalClass00PK8t]%;"build_parser_fields_converter-i.rinu[U:RDoc::AnyMethod[iI""build_parser_fields_converter:ETI"&CSV#build_parser_fields_converter;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI"CSV;TcRDoc::NormalClass00PK8t] 8ܨ read-i.rinu[U:RDoc::AnyMethod[iI" read:EFI" CSV#read;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I">Slurps the remaining rows and returns an Array of Arrays.;To:RDoc::Markup::BlankLineo; ; [I".The data source must be open for reading.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[[I"readlines;To;; [; @; 0I"();T@FI"CSV;TcRDoc::NormalClass00PK8t]t"MalformedCSVError/line_number-i.rinu[U:RDoc::Attr[iI"line_number:ETI"'CSV::MalformedCSVError#line_number;TI"R;T: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below0F@ I"CSV::MalformedCSVError;TcRDoc::NormalClass0PK8t]Z)  MalformedCSVError/new-c.rinu[U:RDoc::AnyMethod[iI"new:ETI" CSV::MalformedCSVError::new;TT: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"(message, line_number);T@ TI"MalformedCSVError;TcRDoc::NormalClass00PK8t]_Ap,MalformedCSVError/cdesc-MalformedCSVError.rinu[U:RDoc::NormalClass[iI"MalformedCSVError:ETI"CSV::MalformedCSVError;TI"RuntimeError;To:RDoc::Markup::Document: @parts[o;;[o:RDoc::Markup::Paragraph;[I"HThe error thrown when the parser encounters illegal CSV formatting.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below0; 0; 0[[[[[I" class;T[[: public[[:protected[[: private[[I" instance;T[[; [[; [[;[[[U:RDoc::Context::Section[i0o;;[; 0; 0[@I"CSV;TcRDoc::NormalClassPK8t]hMalformedCSVError/lineno-i.rinu[U:RDoc::Attr[iI" lineno:ETI""CSV::MalformedCSVError#lineno;TI"R;T: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below0F@ I"CSV::MalformedCSVError;TcRDoc::NormalClass0PK8t]3Z gets-i.rinu[U:RDoc::AnyMethod[iI" gets:ETI" CSV#gets;TF: publico:RDoc::Markup::Document: @parts[: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI"CSV;TcRDoc::NormalClass0[@FI" shift;FPK8t]RNconverters-i.rinu[U:RDoc::AnyMethod[iI"converters:EFI"CSV#converters;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"RReturns the current list of converters in effect. See CSV::new for details. ;TI"QBuilt-in converters will be returned by name, while others will be returned ;TI" as is.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"CSV;TcRDoc::NormalClass00PK8t]+build_fields_converter-i.rinu[U:RDoc::AnyMethod[iI"build_fields_converter:ETI"CSV#build_fields_converter;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I""(initial_converters, options);T@ FI"CSV;TcRDoc::NormalClass00PK8t]ZRFԅ foreach-c.rinu[U:RDoc::AnyMethod[iI" foreach:EFI"CSV::foreach;TT: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"RThis method is intended as the primary interface for reading CSV files. You ;TI"Ppass a +path+ and any +options+ you wish to set for the read. Each row of ;TI"9file will be passed to the provided +block+ in turn.;To:RDoc::Markup::BlankLineo; ; [ I"RThe +options+ parameter can be anything CSV::new() understands. This method ;TI"Ralso understands an additional :encoding parameter that you can use ;TI"Rto specify the Encoding of the data in the file to be read. You must provide ;TI"Rthis unless your data is in Encoding::default_external(). CSV will use this ;TI"Oto determine how to parse the data. You may provide a second Encoding to ;TI";have the data transcoded as it is read. For example, ;TI"Pencoding: "UTF-32BE:UTF-8" would read UTF-32BE data from the file ;TI"4but transcode it to UTF-8 before CSV parses it.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"'(path, options = Hash.new, &block);T@FI"CSV;TcRDoc::NormalClass00PK8t]UҾm headers-i.rinu[U:RDoc::AnyMethod[iI" headers:EFI"CSV#headers;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"QReturns +nil+ if headers will not be used, +true+ if they will but have not ;TI"Jyet been read, or the actual headers after they have been read. See ;TI"CSV::new for details.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"CSV;TcRDoc::NormalClass00PK8t]qH7BB rewind-i.rinu[U:RDoc::AnyMethod[iI" rewind:EFI"CSV#rewind;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"HRewinds the underlying IO object and resets CSV's lineno() counter.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"CSV;TcRDoc::NormalClass00PK8t]normalize_converters-i.rinu[U:RDoc::AnyMethod[iI"normalize_converters:ETI"CSV#normalize_converters;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"(converters);T@ FI"CSV;TcRDoc::NormalClass00PK8t]  table-c.rinu[U:RDoc::AnyMethod[iI" table:EFI"CSV::table;TT: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"A shortcut for:;To:RDoc::Markup::BlankLineo:RDoc::Markup::Verbatim; [I"0CSV.read( path, { headers: true, ;TI"4 converters: :numeric, ;TI"D header_converters: :symbol }.merge(options) );T: @format0: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"(path, options = Hash.new);T@FI"CSV;TcRDoc::NormalClass00PK8t]Ҭ Table/values_at-i.rinu[U:RDoc::AnyMethod[iI"values_at:EFI"CSV::Table#values_at;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [ I"IThe mixed mode default is to treat a list of indices as row access, ;TI"Ireturning the rows indicated. Anything else is considered columnar ;TI"Laccess. For columnar access, the return set has an Array for each row ;TI"Lwith the values indicated by the headers in each Array. You can force ;TI"5column or row mode using by_col!() or by_row!().;To:RDoc::Markup::BlankLineo; ; [I"*You cannot mix column and row access.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"(*indices_or_headers);T@FI" Table;TcRDoc::NormalClass00PK8t]Y!wTable/dig-i.rinu[U:RDoc::AnyMethod[iI"dig:ETI"CSV::Table#dig;TF: privateo:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"uExtracts the nested value specified by the sequence of +index+ or +header+ objects by calling dig at each step, ;TI"3returning nil if any intermediate step is nil.;T: @fileI"lib/csv/table.rb;T:0@omit_headings_from_table_of_contents_below000[I")(index_or_header, *index_or_headers);T@FI" Table;TcRDoc::NormalClass00PK8t]w=Table/by_row%21-i.rinu[U:RDoc::AnyMethod[iI" by_row!:EFI"CSV::Table#by_row!;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"MSwitches the mode of this table to row mode. All calls to indexing and ;TI"Kiteration methods will work with rows until the mode is changed again.;To:RDoc::Markup::BlankLineo; ; [I"8This method returns the table and is safe to chain.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI" Table;TcRDoc::NormalClass00PK8t]EETable/inspect-i.rinu[U:RDoc::AnyMethod[iI" inspect:EFI"CSV::Table#inspect;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"@Shows the mode and size of this table in a US-ASCII String.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI" Table;TcRDoc::NormalClass00PK8t]U{{Table/to_a-i.rinu[U:RDoc::AnyMethod[iI" to_a:EFI"CSV::Table#to_a;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"NReturns the table as an Array of Arrays. Headers will be the first row, ;TI",then all of the field rows will follow.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI" Table;TcRDoc::NormalClass00PK8t]>FTable/new-c.rinu[U:RDoc::AnyMethod[iI"new:ETI"CSV::Table::new;TT: publico:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [I"IConstruct a new CSV::Table from +array_of_rows+, which are expected ;TI"Lto be CSV::Row objects. All rows are assumed to have the same headers.;To:RDoc::Markup::BlankLineo; ; [I"FA CSV::Table object supports the following Array methods through ;TI"delegation:;T@o:RDoc::Markup::List: @type: BULLET: @items[o:RDoc::Markup::ListItem: @label0; [o; ; [I" empty?();To;;0; [o; ; [I" length();To;;0; [o; ; [I" size();T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"(array_of_rows);T@%FI" Table;TcRDoc::NormalClass00PK8t]GTable/push-i.rinu[U:RDoc::AnyMethod[iI" push:EFI"CSV::Table#push;TF: publico:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [I":write_headers => false.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[[I" to_s;To;; [; @; 0I"(options = Hash.new);T@FI" Table;TcRDoc::NormalClass00PK8t]gHHTable/%5b%5d%3d-i.rinu[U:RDoc::AnyMethod[iI"[]=:EFI"CSV::Table#[]=;TF: publico:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [I"NIn the default mixed mode, this method assigns rows for index access and ;TI"Ncolumns for header access. You can force the index association by first ;TI"$calling by_col!() or by_row!().;To:RDoc::Markup::BlankLineo; ; [I"KRows may be set to an Array of values (which will inherit the table's ;TI"headers()) or a CSV::Row.;T@o; ; [ I"NColumns may be set to a single value, which is copied to each row of the ;TI"Ocolumn, or an Array of values. Arrays of values are assigned to rows top ;TI"Oto bottom in row major order. Excess values are ignored and if the Array ;TI"Ldoes not have a value for each row the extra rows will receive a +nil+.;T@o; ; [I"MAssigning to an existing column or row clobbers the data. Assigning to ;TI":col_sep used in parsing and writing. See CSV::new ;TI"for details.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below0F@I"CSV;TcRDoc::NormalClass0PK9t]H[#mm %3c%3c-i.rinu[U:RDoc::AnyMethod[iI"<<:ETI" CSV#<<;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"NThe primary write method for wrapped Strings and IOs, +row+ (an Array or ;TI"LCSV::Row) is converted to CSV and appended to the data source. When a ;TI"LCSV::Row is passed, only the row's fields() are appended to the output.;To:RDoc::Markup::BlankLineo; ; [I".The data source must be open for writing.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[[I" add_row;To;; [; @; 0[I" puts;To;; [; @; 0I" (row);T@FI"CSV;TcRDoc::NormalClass00PK9t]1wRraw_encoding-i.rinu[U:RDoc::AnyMethod[iI"raw_encoding:EFI"CSV#raw_encoding;TF: privateo:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"LReturns the encoding of the internal IO object or the +default+ if the ;TI"#encoding cannot be determined.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"%(default = Encoding::ASCII_8BIT);T@FI"CSV;TcRDoc::NormalClass00PK9t]C@|AAliberal_parsing%3f-i.rinu[U:RDoc::AnyMethod[iI"liberal_parsing?:ETI"CSV#liberal_parsing?;TF: privateo:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"aReturns the value that determines whether illegal input is to be handled; used for parsing; ;TI"Msee {Option +liberal_parsing+}[#class-CSV-label-Option+liberal_parsing]:;To:RDoc::Markup::Verbatim; [I",CSV.new('').liberal_parsing? # => false;T: @format0: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below0I"+csv.liberal_parsing? -> true or false ;T0[I"();T@FI"CSV;TcRDoc::NormalClass00PK9t]Au>header_fields_converter-i.rinu[U:RDoc::AnyMethod[iI"header_fields_converter:ETI" CSV#header_fields_converter;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI"CSV;TcRDoc::NormalClass00PK9t]MFvv convert-i.rinu[U:RDoc::AnyMethod[iI" convert:EFI"CSV#convert;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"QYou can use this method to install a CSV::Converters built-in, or provide a ;TI",block that handles a custom conversion.;To:RDoc::Markup::BlankLineo; ; [ I"QIf you provide a block that takes one argument, it will be passed the field ;TI"Qand is expected to return the converted value or the field itself. If your ;TI"Pblock takes two arguments, it will also be passed a CSV::FieldInfo Struct, ;TI"Kcontaining details about the field. Again, the block should return a ;TI")converted field or the field itself.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below0I"Qconvert( name ) convert { |field| ... } convert { |field, field_info| ... } ;T0[I"(name = nil, &converter);T@FI"CSV;TcRDoc::NormalClass00PK9t])ԥVVforce_quotes%3f-i.rinu[U:RDoc::AnyMethod[iI"force_quotes?:EFI"CSV#force_quotes?;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"NReturns +true+ if all output fields are quoted. See CSV::new for details.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"CSV;TcRDoc::NormalClass00PK9t]>generate_line-c.rinu[U:RDoc::AnyMethod[iI"generate_line:EFI"CSV::generate_line;TT: publico:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [I"NThis method is a shortcut for converting a single row (Array) into a CSV ;TI" String.;To:RDoc::Markup::BlankLineo; ; [ I"RThe +options+ parameter can be anything CSV::new() understands. This method ;TI"Lunderstands an additional :encoding parameter to set the base ;TI"PEncoding for the output. This method will try to guess your Encoding from ;TI"Nthe first non-+nil+ field in +row+, if possible, but you may need to use ;TI"%this parameter as a backup plan.;T@o; ; [I"QThe :row_sep +option+ defaults to $INPUT_RECORD_SEPARATOR ;TI",($/) when calling this method.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"(row, options = Hash.new);T@FI"CSV;TcRDoc::NormalClass00PK9t]i"DeleteSuffix/cdesc-DeleteSuffix.rinu[U:RDoc::NormalModule[iI"DeleteSuffix:ETI"CSV::DeleteSuffix;T0o:RDoc::Markup::Document: @parts[o;;[: @fileI"lib/csv/delete_suffix.rb;T:0@omit_headings_from_table_of_contents_below0; 0; 0[[[[[I" class;T[[: public[[:protected[[: private[[I" instance;T[[; [[; [[; [[I"delete_suffix;TI"lib/csv/delete_suffix.rb;T[[U:RDoc::Context::Section[i0o;;[; 0; 0[I"lib/csv/delete_suffix.rb;TI"CSV;TcRDoc::NormalClassPK9t]ZurDeleteSuffix/delete_suffix-i.rinu[U:RDoc::AnyMethod[iI"delete_suffix:ETI"$CSV::DeleteSuffix#delete_suffix;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/csv/delete_suffix.rb;T:0@omit_headings_from_table_of_contents_below000[I" (suffix);T@ FI"DeleteSuffix;TcRDoc::NormalModule00PK9t]2ttunconverted_fields%3f-i.rinu[U:RDoc::AnyMethod[iI"unconverted_fields?:EFI"CSV#unconverted_fields?;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"MReturns +true+ if unconverted_fields() to parsed results. See CSV::new ;TI"for details.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"CSV;TcRDoc::NormalClass00PK]4Lwwescape_re-i.rinu[U:RDoc::AnyMethod[iI"escape_re:EFI"CSV#escape_re;TF: privateo:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [ I"RThis method is an encoding safe version of Regexp::escape(). It will escape ;TI"Qany characters that would change the meaning of a regular expression in the ;TI"Qencoding of +str+. Regular expression characters that cannot be transcoded ;TI"Qto the target encoding will be skipped and no escaping will be performed if ;TI"&a backslash cannot be transcoded.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I" (str);T@FI"CSV;TcRDoc::NormalClass00PK]/|yyencode_re-i.rinu[U:RDoc::AnyMethod[iI"encode_re:EFI"CSV#encode_re;TF: privateo:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"NBuilds a regular expression in @encoding. All +chunks+ will be ;TI"!transcoded to that encoding.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"(*chunks);T@FI"CSV;TcRDoc::NormalClass00PK] init_comments-i.rinu[U:RDoc::AnyMethod[iI"init_comments:EFI"CSV#init_comments;TF: privateo:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [I"FStores the pattern of comments to skip from the provided options.;To:RDoc::Markup::BlankLineo; ; [I"IThe pattern must respond to +.match+, else ArgumentError is raised. ;TI"'Strings are converted to a Regexp.;T@o; ; [I"See also CSV.new;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"(options);T@FI"CSV;TcRDoc::NormalClass00PK]qooencode_str-i.rinu[U:RDoc::AnyMethod[iI"encode_str:EFI"CSV#encode_str;TF: privateo:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"PBuilds a String in @encoding. All +chunks+ will be transcoded to ;TI"that encoding.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"(*chunks);T@FI"CSV;TcRDoc::NormalClass00PK])3-add_converter-i.rinu[U:RDoc::AnyMethod[iI"add_converter:EFI"CSV#add_converter;TF: privateo:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"RThe actual work method for adding converters, used by both CSV.convert() and ;TI"CSV.header_convert().;To:RDoc::Markup::BlankLineo; ; [I"OThis method requires the +var_name+ of the instance variable to place the ;TI"Lconverters in, the +const+ Hash to lookup named converters in, and the ;TI"Mnormal parameters of the CSV.convert() and CSV.header_convert() methods.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I".(var_name, const, name = nil, &converter);T@FI"CSV;TcRDoc::NormalClass00PK]i  parse_headers-i.rinu[U:RDoc::AnyMethod[iI"parse_headers:EFI"CSV#parse_headers;TF: privateo:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [ I"PThis method is used to turn a finished +row+ into a CSV::Row. Header rows ;TI"Mare also dealt with here, either by returning a CSV::Row with identical ;TI"Pheaders and fields (save that the fields do not go through the converters) ;TI"Nor by reading past them to return a field row. Headers are also saved in ;TI".@headers for use in future rows.;To:RDoc::Markup::BlankLineo; ; [I"PWhen +nil+, +row+ is assumed to be a header row not based on an actual row ;TI"of the stream.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"(row = nil);T@FI"CSV;TcRDoc::NormalClass00PK]IDinit_separators-i.rinu[U:RDoc::AnyMethod[iI"init_separators:EFI"CSV#init_separators;TF: privateo:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [I"3Stores the indicated separators for later use.;To:RDoc::Markup::BlankLineo; ; [ I"RIf auto-discovery was requested for @row_sep, this method will read ;TI"Pahead in the @io and try to find one. +ARGF+, +STDIN+, +STDOUT+, ;TI"A+STDERR+ and any stream open for output only with a default ;TI"I@row_sep of $INPUT_RECORD_SEPARATOR ($/).;T@o; ; [I"HThis method also establishes the quoting rules used for CSV output.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"(options);T@FI"CSV;TcRDoc::NormalClass00PK]K$XXinit_parsers-i.rinu[U:RDoc::AnyMethod[iI"init_parsers:EFI"CSV#init_parsers;TF: privateo:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"JPre-compiles parsers and stores them by name for access during reads.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"(options);T@FI"CSV;TcRDoc::NormalClass00PK]|Hinit_converters-i.rinu[U:RDoc::AnyMethod[iI"init_converters:EFI"CSV#init_converters;TF: privateo:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [I"8Loads any converters requested during construction.;To:RDoc::Markup::BlankLineo; ; [I"PIf +field_name+ is set :converters (the default) field converters ;TI"Rare set. When +field_name+ is :header_converters header converters ;TI"are added instead.;T@o; ; [I"AThe :unconverted_fields option is also actived for ;TI".:converters calls, if requested.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"((options, field_name = :converters);T@FI"CSV;TcRDoc::NormalClass00PK]aDadd_unconverted_fields-i.rinu[U:RDoc::AnyMethod[iI"add_unconverted_fields:EFI"CSV#add_unconverted_fields;TF: privateo:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"OThis method injects an instance variable unconverted_fields into ;TI"N+row+ and an accessor method for +row+ called unconverted_fields(). The ;TI"1variable is set to the contents of +fields+.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"(row, fields);T@FI"CSV;TcRDoc::NormalClass00PK]IjUUinit_headers-i.rinu[U:RDoc::AnyMethod[iI"init_headers:EFI"CSV#init_headers;TF: privateo:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"GStores header row settings and loads header converters, if needed.;T: @fileI"lib/csv.rb;T:0@omit_headings_from_table_of_contents_below000[I"(options);T@FI"CSV;TcRDoc::NormalClass00PK7t]j instance-c.rinu[PK7t]ΊD eof-i.rinu[PK7t]/RWYY'write_headers%3f-i.rinu[PK7t]9! readline-i.rinu[PK7t]_ BBheader_row%3f-i.rinu[PK7t]:sbinmode%3f-i.rinu[PK7t] g  flock-i.rinu[PK7t]M?aa  inspect-i.rinu[PK7t]nFknn D shift-i.rinu[PK7t]% parser-i.rinu[PK7t]!generate_lines-c.rinu[PK7t]@`Parser/ignore_broken_line-i.rinu[PK7t]E pHH.9Parser/validate_strip_and_col_sep_options-i.rinu[PK7t]YcParser/prepare_line-i.rinu[PK7t]e Parser/prepare_unquoted-i.rinu[PK7t]:Mr/kParser/InvalidEncoding/cdesc-InvalidEncoding.rinu[PK7t]g Parser/parse_no_quote-i.rinu[PK7t]L!Parser/header_row%3f-i.rinu[PK7t]@V"Parser/column_separator-i.rinu[PK7t]4h#Parser/strip_value-i.rinu[PK7t]|0$Parser/parse_column_end-i.rinu[PK7t]HX0&Parser/may_quoted%3f-i.rinu[PK7t]%XKo'Parser/skip_lines-i.rinu[PK7t](Parser/new-c.rinu[PK7t])Parser/return_headers%3f-i.rinu[PK7t]#KM(+Parser/build_scanner-i.rinu[PK7t]^쬽!k,Parser/resolve_row_separator-i.rinu[PK7t]<.)-Parser/InputsScanner/trace-i.rinu[PK7t]D  $#/Parser/InputsScanner/keep_start-i.rinu[PK7t]ők..0Parser/InputsScanner/new-c.rinu[PK7t]%Z"1Parser/InputsScanner/keep_end-i.rinu[PK7t]ՄT3Parser/InputsScanner/check-i.rinu[PK7t]X"4Parser/InputsScanner/rest-i.rinu[PK7t]/Ń#5Parser/InputsScanner/keep_back-i.rinu[PK7t]հ Q7Parser/InputsScanner/eos%3f-i.rinu[PK7t]8Parser/InputsScanner/scan-i.rinu[PK7t]ⴹ#9Parser/InputsScanner/keep_drop-i.rinu[PK7t] kk+M;Parser/InputsScanner/cdesc-InputsScanner.rinu[PK7t]G  "AParser/InputsScanner/scan_all-i.rinu[PK7t]xC*rBParser/InputsScanner/adjust_last_keep-i.rinu[PK7t]7](  $CParser/InputsScanner/read_chunk-i.rinu[PK7t]z,!!#@EParser/InputsScanner/each_line-i.rinu[PK7t] FParser/parse_row_end-i.rinu[PK7t]żȄGParser/prepare_skip_lines-i.rinu[PK7t],IIParser/parse_column_value-i.rinu[PK7t]<#JParser/prepare_quote_character-i.rinu[PK7t]M9KParser/adjust_headers-i.rinu[PK7t]]|tXMParser/skip_line%3f-i.rinu[PK7t]\?}iNParser/prepare_separators-i.rinu[PK7t]?OParser/parse_headers-i.rinu[PK7t]{KK0QParser/prepare-i.rinu[PK7t]ì#RParser/start_row-i.rinu[PK7t]  SParser/validate_field_size-i.rinu[PK7t]3,OUParser/use_headers%3f-i.rinu[PK7t]9x%VParser/parse_quoted_column_value-i.rinu[PK7t]/0WParser/line-i.rinu[PK7t]&[O YParser/max_field_size-i.rinu[PK7t]>fZParser/prepare_strip-i.rinu[PK7t]o'[Parser/parse_unquoted_column_value-i.rinu[PK7t]y"]Parser/quote_character-i.rinu[PK7t]6Y(_^Parser/prepare_variable-i.rinu[PK7t]$[_Parser/last_line-i.rinu[PK7t]w,' ' `Parser/cdesc-Parser.rinu[PK7t]'OjParser/prepare_backslash-i.rinu[PK7t]KkParser/headers-i.rinu[PK7t]/lParser/UnexpectedError/cdesc-UnexpectedError.rinu[PK7t]ld 5oParser/prepare_parser-i.rinu[PK7t]Ny{pParser/emit_row-i.rinu[PK7t] qParser/parse_quotable_loose-i.rinu[PK7t]PE00sParser/skip_blanks%3f-i.rinu[PK7t]KǔrtParser/field_size_limit-i.rinu[PK7t]rAuParser/lineno-i.rinu[PK7t]n~$vParser/row_separator-i.rinu[PK7t]N  "/xParser/add_unconverted_fields-i.rinu[PK7t]zParser/skip_needless_lines-i.rinu[PK7t]u{Parser/liberal_parsing%3f-i.rinu[PK7t]jA%Z .}Parser/detect_row_separator-i.rinu[PK7t]7~Parser/prepare_header-i.rinu[PK8t]3Parser/Scanner/keep_start-i.rinu[PK8t]hx&Parser/Scanner/new-c.rinu[PK8t]!kkcParser/Scanner/cdesc-Scanner.rinu[PK8t]Parser/Scanner/keep_end-i.rinu[PK8t]HcParser/Scanner/keep_back-i.rinu[PK8t]0Parser/Scanner/keep_drop-i.rinu[PK8t]şTParser/Scanner/each_line-i.rinu[PK8t]'^!UParser/unconverted_fields%3f-i.rinu[PK8t]<!Parser/parse_quotable_robust-i.rinu[PK8t]r Parser/parse-i.rinu[PK8t]%PKParser/prepare_quoted-i.rinu[PK8t] writer-i.rinu[PK8t] header_converters-i.rinu[PK8t];P٨ read-c.rinu[PK8t]Zɡ encoding-i.rinu[PK8t]dparser_options-i.rinu[PK8t]Z::skip_lines-i.rinu[PK8t]%F-- new-c.rinu[PK8t]TYqqoreturn_headers%3f-i.rinu[PK8t]{H &parse-c.rinu[PK8t]U\ Iputs-i.rinu[PK8t]^] geof%3f-i.rinu[PK8t] to_i-i.rinu[PK8t]v.'"build_writer_fields_converter-i.rinu[PK8t]bWriter/prepare_format-i.rinu[PK8t]""'BWriter/prepare_force_quotes_fields-i.rinu[PK8t]܁Writer/cdesc-Writer.rinu[PK8t]BWriter/new-c.rinu[PK8t]DKWriter/prepare_output-i.rinu[PK8t]IWriter/quote_field-i.rinu[PK8t]N<Writer/prepare-i.rinu[PK8t]TWriter/headers-i.rinu[PK8t]1.Writer/quote-i.rinu[PK8t]Pϴ--aWriter/rewind-i.rinu[PK8t]%Writer/lineno-i.rinu[PK8t](Writer/%3c%3c-i.rinu[PK8t]Writer/prepare_header-i.rinu[PK8t]RnvLwriter_options-i.rinu[PK8t]9/)0 yfilter-c.rinu[PK8t]NFII Vgenerate-c.rinu[PK8t]MatchP/cdesc-MatchP.rinu[PK8t]GMatchP/match%3f-i.rinu[PK8t]UALZZ quote_char-i.rinu[PK8t]ӻDyyconvert_fields-i.rinu[PK8t]ZJ" aline-i.rinu[PK8t]AG 0path-i.rinu[PK8t]3L++ ?cdesc-CSV.rinu[PK8t]v  WRow/each_pair-i.rinu[PK8t]|hnRow/values_at-i.rinu[PK8t]pI䠤Row/has_key%3f-i.rinu[PK8t]TRow/field-i.rinu[PK8t]©ݖbb Row/cdesc-Row.rinu[PK8t]"l %Row/dig-i.rinu[PK8t]:55m)Row/header_row%3f-i.rinu[PK8t]cDD*Row/inspect-i.rinu[PK8t]Fl,Row/key%3f-i.rinu[PK8t]b܏-Row/deconstruct-i.rinu[PK8t]B~/Row/fetch-i.rinu[PK8t]U\ 2Row/new-c.rinu[PK8t].c(( 6Row/row-i.rinu[PK8t]D8Row/include%3f-i.rinu[PK8t]^ e9Row/push-i.rinu[PK8t]uŵ;Row/deconstruct_keys-i.rinu[PK8t]5=Row/%5b%5d-i.rinu[PK8t]'`4>Row/fields-i.rinu[PK8t]d   ARow/to_s-i.rinu[PK8t] V5++BRow/delete-i.rinu[PK8t]懊`ERow/index-i.rinu[PK8t]#\kGRow/delete_if-i.rinu[PK8t]i[[IRow/field%3f-i.rinu[PK8t]7||KRow/to_hash-i.rinu[PK8t]DJMRow/to_csv-i.rinu[PK8t]SJsslORow/header%3f-i.rinu[PK8t] !QRow/%5b%5d%3d-i.rinu[PK8t]4C\&&SRow/headers-i.rinu[PK8t]XXHURow/member%3f-i.rinu[PK8t]! VRow/each-i.rinu[PK8t]ǡeeXRow/initialize_copy-i.rinu[PK8t]ue22[ZRow/field_row%3f-i.rinu[PK8t]QPpp [Row/to_h-i.rinu[PK8t]D_Row/%3c%3c-i.rinu[PK8t]eebRow/%3d%3d-i.rinu[PK8t]~ $dto_io-i.rinu[PK8t] 6eadd_row-i.rinu[PK8t]=ʌ$$+]fFieldsConverter/need_static_convert%3f-i.rinu[PK8t]p$gFieldsConverter/need_convert%3f-i.rinu[PK8t]L' FiFieldsConverter/new-c.rinu[PK8t]ukFieldsConverter/empty%3f-i.rinu[PK8t]>**"lFieldsConverter/add_converter-i.rinu[PK8t]@P  'VnFieldsConverter/builtin_converters-i.rinu[PK8t] 'b  (oFieldsConverter/cdesc-FieldsConverter.rinu[PK8t]Kt  2sFieldsConverter/each-i.rinu[PK8t]D00tFieldsConverter/convert-i.rinu[PK8t] Du**vmax_field_size-i.rinu[PK8t]zaQQ nxrow_sep-i.rinu[PK8t]㺝yparser_enumerator-i.rinu[PK8t]qU< 1{ioctl-i.rinu[PK8t]@d#H|writer_fields_converter-i.rinu[PK8t]0K CC}parse_line-c.rinu[PK8t](!!readlines-c.rinu[PK8t]8(j qopen-c.rinu[PK8t]sDAa"}build_header_fields_converter-i.rinu[PK8t]%;"׎build_parser_fields_converter-i.rinu[PK8t] 8ܨ 1read-i.rinu[PK8t]t"MalformedCSVError/line_number-i.rinu[PK8t]Z)  bMalformedCSVError/new-c.rinu[PK8t]_Ap,MalformedCSVError/cdesc-MalformedCSVError.rinu[PK8t]h MalformedCSVError/lineno-i.rinu[PK8t]3Z Mgets-i.rinu[PK8t]RNkconverters-i.rinu[PK8t]+^build_fields_converter-i.rinu[PK8t]ZRFԅ foreach-c.rinu[PK8t]UҾm headers-i.rinu[PK8t]qH7BB prewind-i.rinu[PK8t]normalize_converters-i.rinu[PK8t]  6table-c.rinu[PK8t]Ҭ Table/values_at-i.rinu[PK8t]Y!wTable/dig-i.rinu[PK8t]w=Table/by_row%21-i.rinu[PK8t]EETable/inspect-i.rinu[PK8t]U{{qTable/to_a-i.rinu[PK8t]>F+Table/new-c.rinu[PK8t]G9Table/push-i.rinu[PK8t]U[[\Table/%5b%5d-i.rinu[PK8t]i|&&Table/cdesc-Table.rinu[PK8t]-qbTable/by_col_or_row%21-i.rinu[PK8t]q)\Table/by_col%21-i.rinu[PK8t]Table/to_s-i.rinu[PK8t]OTable/delete-i.rinu[PK8t]ᰖTable/delete_if-i.rinu[PK8t]*BBTable/to_csv-i.rinu[PK8t]gHH|Table/%5b%5d%3d-i.rinu[PK9t]dt(Table/by_col_or_row-i.rinu[PK9t]KGTable/headers-i.rinu[PK9t]0xTable/by_col-i.rinu[PK9t]އFFTable/each-i.rinu[PK9t] N00|Table/mode-i.rinu[PK9t]BꑾTable/by_row-i.rinu[PK9t]3NJTable/%3c%3c-i.rinu[PK9t]00=Table/table-i.rinu[PK9t]5BBTable/%3d%3d-i.rinu[PK9t]]M0readlines-i.rinu[PK9t]  \determine_encoding-i.rinu[PK9t]5֠32InputRecordSeparator/cdesc-InputRecordSeparator.rinu[PK9t]ف InputRecordSeparator/value-c.rinu[PK9t]!@ rstat-i.rinu[PK9t]aaskip_blanks%3f-i.rinu[PK9t] `3AA*header_convert-i.rinu[PK9t]Z$ each-i.rinu[PK9t](parser_fields_converter-i.rinu[PK9t]}_$CCfield_size_limit-i.rinu[PK9t]dcVrr alineno-i.rinu[PK9t]BQQ col_sep-i.rinu[PK9t]H[#mm %3c%3c-i.rinu[PK9t]1wRCraw_encoding-i.rinu[PK9t]C@|AAliberal_parsing%3f-i.rinu[PK9t]Au>header_fields_converter-i.rinu[PK9t]MFvv convert-i.rinu[PK9t])ԥVVforce_quotes%3f-i.rinu[PK9t]>6generate_line-c.rinu[PK9t]i" DeleteSuffix/cdesc-DeleteSuffix.rinu[PK9t]Zur5DeleteSuffix/delete_suffix-i.rinu[PK9t]2ttunconverted_fields%3f-i.rinu[PK]4LwwVescape_re-i.rinu[PK]/|yy encode_re-i.rinu[PK] init_comments-i.rinu[PK]qooencode_str-i.rinu[PK])3-add_converter-i.rinu[PK]i  parse_headers-i.rinu[PK]ID init_separators-i.rinu[PK]K$XX6#init_parsers-i.rinu[PK]|H$init_converters-i.rinu[PK]aD'add_unconverted_fields-i.rinu[PK]IjUU*init_headers-i.rinu[PK}T+