dorian-yaml-compare 0.4.3 → 1.1.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-compare +14 -11
  3. metadata +6 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9d44f43e58b6b036a3280418124c2fd7226ddce763aa7d253303a09728739b82
4
- data.tar.gz: b0fb4e5aca1d40af29397579e320f2a03eaefbb2c1738129ac6a90d3ea9d26ed
3
+ metadata.gz: 9664a4d8434187725060c4d9c36dfa88d0300c203d2f693297b8fa7bb1718031
4
+ data.tar.gz: 57efc4cf5a83da0a229427a1ed057622598126cfbd07cdf3c8c631ada5366289
5
5
  SHA512:
6
- metadata.gz: fa9a43a8cfde60d671c9e9a583f4a17dff6cb110b84e8b46642a37c497b6c702d09e56e25a3fc9ae3bc41e5ca1e40c8923e0226ba34d31a5385914ad9589f0b2
7
- data.tar.gz: f72d5a67f68de1f5dc01df3d0a7a8ea790435c9e5a1a0033568cd52d61fa2cae216e21778ffbcb4f3891809100c8d038287720fd5ef1c2984fa2aabcb6a7ed44
6
+ metadata.gz: 83b7fbad75fefe18808cbf6a10e2ff8def397e5c10994020969126d37014272f1f5f3928a00cdec23d033df1a31fa741aba0b5b2e98562b9c594f980cb4b9f9b
7
+ data.tar.gz: 9d63be137078f91937fd2aa518b8b2e48de51a54a358773dec4138f8edda84edf99fac1c38c93ee2b089ab9d8a1dd7b54eafc5a04ac5a27b39f2c9ef39db6115
data/bin/yaml-compare CHANGED
@@ -1,6 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
+ require "dorian/arguments"
5
+ require "stringio"
4
6
  require "yaml"
5
7
 
6
8
  def compare(hash1, hash2, current: "")
@@ -26,26 +28,27 @@ def compare(hash1, hash2, current: "")
26
28
  end
27
29
  end
28
30
 
29
- def with_captured_stdout(&block)
31
+ def with_captured_stdout
30
32
  original_stdout = $stdout
31
33
  $stdout = StringIO.new
32
- block.call
34
+ yield
33
35
  $stdout.string
34
36
  ensure
35
37
  $stdout = original_stdout
36
38
  end
37
39
 
38
- if ARGV.size < 2 || ARGV.size > 4
39
- puts "USAGE: yaml-compare FILE1 FILE2 [ROOT1] [ROOT2]"
40
- exit
40
+ parsed = Dorian::Arguments.parse(version: { alias: :v }, help: { alias: :h })
41
+
42
+ abort parsed.help if parsed.options.help
43
+
44
+ if parsed.options.version
45
+ abort File.read(File.expand_path("../VERSION", __dir__))
41
46
  end
42
47
 
43
- file1 = YAML.safe_load_file(ARGV[0])
44
- file2 = YAML.safe_load_file(ARGV[1])
45
- root1 = ARGV[2]
46
- root2 = ARGV[3]
47
- file1 = file1[root1] unless root1.nil?
48
- file2 = file2[root2] unless root2.nil?
48
+ file1, file2 = parsed.files.map { |file| YAML.safe_load_file(file) }
49
+ root1, root2 = parsed.arguments
50
+ file1 = file1[root1] if root1
51
+ file2 = file2[root2] if root2
49
52
 
50
53
  output = with_captured_stdout { compare(file1, file2) }
51
54
 
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dorian-yaml-compare
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.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
  - - ">="