csv 3.2.5 → 3.2.6

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: 1abbfa01e0e5085077c3a58da0042477dfc0863cfb613f523a1cd0f6d577e0d9
4
- data.tar.gz: a80f49679422de5da4543cc5359dc0105ce49be86f76333bc50a2ea75345a1b0
3
+ metadata.gz: 48581eef7d2903fa52d36b48a8c1596396a5957b166c99ea8dcfd14ffb0dc221
4
+ data.tar.gz: fa6a5cdd9ade30c0a45f7974dcb43128d5e99cc7bf344e9e5b012993ad081ffe
5
5
  SHA512:
6
- metadata.gz: f71291c830c9ac8d77ec16d0acf036e633867c91370032e3f4e26aa5f4f4bfd7e2c726c9bc320c2295de34485bef14abde70de44e052e4e954466ceeeae6e9dd
7
- data.tar.gz: 2f619e6608556aaeaabdbf3b3116201d9a4f43eb20b313023d153e9ae03e34a17e10919d373afdd64f39f9edaeb813871e43e4fbb3a46e2dc3fc80d47214307c
6
+ metadata.gz: 00f55443919b4ece138c025818a440ed4a6d0bed64917bcb6f6e810e318f4738f9e129371434c8711173e818b5b58e1d4b2ac2987612617922fda74f03bd3a4b
7
+ data.tar.gz: 0b83b3b64bf5287653054fa8ecfd4e345f5c41a2a0daedbdba355c4d034bc85c917cf87bd9ee1ede54475ec4e31caadaee54cc2553d529e9ba5b0bc1d5806ff0
data/NEWS.md CHANGED
@@ -1,5 +1,38 @@
1
1
  # News
2
2
 
3
+ ## 3.2.6 - 2022-12-08
4
+
5
+ ### Improvements
6
+
7
+ * `CSV#read` consumes the same lines with other methods like
8
+ `CSV#shift`.
9
+ [[GitHub#258](https://github.com/ruby/csv/issues/258)]
10
+ [Reported by Lhoussaine Ghallou]
11
+
12
+ * All `Enumerable` based methods consume the same lines with other
13
+ methods. This may have a performance penalty.
14
+ [[GitHub#260](https://github.com/ruby/csv/issues/260)]
15
+ [Reported by Lhoussaine Ghallou]
16
+
17
+ * Simplify some implementations.
18
+ [[GitHub#262](https://github.com/ruby/csv/pull/262)]
19
+ [[GitHub#263](https://github.com/ruby/csv/pull/263)]
20
+ [Patch by Mau Magnaguagno]
21
+
22
+ ### Fixes
23
+
24
+ * Fixed `CSV.generate_lines` document.
25
+ [[GitHub#257](https://github.com/ruby/csv/pull/257)]
26
+ [Patch by Sampat Badhe]
27
+
28
+ ### Thanks
29
+
30
+ * Sampat Badhe
31
+
32
+ * Lhoussaine Ghallou
33
+
34
+ * Mau Magnaguagno
35
+
3
36
  ## 3.2.5 - 2022-08-26
4
37
 
5
38
  ### Improvements
data/lib/csv/table.rb CHANGED
@@ -890,9 +890,8 @@ class CSV
890
890
  if @mode == :row or @mode == :col_or_row # by index
891
891
  @table.delete_if(&block)
892
892
  else # by header
893
- deleted = []
894
893
  headers.each do |header|
895
- deleted << delete(header) if yield([header, self[header]])
894
+ delete(header) if yield([header, self[header]])
896
895
  end
897
896
  end
898
897
 
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.5"
5
+ VERSION = "3.2.6"
6
6
  end
data/lib/csv.rb CHANGED
@@ -1005,7 +1005,7 @@ class CSV
1005
1005
  def instance(data = $stdout, **options)
1006
1006
  # create a _signature_ for this method call, data object and options
1007
1007
  sig = [data.object_id] +
1008
- options.values_at(*DEFAULT_OPTIONS.keys.sort_by { |sym| sym.to_s })
1008
+ options.values_at(*DEFAULT_OPTIONS.keys)
1009
1009
 
1010
1010
  # fetch or create the instance for this signature
1011
1011
  @@instances ||= Hash.new
@@ -1202,7 +1202,7 @@ class CSV
1202
1202
  # parse options for input, output, or both
1203
1203
  in_options, out_options = Hash.new, {row_sep: InputRecordSeparator.value}
1204
1204
  options.each do |key, value|
1205
- case key.to_s
1205
+ case key
1206
1206
  when /\Ain(?:put)?_(.+)\Z/
1207
1207
  in_options[$1.to_sym] = value
1208
1208
  when /\Aout(?:put)?_(.+)\Z/
@@ -1489,12 +1489,12 @@ class CSV
1489
1489
  # ---
1490
1490
  #
1491
1491
  # Returns the \String generated from an
1492
- # CSV.generate_lines(['foo', '0'], ['bar', '1'], ['baz', '2']) # => "foo,0\nbar,1\nbaz.2\n"
1492
+ # CSV.generate_lines([['foo', '0'], ['bar', '1'], ['baz', '2']]) # => "foo,0\nbar,1\nbaz,2\n"
1493
1493
  #
1494
1494
  # ---
1495
1495
  #
1496
1496
  # Raises an exception
1497
- # # Raises NoMethodError (undefined method `find' for :foo:Symbol)
1497
+ # # Raises NoMethodError (undefined method `each' for :foo:Symbol)
1498
1498
  # CSV.generate_lines(:foo)
1499
1499
  #
1500
1500
  def generate_lines(rows, **options)
@@ -2551,7 +2551,13 @@ class CSV
2551
2551
  # p row
2552
2552
  # end
2553
2553
  def each(&block)
2554
- parser_enumerator.each(&block)
2554
+ return to_enum(__method__) unless block_given?
2555
+ begin
2556
+ while true
2557
+ yield(parser_enumerator.next)
2558
+ end
2559
+ rescue StopIteration
2560
+ end
2555
2561
  end
2556
2562
 
2557
2563
  # :call-seq:
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.5
4
+ version: 3.2.6
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: 2022-08-26 00:00:00.000000000 Z
12
+ date: 2022-12-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler