[ruby-dev:50013] [Ruby trunk Bug#13149] Ruby 2.4.0 の CSV の field_size_limit オプションで先読み文字数を制限できない
From:
naruse@...
Date:
2017-03-11 17:45:22 UTC
List:
ruby-dev #50013
Issue #13149 has been updated by Yui NARUSE.
Backport changed from 2.2: DONTNEED, 2.3: DONTNEED, 2.4: REQUIRED to 2.2: DONTNEED, 2.3: DONTNEED, 2.4: DONE
ruby_2_4 r57868 merged revision(s) 57406.
----------------------------------------
Bug #13149: Ruby 2.4.0 の CSV の field_size_limit オプションで先読み文字数を制限できない
https://bugs.ruby-lang.org/issues/13149#change-63457
* Author: Masataka SUZUKI
* Status: Closed
* Priority: Normal
* Assignee:
* Target version:
* ruby -v: ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-darwin16]
* Backport: 2.2: DONTNEED, 2.3: DONTNEED, 2.4: DONE
----------------------------------------
Ruby 2.4.0 から、指定文字数未満で例外が出る事も、指定文字数以上で例外が出ない事もあります。
以下、指定文字数未満で例外が出るケース。
~~~ruby
require 'csv'
CSV.new(DATA, field_size_limit: 4).each { |x| p x }
__END__
"a","b"
"
2
",""
~~~
~~~
$ ruby test.rb
["a", "b"]
~/.rbenv/versions/2.4.0/lib/ruby/2.4.0/csv.rb:1931:in `block in shift': Field size exceeded on line 2. (CSV::MalformedCSVError)
from ~/.rbenv/versions/2.4.0/lib/ruby/2.4.0/csv.rb:1828:in `loop'
from ~/.rbenv/versions/2.4.0/lib/ruby/2.4.0/csv.rb:1828:in `shift'
from ~/.rbenv/versions/2.4.0/lib/ruby/2.4.0/csv.rb:1770:in `each'
from test.rb:3:in `<main>'
~~~
以下、指定文字数以上で例外が出ないケース。
~~~ruby
require 'csv'
CSV.new(DATA, field_size_limit: 5).each { |x| p x }
__END__
"a","b"
"
2345
",""
~~~
~~~
$ ruby test.rb
["a", "b"]
["\n2345\n", ""]
~~~
--
https://bugs.ruby-lang.org/