CHANGELOG 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. = Change Log
  2. Below is a complete listing of changes for each revision of FasterCSV.
  3. == 1.5.5
  4. * Removed setup.rb due to licensing concerns.
  5. * Updated and clarified Copyright notices.
  6. * Improved stray quoting error message (patch by Edvard Majakari).
  7. * Improved line ending detection algorithm (patch by Alexey Smolianinov).
  8. == 1.5.4
  9. * Improved test coverage for the parser.
  10. * Improved documentation.
  11. * Fixed a bug that prevented <tt>^</tt> from being used as <tt>:quote_char</tt>.
  12. * Switched from abort() to throwing exceptions on Ruby 1.9.
  13. == 1.5.3
  14. * A bug fix from Timothy Elliott to return the new parser to its strict quote
  15. tolerance.
  16. == 1.5.2
  17. * A bug fix to allow IO Exceptions to reach the calling code from Moses Hohman.
  18. * Added support for <tt>:write_headers => false</tt> to Table.to_csv().
  19. == 1.5.1
  20. * A bug fix for deleting blank Table rows from Andy Hartford.
  21. * Added gem build instructions.
  22. == 1.5.0
  23. * The main parser has been rewritten by Timothy Elliott to avoid big input
  24. issues with Ruby 1.8's regex engine. This makes FasterCSV handle more inputs
  25. gracefully.
  26. * FasterCSV will now exit with a notice to upgrade if required in Ruby 1.9.
  27. * Included a missing file so the tests will run in source packages.
  28. == 1.4.0
  29. * Added encoding support patch from Michael Reinsch.
  30. * Improved inspect() messages for better IRb support.
  31. * Fixed header writing bug reported by Dov Murik.
  32. * Use custom separators in parsing header Strings as suggested by Shmulik Regev.
  33. * Added a <tt>:write_headers</tt> option for outputting headers.
  34. * Handle open() calls in binary mode whenever we can to workaround a Windows
  35. issue where line-ending translation can cause an off-by-one error in seeking
  36. back to a non-zero starting position after auto-discovery for
  37. <tt>:row_sep</tt> as suggested by Robert Battle.
  38. * Improved the parser to fail faster when fed some forms of invalid CSV that can
  39. be detected without reading ahead.
  40. * Added a <tt>:field_size_limit</tt> option to control FasterCSV's lookahead and
  41. prevent the parser from biting off more data than it can chew.
  42. == 1.2.3
  43. * Default to the system line ending when passed a GzipWriter object to wrap.
  44. == 1.2.2
  45. * Worked around GzipReader's lack of a seek() method so we could still use
  46. automatic row separator detection with them.
  47. == 1.2.1
  48. * Worked around an odd incompatibility with the Regexps used to remove line
  49. endings in some (seemingly rare) Ruby environments.
  50. * Made FasterCSV::lineno() writer aware.
  51. * Support Hashes in FasterCSV#<<(), by detecting headers when writing.
  52. * Added limited support for switching the quote character.
  53. * Refining Data and DateTime matching for built-in convertors.
  54. == 1.2.0
  55. * Added the FasterCSV::table() shortcut.
  56. == 1.1.1
  57. * Added a <tt>:force_quotes</tt> output option.
  58. == 1.1.0
  59. * Added empty?(), length(), and size() methods to FasterCSV::Row and
  60. FasterCSV::Table.
  61. * Cleaned up bug fix regression tests.
  62. * Fixed bug causing Arrays to be returned for blank rows when header processing
  63. is active.
  64. * Added a <tt>:skip_blanks</tt> option for ignoring empty rows.
  65. == 1.0.0
  66. * Fixed FasterCSV.rewind() to reset the FasterCSV.lineno() counter.
  67. * Fixed FasterCSV.rewind() to reset the header processing.
  68. * Fixed documentation typos.
  69. * Switched STDOUT and STDERR usage to $stdout and $stderr where appropriate.
  70. * Added FasterCSV::Row.==().
  71. * Enhanced FasterCSV::Row.fields() to support Ranges, even for headers.
  72. * The slurping methods now return the new FasterCSV::Table objects.
  73. * Fixed parser so multibyte <tt>:col_sep</tt> works now.
  74. * Added a few examples for usage.
  75. == 0.2.1
  76. * Removed autorequire from GemSpec.
  77. * Made Rakefile VERSION aware.
  78. * General Rakefile cleanup.
  79. == 0.2.0
  80. * Added VERSION constant.
  81. * Significantly improved test speed.
  82. * Worked around Date::parse() bug so tests will pass on Windows.
  83. * Documented test procedure.
  84. * Made FasterCSV.lineno() CSV aware.
  85. * Added line numbers to MalformedCSVError messages.
  86. * <tt>:headers</tt> can now be set to an Array of headers to use.
  87. * <tt>:headers</tt> can now be set to an external CSV String of headers to use.
  88. * Added an <tt>:unconverted_fields</tt> options, so those can be returned
  89. when needed.
  90. * Provided support for the serialization of custom Ruby objects using CSV.
  91. * Added CSV drop-in interface.
  92. * Added header information to FieldInfo Struct for conversions by header.
  93. * Added an alias to support <tt>require "fastercsv"</tt>.
  94. * Added FCSV alias for FasterCSV.
  95. * Added FasterCSV::instance() and FasterCSV()/FCSV() shortcuts for easy output.
  96. == 0.1.9
  97. * Fixing the require "English" bug.
  98. == 0.1.8
  99. * Converted FasterCSV.filter() to use ARGF for input.
  100. * Made FasterCSV.<<() aware of FasterCSV::Row objects.
  101. * Switched header rows to include the unconverted headers as fields.
  102. * Rescued IOError when trying to auto detect a line-ending on an output stream
  103. and used the default system line-ending.
  104. * Added FasterCSV::Row.header_row?() and FasterCSV::Row.field_row?().
  105. == 0.1.6
  106. * Began using a forked development/stable versioning system.
  107. * Reorganized initialization code for easier additions and maintenance.
  108. * Added a check for unknown options. Exceptions will now be thrown for them.
  109. * Added built-in and custom data converters. Built-in handle numbers and dates.
  110. * Added Array#to_csv and String#parse_csv. Both accept normal options.
  111. * Project moved to RubyForge Subversion.
  112. * Added auto-discovery for <tt>:row_sep</tt> (now the default).
  113. * Added FasterCSV::filter() for easy Unix-like CSV filters.
  114. * Added support for accessing fields by headers.
  115. * Headers can have their own converters.
  116. * Headers can be skipped or returned as needed.
  117. * FasterCSV::Row allows index or header access while retaining order and
  118. allowing for duplicate headers.
  119. == 0.1.4
  120. * Fixed <tt>:col_sep</tt> escaping bug (reported by Kev Jackson).
  121. * Switched to the use of named parsers internally.
  122. == 0.1.3
  123. * Fixed typo in gem spec causing a require bug.
  124. == 0.1.2
  125. * Built gem with Ruby 1.8.2, to bypass YAML/RubyGems issue.
  126. == 0.1.1
  127. * Built gem with Ruby 1.8.4 Preview 1, to _try_ and bypass YAML/RubyGems issue.
  128. * Added missing test file to released packages.
  129. * Clarified call-seq documentation for open() and parse().
  130. * Clarified passed String positions for new(), in documentation.
  131. * Expanded generate() to handle appending to an existing String.
  132. == 0.1.0
  133. * Initial public release.