yaml_ref_resolver 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +28 -1
- data/lib/yaml_ref_resolver.rb +3 -3
- data/lib/yaml_ref_resolver/version.rb +1 -1
- data/yaml_ref_resolver.gemspec +2 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6d4882401e5d1c715b36e46f519f6a8d515d7de0
|
4
|
+
data.tar.gz: 5239f1e9452262ec88db8290f386286fb2b109c2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b3de45170a5202ae9e3a37164e49a017b11bd8354ce2e7c17101b1be89bee460f519774d2bcb05bfdf9d0a8233a11fb4ceca008e40be1778eadb807fb9a05e07
|
7
|
+
data.tar.gz: ab1e5195c2737bf85d413220b979b83d1b494225f293a4d312ac92aae7c1fe7e8567f5a7f55856cabe392b8d7f920845d0de3c95df11c02a7f32ce85cb1c4e97
|
data/README.md
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
# YamlRefResolver
|
2
2
|
|
3
|
+
[![Gem Version](https://badge.fury.io/rb/yaml_ref_resolver.svg)](https://badge.fury.io/rb/yaml_ref_resolver)
|
4
|
+
[![Build Status](https://travis-ci.org/Joe-noh/yaml_ref_resolver.svg?branch=master)](https://travis-ci.org/Joe-noh/yaml_ref_resolver)
|
5
|
+
|
3
6
|
This is a gem that resolves `$ref` references to other YAML files.
|
4
7
|
|
5
8
|
## Installation
|
@@ -12,10 +15,34 @@ gem 'yaml_ref_resolver'
|
|
12
15
|
|
13
16
|
## Usage
|
14
17
|
|
18
|
+
Assume that we have following yaml files.
|
19
|
+
|
20
|
+
```yaml
|
21
|
+
# index.yaml
|
22
|
+
author:
|
23
|
+
$ref: './john.yaml#/profile'
|
24
|
+
```
|
25
|
+
|
26
|
+
```yaml
|
27
|
+
# john.yaml
|
28
|
+
profile:
|
29
|
+
name: John
|
30
|
+
age: 28
|
31
|
+
```
|
32
|
+
|
33
|
+
This gem resolves `$ref` references.
|
34
|
+
|
15
35
|
```ruby
|
16
36
|
resolver = YamlRefResolver.new
|
17
37
|
|
18
|
-
hash = resolver.resolve(
|
38
|
+
hash = resolver.resolve('index.yaml')
|
39
|
+
#=> {'author' => {'name' => "john", 'age' => 28}}
|
40
|
+
```
|
41
|
+
|
42
|
+
Optionally you can specify the key.
|
43
|
+
|
44
|
+
```ruby
|
45
|
+
resolver = YamlRefResolver.new(key: '$import')
|
19
46
|
```
|
20
47
|
|
21
48
|
## Contributing
|
data/lib/yaml_ref_resolver.rb
CHANGED
@@ -2,8 +2,8 @@ require "yaml_ref_resolver/version"
|
|
2
2
|
require "yaml"
|
3
3
|
|
4
4
|
class YamlRefResolver
|
5
|
-
def initialize
|
6
|
-
@key = '$ref'
|
5
|
+
def initialize(opts = {})
|
6
|
+
@key = opts[:key] || '$ref'
|
7
7
|
end
|
8
8
|
|
9
9
|
def resolve(path)
|
@@ -25,7 +25,7 @@ class YamlRefResolver
|
|
25
25
|
ref_path = File.join(base, path)
|
26
26
|
ref = self.resolve(ref_path)
|
27
27
|
|
28
|
-
pos.split('/').inject(ref) {|obj, key| obj[key] }
|
28
|
+
pos.split('/').reject {|e| e == "" }.inject(ref) {|obj, key| obj[key] }
|
29
29
|
else
|
30
30
|
Hash[k, resolve_refs(v, base)]
|
31
31
|
end
|
data/yaml_ref_resolver.gemspec
CHANGED
@@ -20,6 +20,8 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
21
21
|
spec.require_paths = ["lib"]
|
22
22
|
|
23
|
+
spec.required_ruby_version = '>= 2.0.0'
|
24
|
+
|
23
25
|
spec.add_development_dependency "bundler", "~> 1.14"
|
24
26
|
spec.add_development_dependency "rake", "~> 10.0"
|
25
27
|
spec.add_development_dependency "minitest", "~> 5.0"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yaml_ref_resolver
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joe-noh
|
@@ -96,7 +96,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
96
96
|
requirements:
|
97
97
|
- - ">="
|
98
98
|
- !ruby/object:Gem::Version
|
99
|
-
version:
|
99
|
+
version: 2.0.0
|
100
100
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
102
|
- - ">="
|