dorian-yaml-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/yaml-pluck +37 -6
  3. metadata +6 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 310da9ca100bfce0122f1639f11f0d24c0ad6f475bd20e62cd03896142354e32
4
- data.tar.gz: 76fa04ecff6fb8a50a7733dc953b0292aae7481e685b3b307b28fd802b333f8a
3
+ metadata.gz: 3ea0164ad8dad8c632ede314d6c89c4b4c4bd6f57545b14532edbb5147381883
4
+ data.tar.gz: 574d35dc94d00ef4ea77bf763a46dbfc3e01afeb95c96a403c8e7990e7775511
5
5
  SHA512:
6
- metadata.gz: d56f640c1f4790cb4f0a9a2c16c9844b0ff782cae8435fe104c803aeaa56de55ea9245c00efae7a0252d9b6450219fd1fd5122c59e6511d9fe898935038bbbe2
7
- data.tar.gz: 4d248f2ed749d2215472b28faf2bd8a9f1b9d1d436f87899658edf7baa244add93d5248d00af122ce9389f69003aa72ec3046931a7d1f2f101f62a52fa229155
6
+ metadata.gz: dccb06609db022eb03935555b5681505a05edff22f007a8a37e4a234710492b8d97f8a4cd0e99c47dff317c4b4f2569b5ac98d4e0cb741c60cd9f9048d4433c0
7
+ data.tar.gz: dca329bc37a2f2cd2ff16f5e72034a0a1ea3e94f8338cb3d4e8f860ba94082ea493892b75329695b6e0ec8fd4da22b9a60f641ec8e6700bc69be7cb85fa36e6a
data/bin/yaml-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 "yaml"
6
+
7
+ parsed =
8
+ Dorian::Arguments.parse(
9
+ yaml: {
10
+ alias: :y
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.join] 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 = YAML.safe_load(input).dig(*keys)
35
+
36
+ if parsed.options.yaml
37
+ puts result.to_yaml
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-yaml-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: yaml
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: yaml
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
  - - ">="