json_schema 0.3.0 → 0.3.1
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/json_schema/document_store.rb +5 -1
- data/test/json_schema/document_store_test.rb +42 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4699ec08cb42382077750ca85baa91aa4f60732e
|
4
|
+
data.tar.gz: 8574657b774444006927dc7df56fdae92f13b2f9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6754b7820652d126bf225614bf740ad017a31b3ecf73f62262df3f1763eb8186bda0c5273bf0941dc82887d695fac47d3bc332a130103c4b9c2e94af918c35d5
|
7
|
+
data.tar.gz: e36ea2ce6d723b7f244e4a18565ce3b5159203ea4ecb0ba2e24d6bdbc0ff04953cf7130e25345a455527fcccb213a04f0b69a9d7d976a453f8d94f2152e45c49
|
@@ -6,13 +6,16 @@ module JsonSchema
|
|
6
6
|
# that have already happened and handles cyclic dependencies. Store a
|
7
7
|
# reference to the top-level schema before doing anything else.
|
8
8
|
class DocumentStore
|
9
|
+
include Enumerable
|
10
|
+
|
9
11
|
def initialize
|
10
12
|
@schema_map = {}
|
11
13
|
end
|
12
14
|
|
13
15
|
def add_schema(schema)
|
14
16
|
raise "can't add nil URI" if schema.uri.nil?
|
15
|
-
|
17
|
+
uri = schema.uri.chomp('#')
|
18
|
+
@schema_map[uri] = schema
|
16
19
|
end
|
17
20
|
|
18
21
|
def each
|
@@ -20,6 +23,7 @@ module JsonSchema
|
|
20
23
|
end
|
21
24
|
|
22
25
|
def lookup_schema(uri)
|
26
|
+
uri = uri.chomp('#')
|
23
27
|
@schema_map[uri]
|
24
28
|
end
|
25
29
|
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
require "json_schema"
|
4
|
+
|
5
|
+
describe JsonSchema::DocumentStore do
|
6
|
+
before do
|
7
|
+
@store = JsonSchema::DocumentStore.new
|
8
|
+
end
|
9
|
+
|
10
|
+
it "adds and looks up a schema" do
|
11
|
+
schema = schema_sample("http://example.com/schema")
|
12
|
+
@store.add_schema(schema)
|
13
|
+
assert_equal schema, @store.lookup_schema(schema.uri)
|
14
|
+
end
|
15
|
+
|
16
|
+
it "can iterate through its schemas" do
|
17
|
+
uri = "http://example.com/schema"
|
18
|
+
schema = schema_sample(uri)
|
19
|
+
@store.add_schema(schema)
|
20
|
+
assert_equal [[uri, schema]], @store.to_a
|
21
|
+
end
|
22
|
+
|
23
|
+
it "can lookup a schema added with a document root sign" do
|
24
|
+
uri = "http://example.com/schema"
|
25
|
+
schema = schema_sample(uri + "#")
|
26
|
+
@store.add_schema(schema)
|
27
|
+
assert_equal schema, @store.lookup_schema(uri)
|
28
|
+
end
|
29
|
+
|
30
|
+
it "can lookup a schema with a document root sign" do
|
31
|
+
uri = "http://example.com/schema"
|
32
|
+
schema = schema_sample(uri)
|
33
|
+
@store.add_schema(schema)
|
34
|
+
assert_equal schema, @store.lookup_schema(uri + "#")
|
35
|
+
end
|
36
|
+
|
37
|
+
def schema_sample(uri)
|
38
|
+
schema = JsonSchema::Schema.new
|
39
|
+
schema.uri = uri
|
40
|
+
schema
|
41
|
+
end
|
42
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: json_schema
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brandur
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-11-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
@@ -65,6 +65,7 @@ files:
|
|
65
65
|
- test/data_scaffold.rb
|
66
66
|
- test/json_pointer/evaluator_test.rb
|
67
67
|
- test/json_reference/reference_test.rb
|
68
|
+
- test/json_schema/document_store_test.rb
|
68
69
|
- test/json_schema/parser_test.rb
|
69
70
|
- test/json_schema/reference_expander_test.rb
|
70
71
|
- test/json_schema/validator_test.rb
|