forked from JEG2/faster_csv
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
181 lines (132 loc) · 6.2 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
= Change Log
Below is a complete listing of changes for each revision of FasterCSV.
== 1.5.5
* Removed setup.rb due to licensing concerns.
* 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.