dorian-csv-merge 0.0.1 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/bin/csv-merge +24 -11
  3. metadata +18 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7cb6ea90bb70d5887e8646697862092dd4bf331a860e70a1ac4e7f041581312e
4
- data.tar.gz: 02e5653bfc7e8c306e56959f32cffa741d9fc19a4f791021a10604a9b0fbb0db
3
+ metadata.gz: 201b7ed539d88be2438db4d4555bf921d2b57ce5ba40eaf7dc4adef5de7b319a
4
+ data.tar.gz: 8fe8539355911972c1f076353bba9a48ee99e18acad30b245978346a135c21ea
5
5
  SHA512:
6
- metadata.gz: a7dddd2b0089c611a71fd586dde4f08f41b5b3ac2a9423678eeabcba2e2b5bfbfd902eb3bf93f4afdd315f4f789b171c5c36af950f356d96f85880011b74d25e
7
- data.tar.gz: f2ab70953bcc426ac4296d630b6a741fc086c3b3141968258a29e6680a5dc92b77f8c75e6139bb0381af837980af1fc58488e58d8b13425845735b5235a9d4ee
6
+ metadata.gz: 5c7b60f8fa9a35ad1e53b7e284ee1de12f13c0fbd0dd3f8b7a41b10b731f529e2a49fb3e410d5f2d880ff4d86996e7b8ea24b9a51d49b2e46da77a8fb5ef9bd9
7
+ data.tar.gz: 4bedaf14f1cd42ec9fa21e3b494205d267e0f5a3ffde9ccf28facd1207dd1665cb6b524e546bb1b4a765ee02a461893a717bb9ffa2b9ad0cca928dc9d1db1eaa
data/bin/csv-merge CHANGED
@@ -2,18 +2,31 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "csv"
5
+ require "dorian/arguments"
5
6
 
6
- abort "USAGE: csv-merge CSV_FILE1 CSV_FILE2... CSV_OUTPUT" if ARGV.size < 3
7
+ parsed =
8
+ Dorian::Arguments.parse(
9
+ version: {
10
+ alias: :v
11
+ },
12
+ help: {
13
+ alias: :h
14
+ }
15
+ )
7
16
 
8
- INPUTS = ARGV[...-1].map { |input| CSV.parse(File.read(input), headers: true) }
9
- OUTPUT = ARGV.last
10
- HEADERS = INPUTS.first.headers
17
+ abort parsed.help if parsed.options.help
11
18
 
12
- CSV.open(OUTPUT, "w") do |csv|
13
- csv << HEADERS
14
- INPUTS.each do |input|
15
- input.each do |line|
16
- csv << line
17
- end
18
- end
19
+ if parsed.options.version
20
+ abort File.read(File.expand_path("../../VERSION", __FILE__))
21
+ end
22
+
23
+ output = parsed.arguments.last || parsed.files.last
24
+ inputs = (parsed.files - [output]).map do |file|
25
+ CSV.parse(File.read(file), headers: true)
26
+ end
27
+ headers = inputs.first.headers
28
+
29
+ CSV.open(output, "w") do |csv|
30
+ csv << headers
31
+ inputs.each { |input| input.each { |line| csv << line } }
19
32
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dorian-csv-merge
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dorian Marié
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-08-15 00:00:00.000000000 Z
11
+ date: 2024-08-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: csv
@@ -24,8 +24,22 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: dorian-arguments
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  description: |-
28
- Merges multiple csv files with headers
42
+ merges multiple csv files with headers
29
43
 
30
44
  e.g. `csv-merge users_1.csv users_2.csv users.csv`
31
45
  email: dorian@dorianmarie.com
@@ -58,5 +72,5 @@ requirements: []
58
72
  rubygems_version: 3.5.11
59
73
  signing_key:
60
74
  specification_version: 4
61
- summary: Merges multiple csv files with headers
75
+ summary: merges multiple csv files with headers
62
76
  test_files: []