csv-utils 0.3.10 → 0.3.14

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