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 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
  - - ">="