dorian-csv-merge 0.0.2 → 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 -7
  3. metadata +16 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 41a17dec5c1dc2c50c3a5bcfe90b61313ff1872e482730bc9f208f6e6f0ee012
4
- data.tar.gz: 6996b5d4db44564d250e21dd4590c9fceb869b5e05496303c553a0991ec1664f
3
+ metadata.gz: 201b7ed539d88be2438db4d4555bf921d2b57ce5ba40eaf7dc4adef5de7b319a
4
+ data.tar.gz: 8fe8539355911972c1f076353bba9a48ee99e18acad30b245978346a135c21ea
5
5
  SHA512:
6
- metadata.gz: 969b26e9b5e94bb91c84b46d73e572f517ff32331fd69e264221bffca64b371431c76e21eb8ac3b3b162ce22e6cbc9630cfbf21414c2cd2f850cc4ec7516bb7b
7
- data.tar.gz: aa312fdb60071596bfeaade9999e7c2b1c2771d5c902ab0c0c38f8e9ad17bfa4b37b8986ae41f4ecf6875727b8ef14b3b62355008d63354d5ac6a76376d67624
6
+ metadata.gz: 5c7b60f8fa9a35ad1e53b7e284ee1de12f13c0fbd0dd3f8b7a41b10b731f529e2a49fb3e410d5f2d880ff4d86996e7b8ea24b9a51d49b2e46da77a8fb5ef9bd9
7
+ data.tar.gz: 4bedaf14f1cd42ec9fa21e3b494205d267e0f5a3ffde9ccf28facd1207dd1665cb6b524e546bb1b4a765ee02a461893a717bb9ffa2b9ad0cca928dc9d1db1eaa
data/bin/csv-merge CHANGED
@@ -2,14 +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 { |input| input.each { |line| csv << line } }
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 } }
15
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.2
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-18 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,6 +24,20 @@ 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
42
  merges multiple csv files with headers
29
43