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
andFasterCSV::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 theFasterCSV.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 anArray
of headers to use. -
:headers
can now be set to an external CSVString
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
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 ofFasterCSV::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?()
andFasterCSV::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
andString#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.