csv 3.2.5 → 3.2.6

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: 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