iglu-ruby-client 0.1.0.beta → 0.1.0.beta.2
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 +4 -4
- data/lib/iglu-client/bootstrap.rb +4 -1
- data/lib/iglu-client/registries.rb +14 -4
- data/lib/iglu-client/resolver.rb +7 -8
- data/lib/iglu-client/self_describing_json.rb +1 -1
- data/lib/iglu-client/version.rb +1 -1
- metadata +14 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3bf4ff6bce88c9734846c1f4ed5bd0d1a2c3846f
|
4
|
+
data.tar.gz: 035b84bf32c0b1d1aed5a6b404cc96f92403f2a8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0fa0563292bd560ee0c4ee21bf39a02c6a1e8bf84ea0e06807f7d1f3593a778c3c131740d86e8394b70a133b1dc35bf8985640be899a0dccf1b9e8b61e3d8a9f
|
7
|
+
data.tar.gz: 483b95c1ea2e9d11be70b5682efc6a66da78871d4d93a8c6078204ca70bebb57d74503cf1e2f1e10cfe5e39a0c449ef57f2387585a932399b9fdc52c3e256e24
|
@@ -1,7 +1,10 @@
|
|
1
1
|
module Iglu
|
2
2
|
module Registries
|
3
3
|
config = Iglu::Registries::RegistryRefConfig.new "Iglu Client Embedded", 0, []
|
4
|
-
|
4
|
+
root = File.dirname(Iglu::Resolver.method(:parse).source_location[0])
|
5
|
+
path = File.join(root, '..', '..', 'assets', "iglu-client-embedded")
|
6
|
+
|
7
|
+
@@registry = Iglu::Registries::EmbeddedRegistryRef.new(config, path)
|
5
8
|
|
6
9
|
# Registry embedded straight into iglu-client gem
|
7
10
|
def self.bootstrap
|
@@ -65,12 +65,11 @@ module Iglu
|
|
65
65
|
@class_priority = 1
|
66
66
|
@descriptor = "embedded"
|
67
67
|
|
68
|
-
@
|
69
|
-
@root = "assets"
|
68
|
+
@root = path
|
70
69
|
end
|
71
70
|
|
72
71
|
def lookup_schema(schema_key)
|
73
|
-
schema_path = File.join(@root,
|
72
|
+
schema_path = File.join(@root, 'schemas', schema_key.as_path)
|
74
73
|
content = File.read(schema_path)
|
75
74
|
JSON::parse(content)
|
76
75
|
rescue Errno::ENOENT => _
|
@@ -86,6 +85,10 @@ module Iglu
|
|
86
85
|
def initialize(registry)
|
87
86
|
@registry = registry
|
88
87
|
end
|
88
|
+
|
89
|
+
def to_s
|
90
|
+
"Not found at #{@registry}"
|
91
|
+
end
|
89
92
|
end
|
90
93
|
|
91
94
|
class LookupFailure
|
@@ -95,13 +98,20 @@ module Iglu
|
|
95
98
|
@reason = reason
|
96
99
|
@registry = registry
|
97
100
|
end
|
101
|
+
|
102
|
+
def to_s
|
103
|
+
"Lookup failure at #{@registry} because #{@reason}"
|
104
|
+
end
|
98
105
|
end
|
99
106
|
|
100
107
|
class ResolverError < StandardError
|
101
|
-
attr_reader :lookups
|
108
|
+
attr_reader :lookups, :schema_key
|
102
109
|
|
103
110
|
def initialize(lookups)
|
104
111
|
@lookups = lookups
|
112
|
+
@schema_key = schema_key
|
113
|
+
message = "Schema [#{schema_key.as_uri}] was not found with in [#{lookups.length}] registries with following attempts: [#{lookups.map { |lookup| lookup.to_s }.join('; ')}]"
|
114
|
+
super(message)
|
105
115
|
end
|
106
116
|
end
|
107
117
|
|
data/lib/iglu-client/resolver.rb
CHANGED
@@ -48,7 +48,7 @@ module Iglu
|
|
48
48
|
end
|
49
49
|
|
50
50
|
if lookup_result.nil?
|
51
|
-
raise Registries::ResolverError.new
|
51
|
+
raise Registries::ResolverError.new(failures, schema_key)
|
52
52
|
else
|
53
53
|
@cache[schema_key] = lookup_result
|
54
54
|
lookup_result
|
@@ -112,16 +112,15 @@ module Iglu
|
|
112
112
|
JSON::Validator.validate!(schema, data)
|
113
113
|
end
|
114
114
|
|
115
|
-
|
116
|
-
# Primary method. Validate self-describing JSON instance
|
117
|
-
def self.validate(json)
|
118
|
-
JSON::Validator.validate!(schema, data)
|
119
|
-
end
|
120
|
-
|
121
115
|
def prioritize_repos(schema_key, repository_refs)
|
122
116
|
repository_refs.sort_by do |ref|
|
123
|
-
[!ref.vendor_matched(schema_key), ref.class_priority, ref.config.priority]
|
117
|
+
[Resolver.btoi(!ref.vendor_matched(schema_key)), ref.class_priority, ref.config.priority]
|
124
118
|
end
|
125
119
|
end
|
120
|
+
|
121
|
+
# Convert boolean to int
|
122
|
+
def self.btoi(b)
|
123
|
+
if b then 1 else 0 end
|
124
|
+
end
|
126
125
|
end
|
127
126
|
end
|
data/lib/iglu-client/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: iglu-ruby-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.0.beta
|
4
|
+
version: 0.1.0.beta.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anton Parkhomenko
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-02-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -31,6 +31,9 @@ dependencies:
|
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 2.7.0
|
34
|
+
- - ">="
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: 2.7.0
|
34
37
|
type: :runtime
|
35
38
|
prerelease: false
|
36
39
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -38,11 +41,17 @@ dependencies:
|
|
38
41
|
- - "~>"
|
39
42
|
- !ruby/object:Gem::Version
|
40
43
|
version: 2.7.0
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 2.7.0
|
41
47
|
- !ruby/object:Gem::Dependency
|
42
48
|
name: rspec
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|
44
50
|
requirements:
|
45
51
|
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '2.14'
|
54
|
+
- - ">="
|
46
55
|
- !ruby/object:Gem::Version
|
47
56
|
version: 2.14.1
|
48
57
|
type: :development
|
@@ -50,6 +59,9 @@ dependencies:
|
|
50
59
|
version_requirements: !ruby/object:Gem::Requirement
|
51
60
|
requirements:
|
52
61
|
- - "~>"
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '2.14'
|
64
|
+
- - ">="
|
53
65
|
- !ruby/object:Gem::Version
|
54
66
|
version: 2.14.1
|
55
67
|
description: Iglu Client is used to resolve JSON Schemas and validate self-describing
|