# Table of Contents - csv: Ruby Standard Library Documentation

## Pages

- io
- col_sep
  - Option `col_sep`
- quote_char
  - Option `quote_char`
- row_sep
  - Option `row_sep`
- force_quotes
  - Option `force_quotes`
- quote_empty
  - Option `quote_empty`
- write_converters
  - Option `write_converters`
- write_empty_value
  - Option `write_empty_value`
- write_headers
  - Option `write_headers`
- write_nil_value
  - Option `write_nil_value`
- converters
  - Option `converters`
- empty_value
  - Option `empty_value`
- field_size_limit
  - Option `field_size_limit`
- header_converters
  - Option `header_converters`
- headers
  - Option `headers`
- liberal_parsing
  - Option `liberal_parsing`
- nil_value
  - Option `nil_value`
- return_headers
  - Option `return_headers`
- skip_blanks
  - Option `skip_blanks`
- skip_lines
  - Option `skip_lines`
- strip
  - Option `strip`
- unconverted_fields
  - Option `unconverted_fields`
- filtering
  - Recipes for Filtering CSV
  - Contents
  - Source and Output Formats
  - Filtering String to String
  - Recipe: Filter String to String parsing Headers
  - Recipe: Filter String to String parsing and writing Headers
  - Recipe: Filter String to String Without Headers
  - Filtering String to IO Stream
  - Recipe: Filter String to IO Stream parsing Headers
  - Recipe: Filter String to IO Stream parsing and writing Headers
  - Recipe: Filter String to IO Stream Without Headers
  - Filtering IO Stream to String
  - Recipe: Filter IO Stream to String parsing Headers
  - Recipe: Filter IO Stream to String parsing and writing Headers
  - Recipe: Filter IO Stream to String Without Headers
  - Filtering IO Stream to IO Stream
  - Recipe: Filter IO Stream to IO Stream parsing Headers
  - Recipe: Filter IO Stream to IO Stream parsing and writing Headers
  - Recipe: Filter IO Stream to IO Stream Without Headers
- generating
  - Recipes for Generating CSV
  - Contents
  - Output Formats
  - Generating to a String
  - Recipe: Generate to String with Headers
  - Recipe: Generate to String Without Headers
  - Generating to a File
  - Recipe: Generate to File with Headers
  - Recipe: Generate to File Without Headers
  - Generating to an IO Stream
  - Recipe: Generate to IO Stream with Headers
  - Recipe: Generate to IO Stream Without Headers
  - Converting Fields
  - Recipe: Filter Generated Field Strings
  - Recipe: Specify Multiple Write Converters
  - RFC 4180 Compliance
  - Row Separator
  - Recipe: Generate Compliant Row Separator
  - Recipe: Generate Non-Compliant Row Separator
  - Column Separator
  - Recipe: Generate Compliant Column Separator
  - Recipe: Generate Non-Compliant Column Separator
  - Quotes
  - Recipe: Quote All Fields
  - Recipe: Quote Empty Fields
  - Recipe: Generate Compliant Quote Character
  - Recipe: Generate Non-Compliant Quote Character
- parsing
  - Recipes for Parsing CSV
  - Contents
  - Source Formats
  - Parsing from a String
  - Recipe: Parse from String with Headers
  - Recipe: Parse from String Without Headers
  - Parsing from a File
  - Recipe: Parse from File with Headers
  - Recipe: Parse from File Without Headers
  - Parsing from an IO Stream
  - Recipe: Parse from IO Stream with Headers
  - Recipe: Parse from IO Stream Without Headers
  - RFC 4180 Compliance
  - Row Separator
  - Recipe: Handle Compliant Row Separator
  - Recipe: Handle Non-Compliant Row Separator
  - Column Separator
  - Recipe: Handle Compliant Column Separator
  - Recipe: Handle Non-Compliant Column Separator
  - Quote Character
  - Recipe: Handle Compliant Quote Character
  - Recipe: Handle Non-Compliant Quote Character
  - Recipe: Allow Liberal Parsing
  - Special Handling
  - Special Line Handling
  - Recipe: Ignore Blank Lines
  - Recipe: Ignore Selected Lines
  - Special Field Handling
  - Recipe: Strip Fields
  - Recipe: Handle Null Fields
  - Recipe: Handle Empty Fields
  - Converting Fields
  - Converting Fields to Objects
  - Recipe: Convert Fields to Integers
  - Recipe: Convert Fields to Floats
  - Recipe: Convert Fields to Numerics
  - Recipe: Convert Fields to Dates
  - Recipe: Convert Fields to DateTimes
  - Recipe: Convert Fields to Times
  - Recipe: Convert Assorted Fields to Objects
  - Recipe: Convert Fields to Other Objects
  - Recipe: Filter Field Strings
  - Recipe: Register Field Converters
  - Using Multiple Field Converters
  - Recipe: Specify Multiple Field Converters in Option `:converters`
  - Recipe: Specify Multiple Field Converters in a Custom Converter List
  - Converting Headers
  - Recipe: Convert Headers to Lowercase
  - Recipe: Convert Headers to Symbols
  - Recipe: Filter Header Strings
  - Recipe: Register Header Converters
  - Using Multiple Header Converters
  - Recipe: Specify Multiple Header Converters in Option :header_converters
  - Recipe: Specify Multiple Header Converters in a Custom Header Converter List
  - Diagnostics
  - Recipe: Capture Unconverted Fields
  - Recipe: Capture Field Info
- recipes
  - Recipes for CSV

## Classes and Modules

- Array
- CSV
  - CSV
  - CSV Data
  - Class CSV
  - Keeping It Simple
  - Simple Parsing
  - Parsing a String
  - Parsing Via a File Path
  - Parsing from an Open IO Stream
  - Simple Generating
  - “Filtering” CSV
  - CSV Objects
  - Instance Methods
  - Delegated Methods
  - Options
  - Options for Parsing
  - Option `row_sep`
  - Option `col_sep`
  - Option `quote_char`
  - Option `field_size_limit`
  - Option `converters`
  - Option `unconverted_fields`
  - Option `headers`
  - Option `return_headers`
  - Option `header_converters`
  - Option `skip_blanks`
  - Option `skip_lines`
  - Option `strip`
  - Option `liberal_parsing`
  - Option `nil_value`
  - Option `empty_value`
  - Options for Generating
  - Option `row_sep`
  - Option `col_sep`
  - Option `quote_char`
  - Option `write_headers`
  - Option `force_quotes`
  - Option `quote_empty`
  - Option `write_converters`
  - Option `write_nil_value`
  - Option `write_empty_value`
  - CSV with Headers
  - Converters
  - Specifying Converters
  - Converter Procs
  - Stored Converters
  - Converter Lists
  - Field Converters
  - Built-In Field Converters
  - Custom Field Converters
  - Header Converters
  - Built-In Header Converters
  - Custom Header Converters
  - Write Converters
  - Character Encodings (M17n or Multilingualization)
- CSV::FieldsConverter
- CSV::InputRecordSeparator
- CSV::InvalidEncodingError
- CSV::MalformedCSVError
- CSV::Parser
- CSV::Parser::InputsScanner
- CSV::Parser::InvalidEncoding
- CSV::Parser::Scanner
- CSV::Parser::UnexpectedError
- CSV::Row
  - CSV::Row
  - Instance Methods
  - Creating a CSV::Row Instance
  - Headers
  - Accessing Fields
- CSV::TSV
- CSV::Table
  - CSV::Table
  - Instance Methods
  - Creating a CSV::Table Instance
  - Headers
  - Access Modes
  - Row Mode
  - Column Mode
  - Mixed Mode
- CSV::Writer
- Object
- String

## Methods

- ::create_stringio — CSV
- ::filter — CSV
- ::foreach — CSV
- ::generate — CSV
- ::generate_line — CSV
- ::generate_lines — CSV
- ::instance — CSV
- ::may_enable_bom_detection_automatically — CSV
- ::new — CSV
- ::new — CSV::MalformedCSVError
- ::new — CSV::InvalidEncodingError
- ::new — CSV::TSV
- ::new — CSV::FieldsConverter
- ::new — CSV::Parser
- ::new — CSV::Parser::Scanner
- ::new — CSV::Parser::InputsScanner
- ::new — CSV::Row
- ::new — CSV::Table
- ::new — CSV::Writer
- ::open — CSV
- ::parse — CSV
- ::parse_line — CSV
- ::read — CSV
- ::readlines — CSV
- ::table — CSV
- ::value — CSV::InputRecordSeparator
- #<< — CSV
- #<< — CSV::Row
- #<< — CSV::Table
- #<< — CSV::Writer
- #== — CSV::Row
- #== — CSV::Table
- #CSV — Object
- #[] — CSV::Row
- #[] — CSV::Table
- #[]= — CSV::Row
- #[]= — CSV::Table
- #add_converter — CSV::FieldsConverter
- #add_row — CSV
- #add_unconverted_fields — CSV::Parser
- #adjust_headers — CSV::Parser
- #adjust_last_keep — CSV::Parser::InputsScanner
- #binmode? — CSV
- #build_fields_converter — CSV
- #build_header_fields_converter — CSV
- #build_parser_fields_converter — CSV
- #build_scanner — CSV::Parser
- #build_writer_fields_converter — CSV
- #builtin_converters — CSV::FieldsConverter
- #by_col — CSV::Table
- #by_col! — CSV::Table
- #by_col_or_row — CSV::Table
- #by_col_or_row! — CSV::Table
- #by_row — CSV::Table
- #by_row! — CSV::Table
- #check — CSV::Parser::InputsScanner
- #col_sep — CSV
- #column_separator — CSV::Parser
- #convert — CSV
- #convert — CSV::FieldsConverter
- #convert_fields — CSV
- #converters — CSV
- #deconstruct — CSV::Row
- #deconstruct_keys — CSV::Row
- #delete — CSV::Row
- #delete — CSV::Table
- #delete_if — CSV::Row
- #delete_if — CSV::Table
- #detect_row_separator — CSV::Parser
- #determine_encoding — CSV
- #dig — CSV::Row
- #dig — CSV::Table
- #each — CSV
- #each — CSV::FieldsConverter
- #each — CSV::Row
- #each — CSV::Table
- #each_line — CSV::Parser::Scanner
- #each_line — CSV::Parser::InputsScanner
- #each_pair — CSV::Row
- #emit_row — CSV::Parser
- #empty? — CSV::FieldsConverter
- #eof — CSV
- #eof? — CSV
- #eos? — CSV::Parser::InputsScanner
- #fetch — CSV::Row
- #field — CSV::Row
- #field? — CSV::Row
- #field_row? — CSV::Row
- #field_size_limit — CSV
- #field_size_limit — CSV::Parser
- #fields — CSV::Row
- #flock — CSV
- #force_quotes? — CSV
- #gets — CSV
- #has_key? — CSV::Row
- #header? — CSV::Row
- #header_convert — CSV
- #header_converters — CSV
- #header_fields_converter — CSV
- #header_row? — CSV
- #header_row? — CSV::Parser
- #header_row? — CSV::Row
- #headers — CSV
- #headers — CSV::Parser
- #headers — CSV::Row
- #headers — CSV::Table
- #ignore_broken_line — CSV::Parser
- #include? — CSV::Row
- #index — CSV::Row
- #initialize_copy — CSV::Row
- #inspect — CSV
- #inspect — CSV::Row
- #inspect — CSV::Table
- #ioctl — CSV
- #keep_back — CSV::Parser::Scanner
- #keep_back — CSV::Parser::InputsScanner
- #keep_drop — CSV::Parser::Scanner
- #keep_drop — CSV::Parser::InputsScanner
- #keep_end — CSV::Parser::Scanner
- #keep_end — CSV::Parser::InputsScanner
- #keep_start — CSV::Parser::Scanner
- #keep_start — CSV::Parser::InputsScanner
- #key? — CSV::Row
- #last_line — CSV::Parser
- #liberal_parsing? — CSV
- #liberal_parsing? — CSV::Parser
- #line — CSV
- #line — CSV::Parser
- #lineno — CSV
- #lineno — CSV::Parser
- #max_field_size — CSV
- #max_field_size — CSV::Parser
- #may_quoted? — CSV::Parser
- #member? — CSV::Row
- #need_convert? — CSV::FieldsConverter
- #need_static_convert? — CSV::FieldsConverter
- #normalize_converters — CSV
- #parse — CSV::Parser
- #parse_column_end — CSV::Parser
- #parse_column_value — CSV::Parser
- #parse_csv — String
- #parse_headers — CSV::Parser
- #parse_no_quote — CSV::Parser
- #parse_quotable_loose — CSV::Parser
- #parse_quotable_robust — CSV::Parser
- #parse_quoted_column_value — CSV::Parser
- #parse_row_end — CSV::Parser
- #parse_unquoted_column_value — CSV::Parser
- #parser — CSV
- #parser_enumerator — CSV
- #parser_fields_converter — CSV
- #parser_options — CSV
- #path — CSV
- #prepare — CSV::Parser
- #prepare — CSV::Writer
- #prepare_backslash — CSV::Parser
- #prepare_force_quotes_fields — CSV::Writer
- #prepare_format — CSV::Writer
- #prepare_header — CSV::Parser
- #prepare_header — CSV::Writer
- #prepare_line — CSV::Parser
- #prepare_output — CSV::Writer
- #prepare_parser — CSV::Parser
- #prepare_quote_character — CSV::Parser
- #prepare_quoted — CSV::Parser
- #prepare_separators — CSV::Parser
- #prepare_skip_lines — CSV::Parser
- #prepare_strip — CSV::Parser
- #prepare_unquoted — CSV::Parser
- #prepare_variable — CSV::Parser
- #push — CSV::Row
- #push — CSV::Table
- #puts — CSV
- #quote — CSV::Writer
- #quote_char — CSV
- #quote_character — CSV::Parser
- #quote_field — CSV::Writer
- #raw_encoding — CSV
- #read — CSV
- #read_chunk — CSV::Parser::InputsScanner
- #readline — CSV
- #readlines — CSV
- #resolve_row_separator — CSV::Parser
- #rest — CSV::Parser::InputsScanner
- #return_headers? — CSV
- #return_headers? — CSV::Parser
- #rewind — CSV
- #rewind — CSV::Writer
- #row_sep — CSV
- #row_separator — CSV::Parser
- #scan — CSV::Parser::InputsScanner
- #scan_all — CSV::Parser::InputsScanner
- #shift — CSV
- #skip_blanks? — CSV
- #skip_blanks? — CSV::Parser
- #skip_line? — CSV::Parser
- #skip_lines — CSV
- #skip_lines — CSV::Parser
- #skip_needless_lines — CSV::Parser
- #start_row — CSV::Parser
- #stat — CSV
- #strip_value — CSV::Parser
- #to_a — CSV::Table
- #to_csv — Array
- #to_csv — CSV::Row
- #to_csv — CSV::Table
- #to_h — CSV::Row
- #to_hash — CSV::Row
- #to_i — CSV
- #to_io — CSV
- #to_s — CSV::Row
- #to_s — CSV::Table
- #trace — CSV::Parser::InputsScanner
- #unconverted_fields? — CSV
- #unconverted_fields? — CSV::Parser
- #use_headers? — CSV::Parser
- #validate_field_size — CSV::Parser
- #validate_strip_and_col_sep_options — CSV::Parser
- #values_at — CSV::Row
- #values_at — CSV::Table
- #write_headers? — CSV
- #writer — CSV
- #writer_fields_converter — CSV
- #writer_options — CSV