csv 3.0.9 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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