From: nobu@... Date: 2017-01-23T06:00:10+00:00 Subject: [ruby-dev:49966] [Ruby trunk Bug#13149] Ruby 2.4.0 の CSV の field_size_limit オプションで先読み文字数を制限できない Issue #13149 has been updated by Nobuyoshi Nakada. Description updated Backport changed from 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN to 2.2: DONTNEED, 2.3: DONTNEED, 2.4: REQUIRED ---------------------------------------- Bug #13149: Ruby 2.4.0 の CSV の field_size_limit オプションで先読み文字数を制限できない https://bugs.ruby-lang.org/issues/13149#change-62641 * 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: REQUIRED ---------------------------------------- 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/