csv 3.2.7 → 3.2.8

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: 6cc7b1ce29466412d00abcdb6afe594aa953f4b88367086398a3376484ca3344
4
- data.tar.gz: b8112d963f92496cc775996c4e65d5b585601210fc03a4bc86eb4bf3c20e5f7d
3
+ metadata.gz: c64817c16c8991fc2596875101449b5452326fe91bd05e4bb6a66213113525d6
4
+ data.tar.gz: 19d6d80d6959f6cde0ac651774ea795dbd0f949135cae021fef3983d94248f9c
5
5
  SHA512:
6
- metadata.gz: 3c29b38c150c691b52d0be24ab3dcdf32c430f2870de3ae4b26e704368caead83b27a581324a73515a85df8dc9571ab9f5fef1e8aa16a78f2ebfe3981a036063
7
- data.tar.gz: 40cc68cb5a5eae059c3924e21e4fb53ae19e3c129f4b57e2bdcab35798742616daee93cf4bf9998de5333e03b01cc7b08a11da9700f04913a45f80741542d8f5
6
+ metadata.gz: 556f6582468d4a3c2994c12c25dba73b8db65e1a10f7306b9b5bc1fa345f47bf7872db1c603ddcd1a0eb359e7857c51a9874be2231dc821730ae62d15604c3b7
7
+ data.tar.gz: 348a25f4c1bb8e4fe0d71dc944e0a26165627803cb2528fc067642827fd3c253bda48aba179d3575950a7244bd4e8edf2eed9a99101952a07256a3f4f9d1e7fe
data/NEWS.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # News
2
2
 
3
+ ## 3.2.8 - 2023-11-08
4
+
5
+ ### Improvements
6
+
7
+ * Added `CSV::InvalidEncodingError`.
8
+
9
+ Patch by Kosuke Shibata.
10
+
11
+ GH-287
12
+
13
+ ### Thanks
14
+
15
+ * Kosuke Shibata
16
+
3
17
  ## 3.2.7 - 2023-06-26
4
18
 
5
19
  ### Improvements
data/lib/csv/parser.rb CHANGED
@@ -414,8 +414,7 @@ class CSV
414
414
  else
415
415
  lineno = @lineno + 1
416
416
  end
417
- message = "Invalid byte sequence in #{@encoding}"
418
- raise MalformedCSVError.new(message, lineno)
417
+ raise InvalidEncodingError.new(@encoding, lineno)
419
418
  rescue UnexpectedError => error
420
419
  if @scanner
421
420
  ignore_broken_line
@@ -876,8 +875,7 @@ class CSV
876
875
  !line.valid_encoding?
877
876
  end
878
877
  if index
879
- message = "Invalid byte sequence in #{@encoding}"
880
- raise MalformedCSVError.new(message, @lineno + index + 1)
878
+ raise InvalidEncodingError.new(@encoding, @lineno + index + 1)
881
879
  end
882
880
  end
883
881
  Scanner.new(string)
data/lib/csv/version.rb CHANGED
@@ -2,5 +2,5 @@
2
2
 
3
3
  class CSV
4
4
  # The version of the installed library.
5
- VERSION = "3.2.7"
5
+ VERSION = "3.2.8"
6
6
  end
data/lib/csv.rb CHANGED
@@ -102,14 +102,6 @@ require_relative "csv/writer"
102
102
 
103
103
  # == \CSV
104
104
  #
105
- # === In a Hurry?
106
- #
107
- # If you are familiar with \CSV data and have a particular task in mind,
108
- # you may want to go directly to the:
109
- # - {Recipes for CSV}[doc/csv/recipes/recipes_rdoc.html].
110
- #
111
- # Otherwise, read on here, about the API: classes, methods, and constants.
112
- #
113
105
  # === \CSV Data
114
106
  #
115
107
  # \CSV (comma-separated values) data is a text representation of a table:
@@ -854,6 +846,15 @@ class CSV
854
846
  end
855
847
  end
856
848
 
849
+ # The error thrown when the parser encounters invalid encoding in CSV.
850
+ class InvalidEncodingError < MalformedCSVError
851
+ attr_reader :encoding
852
+ def initialize(encoding, line_number)
853
+ @encoding = encoding
854
+ super("Invalid byte sequence in #{encoding}", line_number)
855
+ end
856
+ end
857
+
857
858
  #
858
859
  # A FieldInfo Struct contains details about a field's position in the data
859
860
  # source it was read from. CSV will pass this Struct to some blocks that make
@@ -1314,8 +1315,8 @@ class CSV
1314
1315
  #
1315
1316
  # Arguments:
1316
1317
  # * Argument +path_or_io+ must be a file path or an \IO stream.
1317
- # * Argument +mode+, if given, must be a \File mode
1318
- # See {Open Mode}[https://ruby-doc.org/core/IO.html#method-c-new-label-Open+Mode].
1318
+ # * Argument +mode+, if given, must be a \File mode.
1319
+ # See {Access Modes}[https://docs.ruby-lang.org/en/master/File.html#class-File-label-Access+Modes].
1319
1320
  # * Arguments <tt>**options</tt> must be keyword options.
1320
1321
  # See {Options for Parsing}[#class-CSV-label-Options+for+Parsing].
1321
1322
  # * This method optionally accepts an additional <tt>:encoding</tt> option
@@ -1521,8 +1522,8 @@ class CSV
1521
1522
  #
1522
1523
  # * Argument +path+, if given, must be the path to a file.
1523
1524
  # :include: ../doc/csv/arguments/io.rdoc
1524
- # * Argument +mode+, if given, must be a \File mode
1525
- # See {Open Mode}[IO.html#method-c-new-label-Open+Mode].
1525
+ # * Argument +mode+, if given, must be a \File mode.
1526
+ # See {Access Modes}[https://docs.ruby-lang.org/en/master/File.html#class-File-label-Access+Modes].
1526
1527
  # * Arguments <tt>**options</tt> must be keyword options.
1527
1528
  # See {Options for Generating}[#class-CSV-label-Options+for+Generating].
1528
1529
  # * This method optionally accepts an additional <tt>:encoding</tt> option
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.2.7
4
+ version: 3.2.8
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: 2023-06-26 00:00:00.000000000 Z
12
+ date: 2023-11-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler