### Home Classes Methods

### Files

- AUTHORS
- CHANGELOG
- COPYING
- INSTALL
- LICENSE
- README
- TODO

### Class Index

Quicksearch

- FasterCSV
- FasterCSV
- FasterCSV::MalformedCSVError
- FasterCSV::Row
- FasterCSV::Table
- Object
- Object::FCSV
- Array
- String

No matching classes.

# Change Log

Below is a complete listing of changes for each revision of FasterCSV.

## 1.5.5

- Removed setup.rb due to licensing concerns.

- Updated and clarified Copyright notices.

- Improved stray quoting error message (patch by Edvard Majakari).

- Improved line ending detection algorithm (patch by Alexey Smolianinov).

## 1.5.4

- Improved test coverage for the parser.

- Improved documentation.

- Fixed a bug that prevented `^` from being used as `:quote_char`.

- Switched from abort() to throwing exceptions on Ruby 1.9.

## 1.5.3

- A bug fix from Timothy Elliott to return the new parser to its strict quote tolerance.

## 1.5.2

- A bug fix to allow IO Exceptions to reach the calling code from Moses Hohman.

- Added support for `:write_headers => false` to Table.to_csv().

## 1.5.1

- A bug fix for deleting blank Table rows from Andy Hartford.

- Added gem build instructions.

## 1.5.0

- The main parser has been rewritten by Timothy Elliott to avoid big input issues with Ruby 1.8's regex engine. This makes FasterCSV handle more inputs gracefully.

- FasterCSV will now exit with a notice to upgrade if required in Ruby 1.9.

- Included a missing file so the tests will run in source packages.

## 1.4.0

- Added encoding support patch from Michael Reinsch.

- Improved inspect() messages for better IRb support.

- Fixed header writing bug reported by Dov Murik.

- Use custom separators in parsing header Strings as suggested by Shmulik Regev.

- Added a `:write_headers` option for outputting headers.

- Handle open() calls in binary mode whenever we can to workaround a Windows issue where line-ending translation can cause an off-by-one error in seeking back to a non-zero starting position after auto-discovery for `:row_sep` as suggested by Robert Battle.

- Improved the parser to fail faster when fed some forms of invalid CSV that can be detected without reading ahead.

- Added a `:field_size_limit` option to control FasterCSV's lookahead and prevent the parser from biting off more data than it can chew.

## 1.2.3

- Default to the system line ending when passed a GzipWriter object to wrap.

## 1.2.2

- Worked around GzipReader's lack of a seek() method so we could still use automatic row separator detection with them.

## 1.2.1

- Worked around an odd incompatibility with the Regexps used to remove line endings in some (seemingly rare) Ruby environments.

- Made FasterCSV::lineno() writer aware.

- Support Hashes in FasterCSV#<<(), by detecting headers when writing.

- Added limited support for switching the quote character.

- Refining Data and DateTime matching for built-in convertors.

## 1.2.0

- Added the FasterCSV::table() shortcut.

## 1.1.1

- Added a `:force_quotes` output option.

## 1.1.0

- Added empty?(), length(), and size() methods to FasterCSV::Row and FasterCSV::Table.

- Cleaned up bug fix regression tests.

- Fixed bug causing Arrays to be returned for blank rows when header processing is active.

- Added a `:skip_blanks` option for ignoring empty rows.

## 1.0.0

- Fixed FasterCSV.rewind() to reset the FasterCSV.lineno() counter.

- Fixed FasterCSV.rewind() to reset the header processing.

- Fixed documentation typos.

- Switched STDOUT and STDERR usage to $stdout and $stderr where appropriate.

- Added FasterCSV::Row.==().

- Enhanced FasterCSV::Row.fields() to support Ranges, even for headers.

- The slurping methods now return the new FasterCSV::Table objects.

- Fixed parser so multibyte `:col_sep` works now.

- Added a few examples for usage.

## 0.2.1

- Removed autorequire from GemSpec.

- Made Rakefile VERSION aware.

- General Rakefile cleanup.

## 0.2.0

- Added VERSION constant.

- Significantly improved test speed.

- Worked around Date::parse() bug so tests will pass on Windows.

- Documented test procedure.

- Made FasterCSV.lineno() CSV aware.

- Added line numbers to MalformedCSVError messages.

- `:headers` can now be set to an Array of headers to use.

- `:headers` can now be set to an external CSV String of headers to use.

- Added an `:unconverted_fields` options, so those can be returned when needed.

- Provided support for the serialization of custom Ruby objects using CSV.

- Added CSV drop-in interface.

- Added header information to FieldInfo Struct for conversions by header.

- Added an alias to support `require "fastercsv"`.

- Added FCSV alias for FasterCSV.

- Added FasterCSV::instance() and FasterCSV()/FCSV() shortcuts for easy output.

## 0.1.9

- Fixing the require "English" bug.

## 0.1.8

- Converted FasterCSV.filter() to use ARGF for input.

- Made FasterCSV.<<() aware of FasterCSV::Row objects.

- Switched header rows to include the unconverted headers as fields.

- Rescued IOError when trying to auto detect a line-ending on an output stream and used the default system line-ending.

- Added FasterCSV::Row.header_row?() and FasterCSV::Row.field_row?().

## 0.1.6

- Began using a forked development/stable versioning system.

- Reorganized initialization code for easier additions and maintenance.

- Added a check for unknown options. Exceptions will now be thrown for them.

- Added built-in and custom data converters. Built-in handle numbers and dates.

- Added Array#to_csv and String#parse_csv. Both accept normal options.

- Project moved to RubyForge Subversion.

- Added auto-discovery for `:row_sep` (now the default).

- Added FasterCSV::filter() for easy Unix-like CSV filters.

- Added support for accessing fields by headers.

  - Headers can have their own converters.

  - Headers can be skipped or returned as needed.

  - FasterCSV::Row allows index or header access while retaining order and allowing for duplicate headers.

## 0.1.4

- Fixed `:col_sep` escaping bug (reported by Kev Jackson).

- Switched to the use of named parsers internally.

## 0.1.3

- Fixed typo in gem spec causing a require bug.

## 0.1.2

- Built gem with Ruby 1.8.2, to bypass YAML/RubyGems issue.

## 0.1.1

- Built gem with Ruby 1.8.4 Preview 1, to try and bypass YAML/RubyGems issue.

- Added missing test file to released packages.

- Clarified call-seq documentation for open() and parse().

- Clarified passed String positions for new(), in documentation.

- Expanded generate() to handle appending to an existing String.

## 0.1.0

- Initial public release.

[Validate]

Generated with the Darkfish Rdoc Generator 2.