yaml_ref_resolver 0.3.2 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cd3742f9ee12653e275dfc33b03f9c55fab43e68
4
- data.tar.gz: 855c7a63eeb1ac9743db94565aa7317708510639
3
+ metadata.gz: bde85a7d2b1b92b65b0051abd1c6e9535f6b131f
4
+ data.tar.gz: f8534e41555fea5e98559b7a0eb6d7dccc7bfcda
5
5
  SHA512:
6
- metadata.gz: c4c0e925db78ea9412bb63d004915ceb3368296dcd42d854e8e7800d1fb09e1b09e6c16d8d36ed348489622c7ce185eac936c4ac977b62c7974a9304c620febb
7
- data.tar.gz: 7954115e954f88ffd92abf9bab3c94b48435e0aa6926a24825e31df5853ca4129233f99a4566ac26571ad19bcdb76ff3cab2d475e53217c0879a191bf3fbaa7f
6
+ metadata.gz: c1cec765fde7612ee449c95a4f6a17538e58677c713c18bf0728972539321183a9cf86f6e803e8cad57701a6b7e6d10dd1006fba57cbb03e5cb8faf1680e1213
7
+ data.tar.gz: 4133d83aefc93efcdfa54dd55326845c78475a9713c5f51b36abb1bf2e30492fa7bf7eff66b337c2ed3711544c4dcf3ec4fedef8387b2edb54c766a0ba1c28e0
data/README.md CHANGED
@@ -45,6 +45,28 @@ Optionally you can specify the key.
45
45
  resolver = YamlRefResolver.new(key: '$import')
46
46
  ```
47
47
 
48
+ ### CLI
49
+
50
+ Give an entry point yaml with `-i` or `--input` option.
51
+
52
+ ```console
53
+ $ yaml_ref_resolver -i ./path/to/index.yaml
54
+
55
+ # dump to stdout
56
+ ```
57
+
58
+ Optionally output file path with `-o` or `--output` can be given.
59
+
60
+ ```console
61
+ $ yaml_ref_resolver -i ./path/to/index.yaml -o ./path/to/output.yaml
62
+ ```
63
+
64
+ `-w` or `--watch` options watches referenced yaml files and dump whole resolved yaml when one of them changed.
65
+
66
+ ```console
67
+ $ yaml_ref_resolver -i ./path/to/index.yaml -w
68
+ ```
69
+
48
70
  ## Contributing
49
71
 
50
72
  Bug reports and pull requests are very welcome on GitHub at https://github.com/Joe-noh/yaml_ref_resolver.
@@ -14,6 +14,15 @@ class YamlRefResolver
14
14
  resolve_refs(@yaml[entry_point], entry_point)
15
15
  end
16
16
 
17
+ def reload(path)
18
+ @yaml.delete(path)
19
+ preload_ref_yamls(path)
20
+ end
21
+
22
+ def files
23
+ @yaml.keys
24
+ end
25
+
17
26
  private
18
27
 
19
28
  def preload_ref_yamls(abs_path)
@@ -1,28 +1,50 @@
1
1
  require "yaml_ref_resolver"
2
2
  require "optparse"
3
+ require "filewatcher"
3
4
 
4
5
  class YamlRefResolver
5
6
  class CLI
6
7
  def initialize
7
8
  @opt = OptionParser.new
8
9
  @input = nil
10
+ @output = nil
11
+ @watch = false
9
12
 
10
13
  define_options
11
14
  end
12
15
 
13
16
  def run(argv)
14
17
  @opt.parse!(argv)
15
-
16
18
  validate_input_path
17
19
 
18
- resolver = YamlRefResolver.new(key: @key)
19
- yaml = resolver.resolve(@input)
20
+ resolve_and_dump
20
21
 
21
- $stdout.write(yaml.to_yaml)
22
+ if @watch
23
+ FileWatcher.new(resolver.files).watch do |filename|
24
+ resolver.reload(File.expand_path(filename))
25
+ resolve_and_dump
26
+ end
27
+ end
22
28
  end
23
29
 
24
30
  private
25
31
 
32
+ def resolve_and_dump
33
+ yaml = resolver.resolve(@input).to_yaml
34
+
35
+ if @output
36
+ File.open(@output, "w") do |f|
37
+ f.puts yaml
38
+ end
39
+ else
40
+ $stdout.write yaml
41
+ end
42
+ end
43
+
44
+ def resolver
45
+ @resolver ||= YamlRefResolver.new(key: @key)
46
+ end
47
+
26
48
  def define_options
27
49
  @opt.on('-v', '--version', 'show version number.') do
28
50
  puts "YamlRefResolver v#{YamlRefResolver::VERSION}"
@@ -33,9 +55,17 @@ class YamlRefResolver
33
55
  @input = path
34
56
  end
35
57
 
58
+ @opt.on('-o path', '--output', 'output file path') do |path|
59
+ @output = path
60
+ end
61
+
36
62
  @opt.on('-k key', '--key', 'key to be resolved. $ref by default') do |key|
37
63
  @key = key
38
64
  end
65
+
66
+ @opt.on('-w', '--watch', 'glob pattern to watch cahnges') do
67
+ @watch = true
68
+ end
39
69
  end
40
70
 
41
71
  def validate_input_path
@@ -1,3 +1,3 @@
1
1
  class YamlRefResolver
2
- VERSION = "0.3.2"
2
+ VERSION = "0.4.0"
3
3
  end
@@ -22,6 +22,8 @@ Gem::Specification.new do |spec|
22
22
 
23
23
  spec.required_ruby_version = '>= 2.0.0'
24
24
 
25
+ spec.add_dependency "filewatcher", "~> 0.5"
26
+
25
27
  spec.add_development_dependency "bundler", "~> 1.14"
26
28
  spec.add_development_dependency "rake", "~> 10.0"
27
29
  spec.add_development_dependency "minitest", "~> 5.0"
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yaml_ref_resolver
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joe-noh
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-01-31 00:00:00.000000000 Z
11
+ date: 2017-02-04 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: filewatcher
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.5'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.5'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: bundler
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -107,7 +121,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
107
121
  version: '0'
108
122
  requirements: []
109
123
  rubyforge_project:
110
- rubygems_version: 2.5.1
124
+ rubygems_version: 2.6.8
111
125
  signing_key:
112
126
  specification_version: 4
113
127
  summary: Resolves referencing to other YAML files.