dorian-yaml-pluck 0.0.3 → 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 +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 310da9ca100bfce0122f1639f11f0d24c0ad6f475bd20e62cd03896142354e32
4
- data.tar.gz: 76fa04ecff6fb8a50a7733dc953b0292aae7481e685b3b307b28fd802b333f8a
3
+ metadata.gz: 4a9616f7c0b35642015fe51421b6fc877c15687d2a4cb138313d7775b10b7b43
4
+ data.tar.gz: 3016aa8c168aef7c7221c0b26df369d8396c1d19a9f1f968d33f29c2190f75df
5
5
  SHA512:
6
- metadata.gz: d56f640c1f4790cb4f0a9a2c16c9844b0ff782cae8435fe104c803aeaa56de55ea9245c00efae7a0252d9b6450219fd1fd5122c59e6511d9fe898935038bbbe2
7
- data.tar.gz: 4d248f2ed749d2215472b28faf2bd8a9f1b9d1d436f87899658edf7baa244add93d5248d00af122ce9389f69003aa72ec3046931a7d1f2f101f62a52fa229155
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.3
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-22 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