News¶ ↑
3.3.0 - 2024-03-22¶ ↑
Fixes¶ ↑
-
Fixed a regression parse bug in 3.2.9 that parsing with
:skip_lines
may cause wrong result.
3.2.9 - 2024-03-22¶ ↑
Fixes¶ ↑
-
Fixed a parse bug that wrong result may be happen when:
-
:skip_lines
is used -
:row_separator
is"\r\n"
-
There is a line that includes
\n
as a column value
Reported by Ryo Tsukamoto.
GH-296
-
Thanks¶ ↑
-
Ryo Tsukamoto
3.2.8 - 2023-11-08¶ ↑
Improvements¶ ↑
-
Added
CSV::InvalidEncodingError
.Patch by Kosuke Shibata.
GH-287
Thanks¶ ↑
-
Kosuke Shibata
3.2.7 - 2023-06-26¶ ↑
Improvements¶ ↑
-
Removed an unused internal variable. GH-273 [Patch by Mau Magnaguagno]
-
Changed to use
https://
instead ofhttp://
in documents. GH-274 [Patch by Vivek Bharath Akupatni] -
Added prefix to a helper module in test. GH-278 [Patch by Luke Gruber]
-
Added a documentation for
liberal_parsing: {backslash_quotes: true}. {GH-280}[https://github.com/ruby/csv/issues/280]
[Patch by Mark Schneider]
Fixes¶ ↑
-
Fixed a wrong execution result in documents. GH-276 [Patch by Yuki Tsujimoto]
-
Fixed a bug that the same line is used multiple times. GH-279 [Reported by Gabriel Nagy]
Thanks¶ ↑
-
Mau Magnaguagno
-
Vivek Bharath Akupatni
-
Yuki Tsujimoto
-
Luke Gruber
-
Mark Schneider
-
Gabriel Nagy
3.2.6 - 2022-12-08¶ ↑
Improvements¶ ↑
-
CSV#read
consumes the same lines with other methods likeCSV#shift
. [GitHub#258] [Reported by Lhoussaine Ghallou] -
All
Enumerable
based methods consume the same lines with other methods. This may have a performance penalty. [GitHub#260] [Reported by Lhoussaine Ghallou] -
Simplify some implementations. [GitHub#262] [GitHub#263] [Patch by Mau Magnaguagno]
Fixes¶ ↑
-
Fixed
CSV.generate_lines
document. [GitHub#257] [Patch by Sampat Badhe]
Thanks¶ ↑
-
Sampat Badhe
-
Lhoussaine Ghallou
-
Mau Magnaguagno
3.2.5 - 2022-08-26¶ ↑
Improvements¶ ↑
-
Added
CSV.generate_lines
. [GitHub#255] [Reported by OKURA Masafumi] [GitHub#256] [Patch by Eriko Sugiyama]
Thanks¶ ↑
-
OKURA Masafumi
-
Eriko Sugiyama
3.2.4 - 2022-08-22¶ ↑
Improvements¶ ↑
-
Cleaned up internal implementations. [GitHub#249] [GitHub#250] [GitHub#251] [Patch by Mau Magnaguagno]
-
Added support for RFC 3339 style time. [GitHub#248] [Patch by Thierry Lambert]
-
Added support for transcoding
String
CSV
. Syntax isfrom-encoding:to-encoding
. [GitHub#254] [Reported by Richard Stueven] -
Added quoted information to
CSV::FieldInfo
. [GitHub#254] [Reported by Hirokazu SUZUKI]
Fixes¶ ↑
-
Fixed a link in documents. [GitHub#244] [Patch by Peter Zhu]
Thanks¶ ↑
-
Peter Zhu
-
Mau Magnaguagno
-
Thierry Lambert
-
Richard Stueven
-
Hirokazu SUZUKI
3.2.3 - 2022-04-09¶ ↑
Improvements¶ ↑
-
Added contents summary to
CSV::Table#inspect
. [GitHub#229][Patch by Eriko Sugiyama] [GitHub#235][Patch by Sampat Badhe] -
Suppressed
$INPUT_RECORD_SEPARATOR
deprecation warning byWarning.warn
. [GitHub#233][Reported by Jean byroot Boussier] -
Improved error message for liberal parsing with quoted values. [GitHub#231][Patch by Nikolay Rys]
-
Fixed typos in documentation. [GitHub#236][Patch by Sampat Badhe]
-
Added
:max_field_size
option and deprecated:field_size_limit
option. [GitHub#238][Reported by Dan Buettner] -
Added
:symbol_raw
to built-in header converters. [GitHub#237][Reported by taki] [GitHub#239][Patch by Eriko Sugiyama]
Fixes¶ ↑
-
Fixed a bug that some texts may be dropped unexpectedly. [Bug #18245][Reported by Hassan Abdul Rehman]
-
Fixed a bug that
:field_size_limit
doesn't work with not complex row. [GitHub#238][Reported by Dan Buettner]
Thanks¶ ↑
-
Hassan Abdul Rehman
-
Eriko Sugiyama
-
Jean byroot Boussier
-
Nikolay Rys
-
Sampat Badhe
-
Dan Buettner
-
taki
3.2.2 - 2021-12-24¶ ↑
Improvements¶ ↑
-
Added a validation for invalid option combination. [GitHub#225][Patch by adamroyjones]
-
Improved documentation for developers. [GitHub#227][Patch by Eriko Sugiyama]
Fixes¶ ↑
-
Fixed a bug that all of
ARGF
contents may not be consumed. [GitHub#228][Reported by Rafael Navaza]
Thanks¶ ↑
-
adamroyjones
-
Eriko Sugiyama
-
Rafael Navaza
3.2.1 - 2021-10-23¶ ↑
Improvements¶ ↑
-
doc: Fixed wrong class name. [GitHub#217][Patch by Vince]
-
Changed to always use
"\n"
for the default row separator on Ruby 3.0 or later because$INPUT_RECORD_SEPARATOR
was deprecated since Ruby 3.0. -
Added support for Ractor. [GitHub#218][Patch by rm155]
-
Users who want to use the built-in converters in non-main Ractors need to call
Ractor.make_shareable(CSV::Converters)
and/orRactor.make_shareable(CSV::HeaderConverters)
before creating non-main Ractors.
-
Thanks¶ ↑
-
Vince
-
Joakim Antman
-
rm155
3.2.0 - 2021-06-06¶ ↑
Improvements¶ ↑
-
CSV.open
: Added support for:newline
option. [GitHub#198][Patch by Nobuyoshi Nakada] -
CSV::Table#each
: Added support for column mode with duplicated headers. [GitHub#206][Reported by Yaroslav Berezovskiy] -
Object#CSV
: Added support for Ruby 3.0. -
CSV::Row
: Added support for pattern matching. [GitHub#207][Patch by Kevin Newton]
Fixes¶ ↑
-
Fixed typos in documentation. [GitHub#196][Patch by Sampat Badhe]
Thanks¶ ↑
-
Sampat Badhe
-
Nobuyoshi Nakada
-
Yaroslav Berezovskiy
-
Kevin Newton
3.1.9 - 2020-11-23¶ ↑
Fixes¶ ↑
-
Fixed a compatibility bug that the line to be processed by
skip_lines:
has a row separator. [GitHub#194][Reported by Josef Šimánek]
Thanks¶ ↑
-
Josef Šimánek
3.1.8 - 2020-11-18¶ ↑
Improvements¶ ↑
-
Improved documentation. [Patch by Burdette Lamar]
Thanks¶ ↑
-
Burdette Lamar
3.1.7 - 2020-08-04¶ ↑
Improvements¶ ↑
-
Improved document. [GitHub#158][GitHub#161] [Patch by Burdette Lamar]
-
Updated required Ruby version to 2.5.0 or later. [GitHub#159] [Patch by Gabriel Nagy]
-
Removed stringio 0.1.3 or later dependency.
Thanks¶ ↑
-
Burdette Lamar
-
Gabriel Nagy
3.1.6 - 2020-07-20¶ ↑
Improvements¶ ↑
-
Improved document. [GitHub#127][GitHub#136][GitHub#139] [GitHub#141][GitHub#143][GitHub#146] [GitHub#148][GitHub#152][GitHub#155] [Patch by Burdette Lamar]
-
CSV.open
: Added support forundef: :replace
. [GitHub#129][Patch by Koichi ITO] -
CSV.open
: Added support forinvalid: :replace
. [GitHub#129][Patch by Koichi ITO] -
Don't run quotable check for invalid encoding field values. [GitHub#131][Patch by Koichi ITO]
-
Added support for specifying the target indexes and names to
force_quotes:
. [GitHub#153][Reported by Aleksandr] -
CSV.generate
: Changed to use the encoding of the first non-ASCII field rather than the encoding of ASCII only field. -
Changed to require the stringio gem 0.1.3 or later.
Thanks¶ ↑
-
Burdette Lamar
-
Koichi ITO
-
Aleksandr
3.1.5 - 2020-05-18¶ ↑
Improvements¶ ↑
-
Improved document. [GitHub#124][Patch by Burdette Lamar]
Fixes¶ ↑
-
Added missing document files. [GitHub#125][Reported by joast]
Thanks¶ ↑
-
Burdette Lamar
-
joast
3.1.4 - 2020-05-17¶ ↑
Improvements¶ ↑
-
Improved document. [GitHub#122][Patch by Burdette Lamar]
-
Stopped to dropping stack trace for exception caused by
CSV.parse_line
. [GitHub#120][Reported by Kyle d'Oliveira]
Fixes¶ ↑
-
Fixed a bug that
:write_nil_value
or:write_empty_value
don't work with nonString
objects. [GitHub#123][Reported by asm256]
Thanks¶ ↑
-
Burdette Lamar
-
asm256
-
Kyle d'Oliveira
3.1.3 - 2020-05-09¶ ↑
Improvements¶ ↑
-
CSV::Row#dup
: Copied deeply. [GitHub#108][Patch by Jim Kane]
Fixes¶ ↑
-
Fixed a infinite loop bug for zero length match
skip_lines
. [GitHub#110][Patch by Mike MacDonald] -
CSV.generate
: Fixed a bug that encoding isn't set correctly. [GitHub#110][Patch by Seiei Miyagi] -
Fixed document for the
:strip
option. [GitHub#114][Patch by TOMITA Masahiro] -
Fixed a parse bug when split charcter exists in middle of column value. [GitHub#115][Reported by TOMITA Masahiro]
Thanks¶ ↑
-
Jim Kane
-
Mike MacDonald
-
Seiei Miyagi
-
TOMITA Masahiro
3.1.2 - 2019-10-12¶ ↑
Improvements¶ ↑
-
Added
:col_sep
check. [GitHub#94][Reported by Florent Beaurain] -
Suppressed warnings. [GitHub#96][Patch by Nobuyoshi Nakada]
-
Improved documentation. [GitHub#101][Patch by Vitor Oliveira]
Fixes¶ ↑
-
Fixed a typo in documentation. [GitHub#95][Patch by Yuji Yaginuma]
-
Fixed a multibyte character handling bug. [GitHub#97][Patch by koshigoe]
-
Fixed typos in documentation. [GitHub#100][Patch by Vitor Oliveira]
-
Fixed a bug that seeked
StringIO
isn't accepted. [GitHub#98][Patch by MATSUMOTO Katsuyoshi] -
Fixed a bug that
CSV.generate_line
doesn't work withEncoding.default_internal
. [GitHub#105][Reported by David Rodríguez]
Thanks¶ ↑
-
Florent Beaurain
-
Yuji Yaginuma
-
Nobuyoshi Nakada
-
koshigoe
-
Vitor Oliveira
-
MATSUMOTO Katsuyoshi
-
David Rodríguez
3.1.1 - 2019-04-26¶ ↑
Improvements¶ ↑
-
Added documentation for
strip
option. [GitHub#88][Patch by hayashiyoshino] -
Added documentation for
write_converters
,write_nil_value
andwrite_empty_value
options. [GitHub#87][Patch by Masafumi Koba] -
Added documentation for
quote_empty
option. [GitHub#89][Patch by kawa_tech]
Fixes¶ ↑
-
Fixed a bug that
strip; true
removes a newline.
Thanks¶ ↑
-
hayashiyoshino
-
Masafumi Koba
-
kawa_tech
3.1.0 - 2019-04-17¶ ↑
Fixes¶ ↑
-
Fixed a backward incompatibility bug that
CSV#eof?
may raises an error. [GitHub#86][Reported by krororo]
Thanks¶ ↑
-
krororo
3.0.9 - 2019-04-15¶ ↑
Fixes¶ ↑
-
Fixed a test for Windows.
3.0.8 - 2019-04-11¶ ↑
Fixes¶ ↑
-
Fixed a bug that
strip: String
doesn't work.
3.0.7 - 2019-04-08¶ ↑
Improvements¶ ↑
-
Improve parse performance 1.5x by introducing loose parser.
Fixes¶ ↑
-
Fix performance regression in 3.0.5.
-
Fix a bug that
CSV#line
returns wrong value when you usequote_char: nil
.
3.0.6 - 2019-03-30¶ ↑
Improvements¶ ↑
-
CSV.foreach
: Added support formode
.
3.0.5 - 2019-03-24¶ ↑
Improvements¶ ↑
-
Added
:liberal_parsing => {backslash_quote: true}
option. [GitHub#74][Patch by 284km] -
Added
:write_converters
option. [GitHub#73][Patch by Danillo Souza] -
Added
:write_nil_value
option. -
Added
:write_empty_value
option. -
Improved invalid byte line number detection. [GitHub#78][Patch by Alyssa Ross]
-
Added
quote_char: nil
optimization. [GitHub#79][Patch by 284km] -
Improved error message. [GitHub#81][Patch by Andrés Torres]
-
Improved IO-like implementation for
StringIO
data. [GitHub#80][Patch by Genadi Samokovarov] -
Added
:strip
option. [GitHub#58]
Fixes¶ ↑
-
Fixed a compatibility bug that
CSV#each
doesn't careCSV#shift
. [GitHub#76][Patch by Alyssa Ross] -
Fixed a compatibility bug that
CSV#eof?
doesn't careCSV#each
andCSV#shift
. [GitHub#77][Reported by Chi Leung] -
Fixed a compatibility bug that invalid line isn't ignored. [GitHub#82][Reported by krororo]
-
Fixed a bug that
:skip_lines
doesn't work with multibyte characters data. [GitHub#83][Reported by ff2248]
Thanks¶ ↑
-
Alyssa Ross
-
284km
-
Chi Leung
-
Danillo Souza
-
Andrés Torres
-
Genadi Samokovarov
-
krororo
-
ff2248
3.0.4 - 2019-01-25¶ ↑
Improvements¶ ↑
-
Removed duplicated
CSV::Row#include?
implementations. [GitHub#69][Patch by Max Schwenk] -
Removed duplicated
CSV::Row#header?
implementations. [GitHub#70][Patch by Max Schwenk]
Fixes¶ ↑
-
Fixed a typo in document. [GitHub#72][Patch by Artur Beljajev]
-
Fixed a compatibility bug when row headers are changed. [GitHub#71][Reported by tomoyuki kosaka]
Thanks¶ ↑
-
Max Schwenk
-
Artur Beljajev
-
tomoyuki kosaka
3.0.3 - 2019-01-12¶ ↑
Improvements¶ ↑
-
Migrated benchmark tool to benchmark-driver from benchmark-ips. [GitHub#57][Patch by 284km]
-
Added
liberal_parsing: {double_quote_outside_quote: true}
parse option. [GitHub#66][Reported by Watson] -
Added
quote_empty:
write option. [GitHub#35][Reported by Dave Myron]
Fixes¶ ↑
-
Fixed a compatibility bug that
CSV.generate
always returnASCII-8BIT
encoding string. [GitHub#63][Patch by Watson] -
Fixed a compatibility bug that
CSV.parse("", headers: true)
doesn't returnCSV::Table
. [GitHub#64][Reported by Watson][Patch by 284km] -
Fixed a compatibility bug that multiple-characters column separator doesn't work. [GitHub#67][Reported by Jesse Reiss]
-
Fixed a compatibility bug that double
#each
parse twice. [GitHub#68][Reported by Max Schwenk]
Thanks¶ ↑
-
Watson
-
284km
-
Jesse Reiss
-
Dave Myron
-
Max Schwenk
3.0.2 - 2018-12-23¶ ↑
Improvements¶ ↑
-
Changed to use strscan in parser. [GitHub#52][Patch by 284km]
-
Improves
CSV
write performance. 3.0.2 will be about 2 times faster than 3.0.1. -
Improves
CSV
parse performance for complex case. 3.0.2 will be about 2 times faster than 3.0.1.
Fixes¶ ↑
-
Fixed a parse error bug for new line only input with
headers
option. [GitHub#53][Reported by Chris Beer] -
Fixed some typos in document. [GitHub#54][Patch by Victor Shepelev]
Thanks¶ ↑
-
284km
-
Chris Beer
-
Victor Shepelev
3.0.1 - 2018-12-07¶ ↑
Improvements¶ ↑
-
Added a test. [GitHub#38][Patch by 284km]
-
CSV::Row#dup
: Changed to duplicate internal data. [GitHub#39][Reported by André Guimarães Sakata] -
Documented
:nil_value
and:empty_value
options. [GitHub#41][Patch by OwlWorks] -
Added support for separator detection for non-seekable inputs. [GitHub#45][Patch by Ilmari Karonen]
-
Removed needless code. [GitHub#48][Patch by Espartaco Palma]
-
Added support for parsing header only
CSV
withheaders: true
. [GitHub#47][Patch by Kazuma Shibasaka] -
Added support for coverage report in CI. [GitHub#48][Patch by Espartaco Palma]
-
Improved auto CR row separator detection. [GitHub#51][Reported by Yuki Kurihara]
Fixes¶ ↑
-
Fixed a typo in document. [GitHub#40][Patch by Marcus Stollsteimer]
Thanks¶ ↑
-
284km
-
André Guimarães Sakata
-
Marcus Stollsteimer
-
OwlWorks
-
Ilmari Karonen
-
Espartaco Palma
-
Kazuma Shibasaka
-
Yuki Kurihara
3.0.0 - 2018-06-06¶ ↑
Fixes¶ ↑
-
Fixed a bug that header isn't returned for empty row. [GitHub#37][Patch by Grace Lee]
Thanks¶ ↑
-
Grace Lee
1.0.2 - 2018-05-03¶ ↑
Improvements¶ ↑
-
Split file for CSV::VERSION
-
Code cleanup: Split csv.rb into a more manageable structure [GitHub#19][Patch by Espartaco Palma] [GitHub#20][Patch by Steven Daniels]
-
Use
CSV::MalformedCSVError
for invalid encoding line [GitHub#26][Reported by deepj] -
Support implicit Row <->
Array
conversion [Bug #10013][Reported by Dawid Janczak] -
Update class docs [GitHub#32][Patch by zverok]
-
Add
Row#each_pair
[GitHub#33][Patch by zverok] -
Improve
CSV
performance [GitHub#30][Patch by Watson] -
Add :nil_value and :empty_value option
Fixes¶ ↑
-
Fix a bug that "bom|utf-8" doesn't work [GitHub#23][Reported by Pavel Lobashov]
-
CSV::Row#to_h
,#to_hash
: uses the same value asRow#[]
[Bug #14482][Reported by tomoya ishida] -
Make row separator detection more robust [GitHub#25][Reported by deepj]
-
Fix a bug that too much separator when col_sep is
" "
[Bug #8784][Reported by Sylvain Laperche]
Thanks¶ ↑
-
Espartaco Palma
-
Steven Daniels
-
deepj
-
Dawid Janczak
-
zverok
-
Watson
-
Pavel Lobashov
-
tomoya ishida
-
Sylvain Laperche
-
Ryunosuke Sato
1.0.1 - 2018-02-09¶ ↑
Improvements¶ ↑
-
CSV::Table#delete
: Added bulk delete support. You can delete multiple rows and columns at once. [GitHub#4][Patch by Vladislav] -
Updated Gem description. [GitHub#11][Patch by Marcus Stollsteimer]
-
Code cleanup. [GitHub#12][Patch by Marcus Stollsteimer] [GitHub#14][Patch by Steven Daniels] [GitHub#18][Patch by takkanm]
-
CSV::Table#dig
: Added. [GitHub#15][Patch by Tomohiro Ogoke] -
CSV::Row#dig
: Added. [GitHub#15][Patch by Tomohiro Ogoke] -
Added ISO 8601 support to date time converter. [GitHub#16]
Fixes¶ ↑
-
Fixed wrong
CSV::VERSION
. [GitHub#10][Reported by Marcus Stollsteimer] -
CSV.generate
: Fixed a regression bug thatString
argument is ignored. [GitHub#13][Patch by pavel]
Thanks¶ ↑
-
Vladislav
-
Marcus Stollsteimer
-
Steven Daniels
-
takkanm
-
Tomohiro Ogoke
-
pavel