From: naruse@... Date: 2017-03-11T17:45:22+00:00 Subject: [ruby-dev:50013] [Ruby trunk Bug#13149] Ruby 2.4.0 の CSV の field_size_limit オプションで先読み文字数を制限できない 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 `
' ~~~ 以下、指定文字数以上で例外が出ないケース。 ~~~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/