csv 3.0.9 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4a2d3f3f074053aaed1f2cdafb01dd10a4f84c3dcc0145f7ec29739e8137a8fd
4
- data.tar.gz: d780fcc8a4974ed7af80a8d79d30eb26d451cc57f1ed259a4f6794d9b5f15692
3
+ metadata.gz: 9e3a871d4d1958c763228c4b8d702c3cb272017934a37927e87b6ef7a86959bc
4
+ data.tar.gz: 39effdc25704e1e1f312c55d8461b3f5cce0eac7c2262ba21302783527004aae
5
5
  SHA512:
6
- metadata.gz: 84b0900c0f98df3e25f1f6962aa73ce873eade5f697aec9b71f126f4e66ec84ac5b082211c91738532fe72264b07a16efce0f56dc14a4f069a931f8feb8a2989
7
- data.tar.gz: 1989b07ddba04deacda23b8b3c3e48b3befc0287758117bae928f41a7ce9e1c677ab4653e2b594d1b1a2296790bb61eac7da0e468287f7d87acbc6c30b8140b8
6
+ metadata.gz: 83fa32fa7ceccb2a9287e3de846df483ae13088edbc5bb1dcaf9a27b74bbfb7da151334c85c8a146baa325cc4f39dbcc87c32f954ee0fbc41786816ab9a80716
7
+ data.tar.gz: 2a054323b17fa11a6febecb0060613f5b5bc339e4014fd6d1dd95ebcbb88bb72a85c8a3201d06b02c7cbb5134852838676de7b15525e6a261e1f7d6a7927cfa4
data/NEWS.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # News
2
2
 
3
+ ## 3.1.0 - 2019-04-17
4
+
5
+ ### Fixes
6
+
7
+ * Fixed a backward incompatibility bug that `CSV#eof?` may raises an
8
+ error.
9
+ [GitHub#86][Reported by krororo]
10
+
11
+ ### Thanks
12
+
13
+ * krororo
14
+
3
15
  ## 3.0.9 - 2019-04-15
4
16
 
5
17
  ### Fixes
data/lib/csv.rb CHANGED
@@ -955,6 +955,8 @@ class CSV
955
955
  strip: strip,
956
956
  }
957
957
  @parser = nil
958
+ @parser_enumerator = nil
959
+ @eof_error = nil
958
960
 
959
961
  @writer_options = {
960
962
  encoding: @encoding,
@@ -1156,9 +1158,13 @@ class CSV
1156
1158
  end
1157
1159
 
1158
1160
  def eof?
1161
+ return false if @eof_error
1159
1162
  begin
1160
1163
  parser_enumerator.peek
1161
1164
  false
1165
+ rescue MalformedCSVError => error
1166
+ @eof_error = error
1167
+ false
1162
1168
  rescue StopIteration
1163
1169
  true
1164
1170
  end
@@ -1169,6 +1175,7 @@ class CSV
1169
1175
  def rewind
1170
1176
  @parser = nil
1171
1177
  @parser_enumerator = nil
1178
+ @eof_error = nil
1172
1179
  @writer.rewind if @writer
1173
1180
  @io.rewind
1174
1181
  end
@@ -1264,6 +1271,10 @@ class CSV
1264
1271
  # The data source must be open for reading.
1265
1272
  #
1266
1273
  def shift
1274
+ if @eof_error
1275
+ eof_error, @eof_error = @eof_error, nil
1276
+ raise eof_error
1277
+ end
1267
1278
  begin
1268
1279
  parser_enumerator.next
1269
1280
  rescue StopIteration
@@ -7,7 +7,7 @@ unless String.method_defined?(:delete_suffix)
7
7
  refine String do
8
8
  def delete_suffix(suffix)
9
9
  if end_with?(suffix)
10
- self[0..(-(suffix.size + 1))]
10
+ self[0...-suffix.size]
11
11
  else
12
12
  self
13
13
  end
@@ -2,5 +2,5 @@
2
2
 
3
3
  class CSV
4
4
  # The version of the installed library.
5
- VERSION = "3.0.9"
5
+ VERSION = "3.1.0"
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: csv
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.9
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Edward Gray II
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-04-15 00:00:00.000000000 Z
12
+ date: 2019-04-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -111,7 +111,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
111
111
  version: '0'
112
112
  requirements: []
113
113
  rubyforge_project:
114
- rubygems_version: 2.7.6.2
114
+ rubygems_version: 2.7.6
115
115
  signing_key:
116
116
  specification_version: 4
117
117
  summary: CSV Reading and Writing