csv-utils 0.3.10 → 0.3.14

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: 4b7bb7c09d9a5e892099f17668fa81bc6c3ef0484c07d2fc3132c6f08499c092
4
- data.tar.gz: 62147da18e71e5fc859171be36024cec21841944ae94384bb8fe001160856272
3
+ metadata.gz: a15793e118aa3bd4175b59c6a17e7800dd322390f95ce55af29170a6422ae0c3
4
+ data.tar.gz: 481c775dc66bc47fec11f5ab39f98a1a35020cb00f6e565761b47badc4d53ad8
5
5
  SHA512:
6
- metadata.gz: f1053082c41f279781b51bbad925efa79490eed9824e4de348043a0371c5dbafc541e1f4649a5ac0d0e4fe2b0b749551daa0164945d32466dfdb1791576de93c
7
- data.tar.gz: 193ce400ddda5c1fbb2b6fd81c79394de884e63e2aa5653965d96d1b712903d839235dbedd9ca7b52a9833a817418b2204840e58504280e14128dec9c47e4482
6
+ metadata.gz: e987380b48bc309fbccb7bfd4311c8664077c8bac6ae31cf0c8c83f8035366f40fbdf60c8bf5b476e2a84e1899d6adada995fe81cd08531376511501700e2dca
7
+ data.tar.gz: 020e3c5d08bbc1025b72fbde2de838efd45c24cf41ba89c9fb93cceb619e4184ec0c1671bf26b3ae1d9dad8978ce206359c53672bce843a3ac8651cc6ccf0412
data/csv-utils.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'csv-utils'
5
- s.version = '0.3.10'
5
+ s.version = '0.3.14'
6
6
  s.licenses = ['MIT']
7
7
  s.summary = 'CSV Utils'
8
8
  s.description = 'Tools for debugging malformed CSV files'
@@ -43,6 +43,29 @@ class CSVUtils::CSVIterator
43
43
  end
44
44
  end
45
45
 
46
+ def headers
47
+ @src_csv.rewind
48
+ headers = @src_csv.shift
49
+ strip_bom!(headers[0])
50
+ headers
51
+ end
52
+
53
+ def to_hash(key, value = nil)
54
+ raise("header #{key} not found in #{headers}") unless headers.include?(key)
55
+ raise("headers #{value} not found in #{headers}") if value && !headers.include?(value)
56
+
57
+ value_proc =
58
+ if value
59
+ proc { |row| row[value] }
60
+ else
61
+ proc { |row| yield(row) }
62
+ end
63
+
64
+ each_with_object({}) do |row, hsh|
65
+ hsh[row[key]] = value_proc.call(row)
66
+ end
67
+ end
68
+
46
69
  private
47
70
 
48
71
  def strip_bom!(col)
@@ -107,6 +107,10 @@ class CSVUtils::CSVSort
107
107
  File.unlink(csv_part_file2)
108
108
  end
109
109
 
110
- FileUtils.mv(@csv_part_files.last || @csv_file, new_csv_file)
110
+ if @csv_part_files.size > 0
111
+ FileUtils.mv(@csv_part_files.last, new_csv_file)
112
+ else
113
+ FileUtils.cp(@csv_file, new_csv_file)
114
+ end
111
115
  end
112
116
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: csv-utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.10
4
+ version: 0.3.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Doug Youch
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-19 00:00:00.000000000 Z
11
+ date: 2021-07-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: inheritance-helper