dorian-csv-uniq 0.0.1 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/csv-uniq +24 -6
- metadata +19 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 840b7e2f1b21b6216b7b4ffbd81fc734e89875451b50a4a413b1c7b648d156a1
|
4
|
+
data.tar.gz: b05e8907b44c6851ed2a99a0cf4c72e1f85d16646ca4596d33a801223138805e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fdf422f2c703a41bb5929c7ffa93c9e23a6820a716064be569430c734e0cb75e0275142d6819d5a757e958f9416ddc4a2b9a8b96da133fa320944985f8e49830
|
7
|
+
data.tar.gz: 51e1d4fc419c4742caf117e699a5fab950f2381153f84d5126f9ee666072ddadd34d347744786cc8273a0174bd7d29039af71f9bb326ae17d81ccc7617b83341
|
data/bin/csv-uniq
CHANGED
@@ -1,12 +1,30 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
-
|
5
|
-
|
4
|
+
require "csv"
|
5
|
+
|
6
|
+
if ARGV.size < 1 || ARGV[0] == "--help" || ARGV[0] == "-h"
|
7
|
+
puts "USAGE: ... | csv-uniq [KEY...] [-h|--headers]"
|
6
8
|
exit
|
7
9
|
end
|
8
10
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
11
|
+
HEADERS = ARGV.detect { |argv| argv == "-h" || argv == "--headers" }
|
12
|
+
KEYS = (ARGV - [HEADERS]).map { |key| HEADERS ? key : key.to_i }
|
13
|
+
|
14
|
+
puts(
|
15
|
+
CSV
|
16
|
+
.generate do |output|
|
17
|
+
input =
|
18
|
+
CSV.parse(
|
19
|
+
$stdin.each_line.to_a.map(&:strip).join("\n"),
|
20
|
+
headers: !!HEADERS
|
21
|
+
)
|
22
|
+
|
23
|
+
output << input.headers if HEADERS
|
24
|
+
|
25
|
+
input
|
26
|
+
.uniq { |row| KEYS.map { |key| row[key] } }
|
27
|
+
.each { |row| output << row }
|
28
|
+
end
|
29
|
+
.strip
|
30
|
+
)
|
metadata
CHANGED
@@ -1,19 +1,30 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dorian-csv-uniq
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.1.1
|
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-
|
12
|
-
dependencies:
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
11
|
+
date: 2024-08-18 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: csv
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
description: returns a csv by unique keys, can be index or name
|
17
28
|
email: dorian@dorianmarie.com
|
18
29
|
executables:
|
19
30
|
- csv-uniq
|
@@ -44,5 +55,5 @@ requirements: []
|
|
44
55
|
rubygems_version: 3.5.11
|
45
56
|
signing_key:
|
46
57
|
specification_version: 4
|
47
|
-
summary:
|
58
|
+
summary: returns a csv by unique keys, can be index or name
|
48
59
|
test_files: []
|