123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- = 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 <tt>^</tt> from being used as <tt>:quote_char</tt>.
- * 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 <tt>:write_headers => false</tt> 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 <tt>:write_headers</tt> 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
- <tt>:row_sep</tt> 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 <tt>:field_size_limit</tt> 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 <tt>:force_quotes</tt> 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 <tt>:skip_blanks</tt> 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 <tt>:col_sep</tt> 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.
- * <tt>:headers</tt> can now be set to an Array of headers to use.
- * <tt>:headers</tt> can now be set to an external CSV String of headers to use.
- * Added an <tt>:unconverted_fields</tt> 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 <tt>require "fastercsv"</tt>.
- * 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 <tt>:row_sep</tt> (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 <tt>:col_sep</tt> 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.
|