dorian-yaml-pluck 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/yaml-pluck +37 -6
  3. metadata +16 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1d4a4f6b3b2b2e230964619dc2e188fdd68ca4874cc2e49025001cf77aec1cb9
4
- data.tar.gz: 516fbdd64ee00857748985094ab9f63c33fd72149e6fccfda4a8137ea5a1c492
3
+ metadata.gz: 4a9616f7c0b35642015fe51421b6fc877c15687d2a4cb138313d7775b10b7b43
4
+ data.tar.gz: 3016aa8c168aef7c7221c0b26df369d8396c1d19a9f1f968d33f29c2190f75df
5
5
  SHA512:
6
- metadata.gz: 928bc570d78d9ad23fc845365111a43908a9f0d9256e42e56f09f5a56d3ab8b93dc903f092ce9c3c919ecbecb88f107328b0d6ecbf014492ee2bd441aa1ae553
7
- data.tar.gz: 6f62ca761197d46c5915527175b40322642e0c25996b755682d79b324893742c3a0869bab358b3db1bef11c91984897e748ada149a5176eae1cea6293c8cb260
6
+ metadata.gz: cc99f29f0dbfea08b0c34d7e13f9396939a0c1f4326c3cf4ab7d99480205f0a74b7222f32c0a0d6f71c49d342b42585bd07ae2acbca9b550521a58db66b44182
7
+ data.tar.gz: 28d8bcb14c2107903b09a2fdeb3fa5532ab21c261d28fa1b62aa2b7b1929e0c588677b3b7e3cdc8cb18670b49c299572b65c152a263325f3adb7a7f8be0e8d61
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", __FILE__))
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,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dorian-yaml-pluck
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: yaml
@@ -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: plucks yaml from yaml path
28
42
  email: dorian@dorianmarie.com
29
43
  executables: