dorian-csv-merge 0.0.2 → 1.0.0

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 +17 -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: 3c46f0cdeb6b52ae888560761b597e9ec14a76e35e42fe16c569608fd73be6ee
4
+ data.tar.gz: 7b19eb242de73908022e919e416a9107d347bf9fd71463caa6dafdd6ef2ff04a
5
5
  SHA512:
6
- metadata.gz: 969b26e9b5e94bb91c84b46d73e572f517ff32331fd69e264221bffca64b371431c76e21eb8ac3b3b162ce22e6cbc9630cfbf21414c2cd2f850cc4ec7516bb7b
7
- data.tar.gz: aa312fdb60071596bfeaade9999e7c2b1c2771d5c902ab0c0c38f8e9ad17bfa4b37b8986ae41f4ecf6875727b8ef14b3b62355008d63354d5ac6a76376d67624
6
+ metadata.gz: e87cb96d42bffa62daf82cc33db9918b117e94aafe9c873d45ed54e3e3a8a691f6b2be9489533f06bc8f0a534fc95e4e3cb5852c03352ba261703962f9be0497
7
+ data.tar.gz: 2584ec74b52c5310b862dc497a4fd0020ebe65966c5a72a5d1d7312721af685bded9d84aa325a2baef6bba91cfbe00d8e0e877521d8f6dca162b10fbe2829bf3
data/bin/csv-merge CHANGED
@@ -2,14 +2,24 @@
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 = Dorian::Arguments.parse(version: { alias: :v }, help: { alias: :h })
7
8
 
8
- INPUTS = ARGV[...-1].map { |input| CSV.parse(File.read(input), headers: true) }
9
- OUTPUT = ARGV.last
10
- HEADERS = INPUTS.first.headers
9
+ abort parsed.help if parsed.options.help
11
10
 
12
- CSV.open(OUTPUT, "w") do |csv|
13
- csv << HEADERS
14
- INPUTS.each { |input| input.each { |line| csv << line } }
11
+ if parsed.options.version
12
+ abort File.read(File.expand_path("../../VERSION", __FILE__))
13
+ end
14
+
15
+ output = parsed.arguments.last || parsed.files.last
16
+ inputs =
17
+ (parsed.files - [output]).map do |file|
18
+ CSV.parse(File.read(file), headers: true)
19
+ end
20
+ headers = inputs.first.headers
21
+
22
+ CSV.open(output, "w") do |csv|
23
+ csv << headers
24
+ inputs.each { |input| input.each { |line| csv << line } }
15
25
  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: 1.0.0
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-24 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