yaml_ref_resolver 0.1.0 → 0.2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b3bdcefb35a561156f4754b283fbcd71d7d8449d
4
- data.tar.gz: 81ca97d34cecf8810c18e35997679d3306b0f4b8
3
+ metadata.gz: 6d4882401e5d1c715b36e46f519f6a8d515d7de0
4
+ data.tar.gz: 5239f1e9452262ec88db8290f386286fb2b109c2
5
5
  SHA512:
6
- metadata.gz: cd321cfccdcb94e42dab3ae1fa536b9faa29d2c6df4c7fd61c186e4bdd5c06e981eafa294528a978452c814d89b4bcd3a9677b6575d05fb75ec26061fa583a52
7
- data.tar.gz: 0f62c98bec120acf7ae891d1efb1319d2c9086b36b811fe80beef196ab0acfef7ed55d2cf6ebbcb5ef9f65ea00fa57c5f038e1cf20b14c113967a278c0457c3f
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("index.yaml")
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
@@ -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
@@ -1,3 +1,3 @@
1
1
  class YamlRefResolver
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -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.1.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: '0'
99
+ version: 2.0.0
100
100
  required_rubygems_version: !ruby/object:Gem::Requirement
101
101
  requirements:
102
102
  - - ">="