dorian-yaml-map 0.0.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/bin/yaml-map +36 -6
  3. metadata +16 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 41806f9b51a53f184e1392a5ea4f457b09fe39de5acdad0618bb99939f1b9e86
4
- data.tar.gz: 354363017fdc82f7c6cdb3170b4e241ea0d1db28dbaf5bdf867095d7e4baf833
3
+ metadata.gz: b53b4f647cd1449abbf137c10bf55926971f9ef55f983f0d5415c2bc3fd19d27
4
+ data.tar.gz: 36fb7fa2c7b49d5b6ab71c0c32d21cf1f039de4448ac9b0c036deee436946442
5
5
  SHA512:
6
- metadata.gz: b488226c941118573a80fd36561443229151599626646d1bcbf9c2b71adb1e8a491fe232e1d2988d955e19853538d9d853ff66c3a58a1b013507aab2e4da730b
7
- data.tar.gz: 90dea111ab1fff6b1e9682a0cc83e19e7eee8ce7499f7c7419c6a294f3fe03d4f12aceb451a74cf5d522f8e5805a85c0d8b7b511f5143bf5cb73e62e0389f8e4
6
+ metadata.gz: 044fa76bd16909183cbed6cfedad0a9fa82fc80fd70c70be57860122f4655966c7d31c38ce7723e15483c7e6dd7ebb1d7f3eae29b996c18a5ea72a823a5bb3fd
7
+ data.tar.gz: 1aade2cf164019223d48af15792799c70b98cce18645d97ce219f2318c120e02105c51a1448ad47494f702f29e5fb56d48c60d998258741a68ad2f5e8705ed63
data/bin/yaml-map CHANGED
@@ -1,12 +1,42 @@
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 = Dorian::Arguments.parse(version: { alias: :v }, help: { alias: :h })
8
+
9
+ abort parsed.help if parsed.options.help
10
+
11
+ if parsed.options.version
12
+ abort File.read(File.expand_path("../../VERSION", __FILE__))
7
13
  end
8
14
 
9
- $stdin.each_line do |it|
10
- it.strip!
11
- eval(ARGV.first)
15
+ inputs = parsed.files.map { |file| File.read(file) }
16
+ inputs = [$stdin.each_line.to_a.join] if inputs.empty?
17
+
18
+ inputs.each do |input|
19
+ json = YAML.safe_load(input)
20
+
21
+ if json.is_a?(Hash)
22
+ result =
23
+ json.to_h do |key, value|
24
+ it = [key.dup, value.dup]
25
+ eval(parsed.arguments.join(" "))
26
+ it
27
+ end
28
+ elsif json.is_a?(Array)
29
+ result =
30
+ json.map do |it|
31
+ it = it.dup
32
+ eval(parsed.arguments.join(" "))
33
+ it
34
+ end
35
+ else
36
+ it = json.dup
37
+ eval(parsed.arguments.join(" "))
38
+ result = it
39
+ end
40
+
41
+ puts result.to_yaml
12
42
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dorian-yaml-map
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
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: dorian-arguments
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  description: maps yaml to yaml with ruby code
42
56
  email: dorian@dorianmarie.com
43
57
  executables: