dorian-json-uniq 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/json-uniq +34 -6
  3. metadata +16 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0f428d6080d7470de79ae34b854e37744c09943f88f605e6691496f19b071563
4
- data.tar.gz: '0449c3657872af61818247599ba8a26bd461717b8c450c161aa41289e20d04d2'
3
+ metadata.gz: e9a185b66aec4954e06be7b04baab37ff77984e77e6e94f9d3eb2bfcccaacdb3
4
+ data.tar.gz: ab7ec9373c14a356be5809736a0a6f534bf19703ef6748ab623878d8c4dc28de
5
5
  SHA512:
6
- metadata.gz: e123cbe48b468698c010fd455c72ef378279f62aef80908f05e7994cf669ca3de7218612e0e3c466655afacf1972248ac46999847ac09d344b76fa2aa3cde2bb
7
- data.tar.gz: 419af2fe9a8f9a811fd8f3a8b4b036896a2dda23bf70e65c608f7825cf34203ed10ae9d87b8087b45108eea51f4d4d148ba7d599856131cada967db03c8cd18f
6
+ metadata.gz: 6dde266bd82c0748536452076895a71e384b86b1313e9dd6595c0eb6cfdbc1339459add87501f64483be5f0032acdfec2362a2773ff0e59e8a7d8167103e9855
7
+ data.tar.gz: d8e2d18322842f47f34ce3ba21631ab15bad3714a56c5f803c63bbac823d9ebf825b4b0f95cb0398aacaeba5700bd645ff49780a5743da836fd1be7dcd3504ea
data/bin/json-uniq CHANGED
@@ -1,12 +1,40 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
- if ARGV.size != 1 || ARGV[0] == "--help" || ARGV[0] == "-h"
5
- puts "USAGE: ... | each CODE"
6
- exit
4
+ require "dorian/arguments"
5
+ require "json"
6
+
7
+ parsed =
8
+ Dorian::Arguments.parse(
9
+ pretty: {
10
+ alias: :p,
11
+ default: true
12
+ },
13
+ version: {
14
+ alias: :v
15
+ },
16
+ help: {
17
+ alias: :h
18
+ }
19
+ )
20
+
21
+ abort parsed.help if parsed.options.help
22
+
23
+ if parsed.options.version
24
+ abort File.read(File.expand_path("../../VERSION", __FILE__))
7
25
  end
8
26
 
9
- $stdin.each_line do |it|
10
- it.strip!
11
- eval(ARGV.first)
27
+ inputs = parsed.files.map { |file| File.read(file) }
28
+ inputs += parsed.arguments
29
+ inputs = [$stdin.each_line.to_a.map(&:strip).join("\n")] if inputs.empty?
30
+
31
+ inputs.each do |input|
32
+ json = JSON.parse(input)
33
+ json.uniq! if json.is_a?(Array)
34
+
35
+ if parsed.options.pretty
36
+ puts JSON.pretty_generate(json)
37
+ else
38
+ puts json.to_json
39
+ end
12
40
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dorian-json-uniq
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: json
@@ -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: json uniq by json path
28
42
  email: dorian@dorianmarie.com
29
43
  executables: