dorian-json-pluck 0.0.3 → 1.1.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-pluck +37 -6
  3. metadata +6 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4c8b13ef5b409e6f000ba79fe20539a9948e817b218bfd5cad3074ef569fe199
4
- data.tar.gz: eede85abfab4d039bcf50dc563ef3b23d227bf91410a447cfecfbe810db4c165
3
+ metadata.gz: 6ff068cdf7db601b6cda7d9fc69d2642c3db2421d1b5ed7f33b113b8ea7eb703
4
+ data.tar.gz: ed7cf40c92173f0ec6b7d40685d7a9a1faa74a53a786b5471c1922404e3168f6
5
5
  SHA512:
6
- metadata.gz: e7366b47258230816153b9e8d935103307f8a0bbe3bff6a30f9b81d2de7c2c046bd7c597cb8616b9be2413cc52e09d44d6f96ab0dc35f17f5dc59dc23c0e7027
7
- data.tar.gz: dd106ef800f221df9f75bc9f2803d338f64790f5825ae72cfc2d88586b22c6b96bb45aaf6b1693b8a8f6ae33f6a90a9f3fb0ec584b3065031d5ca46f4213c4f7
6
+ metadata.gz: 4ea023e43b1a60de9fd620be05d34b65f268f8e4ee1bc7b78b85f11652e81b4f7c4296341eaf9068194468ce34f69436ee9db1c919e854857fc12765185955a3
7
+ data.tar.gz: c175ac6090b2989091e9cc89b9d85110828e60b99fa46ef8485ab1a8028806f7fb5f9a7339b6080a4c3146ce479be33868bccd3a7030a85c9cb4f45c4df1ae21
data/bin/json-pluck CHANGED
@@ -1,12 +1,43 @@
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
+ json: {
10
+ alias: :j
11
+ },
12
+ ruby: {
13
+ alias: :r
14
+ },
15
+ version: {
16
+ alias: :v
17
+ },
18
+ help: {
19
+ alias: :h
20
+ }
21
+ )
22
+
23
+ abort parsed.help if parsed.options.help
24
+
25
+ if parsed.options.version
26
+ abort File.read(File.expand_path("../VERSION", __dir__))
7
27
  end
8
28
 
9
- $stdin.each_line do |it|
10
- it.strip!
11
- eval(ARGV.first)
29
+ inputs = parsed.files.map { |file| File.read(file) }
30
+ inputs = [$stdin.each_line.to_a.map(&:strip).join("\n")] if inputs.empty?
31
+ keys = parsed.arguments.map { |key| key.to_i.to_s == key ? key.to_i : key }
32
+
33
+ inputs.each do |input|
34
+ result = JSON.parse(input).dig(*keys)
35
+
36
+ if parsed.options.json
37
+ puts JSON.pretty_generate(result)
38
+ elsif parsed.options.ruby
39
+ p result
40
+ else
41
+ puts result
42
+ end
12
43
  end
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dorian-json-pluck
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 1.1.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-22 00:00:00.000000000 Z
11
+ date: 2024-08-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: json
14
+ name: dorian-arguments
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
@@ -25,7 +25,7 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: dorian-arguments
28
+ name: json
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
@@ -57,9 +57,9 @@ require_paths:
57
57
  - lib
58
58
  required_ruby_version: !ruby/object:Gem::Requirement
59
59
  requirements:
60
- - - ">="
60
+ - - '='
61
61
  - !ruby/object:Gem::Version
62
- version: '0'
62
+ version: 3.3.4
63
63
  required_rubygems_version: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - ">="