json-schema 2.4.1 → 2.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. checksums.yaml +6 -14
  2. data/README.textile +58 -7
  3. data/lib/json-schema.rb +3 -1
  4. data/lib/json-schema/attributes/additionalitems.rb +14 -11
  5. data/lib/json-schema/attributes/additionalproperties.rb +33 -43
  6. data/lib/json-schema/attributes/anyof.rb +4 -0
  7. data/lib/json-schema/attributes/dependencies.rb +31 -19
  8. data/lib/json-schema/attributes/disallow.rb +2 -3
  9. data/lib/json-schema/attributes/divisibleby.rb +11 -7
  10. data/lib/json-schema/attributes/enum.rb +14 -16
  11. data/lib/json-schema/attributes/format.rb +4 -7
  12. data/lib/json-schema/attributes/formats/date_time_v4.rb +5 -8
  13. data/lib/json-schema/attributes/formats/ip.rb +41 -0
  14. data/lib/json-schema/attributes/formats/uri.rb +10 -8
  15. data/lib/json-schema/attributes/items.rb +15 -16
  16. data/lib/json-schema/attributes/limit.rb +179 -0
  17. data/lib/json-schema/attributes/maxdecimal.rb +7 -6
  18. data/lib/json-schema/attributes/multipleof.rb +4 -11
  19. data/lib/json-schema/attributes/not.rb +1 -1
  20. data/lib/json-schema/attributes/oneof.rb +15 -6
  21. data/lib/json-schema/attributes/pattern.rb +7 -6
  22. data/lib/json-schema/attributes/patternproperties.rb +9 -12
  23. data/lib/json-schema/attributes/properties.rb +55 -39
  24. data/lib/json-schema/attributes/properties_optional.rb +13 -12
  25. data/lib/json-schema/attributes/ref.rb +4 -4
  26. data/lib/json-schema/attributes/required.rb +16 -13
  27. data/lib/json-schema/attributes/type.rb +13 -18
  28. data/lib/json-schema/attributes/type_v4.rb +11 -18
  29. data/lib/json-schema/attributes/uniqueitems.rb +5 -7
  30. data/lib/json-schema/schema.rb +8 -8
  31. data/lib/json-schema/schema/#validator.rb# +37 -0
  32. data/lib/json-schema/schema/reader.rb +113 -0
  33. data/lib/json-schema/util/uri.rb +16 -0
  34. data/lib/json-schema/validator.rb +123 -128
  35. data/lib/json-schema/validators/draft1.rb +1 -1
  36. data/lib/json-schema/validators/draft2.rb +1 -1
  37. data/lib/json-schema/validators/draft3.rb +1 -1
  38. data/lib/json-schema/validators/draft4.rb +1 -1
  39. data/lib/json-schema/validators/hyper-draft4.rb +1 -1
  40. data/test/schemas/address_microformat.json +18 -0
  41. data/test/schemas/definition_schema.json +15 -0
  42. data/test/schemas/ref john with spaces schema.json +11 -0
  43. data/test/schemas/relative_definition_schema.json +8 -0
  44. data/test/test_all_of_ref_schema.rb +12 -15
  45. data/test/test_any_of_ref_schema.rb +7 -9
  46. data/test/test_bad_schema_ref.rb +18 -12
  47. data/test/test_common_test_suite.rb +45 -29
  48. data/test/test_custom_format.rb +2 -3
  49. data/test/test_definition.rb +15 -0
  50. data/test/test_extended_schema.rb +25 -31
  51. data/test/test_extends_and_additionalProperties.rb +23 -21
  52. data/test/test_files_v3.rb +14 -23
  53. data/test/test_fragment_resolution.rb +6 -7
  54. data/test/test_fragment_validation_with_ref.rb +2 -8
  55. data/test/test_full_validation.rb +2 -3
  56. data/test/test_helper.rb +46 -1
  57. data/test/test_initialize_data.rb +118 -0
  58. data/test/test_jsonschema_draft1.rb +48 -600
  59. data/test/test_jsonschema_draft2.rb +48 -699
  60. data/test/test_jsonschema_draft3.rb +91 -861
  61. data/test/test_jsonschema_draft4.rb +173 -812
  62. data/test/test_list_option.rb +6 -7
  63. data/test/{test_merge_misisng_values.rb → test_merge_missing_values.rb} +2 -3
  64. data/test/test_minitems.rb +2 -4
  65. data/test/test_one_of.rb +9 -19
  66. data/test/test_ruby_schema.rb +5 -14
  67. data/test/test_schema_loader.rb +74 -0
  68. data/test/test_schema_type_attribute.rb +2 -3
  69. data/test/test_schema_validation.rb +4 -5
  70. data/test/test_stringify.rb +2 -3
  71. data/test/test_uri_related.rb +67 -0
  72. data/test/test_validator.rb +53 -0
  73. metadata +129 -51
  74. data/lib/json-schema/attributes/dependencies_v4.rb +0 -27
  75. data/lib/json-schema/attributes/formats/ip4.rb +0 -20
  76. data/lib/json-schema/attributes/formats/ip6.rb +0 -20
  77. data/lib/json-schema/attributes/maximum.rb +0 -17
  78. data/lib/json-schema/attributes/maximum_inclusive.rb +0 -17
  79. data/lib/json-schema/attributes/maxitems.rb +0 -14
  80. data/lib/json-schema/attributes/maxlength.rb +0 -16
  81. data/lib/json-schema/attributes/maxproperties.rb +0 -14
  82. data/lib/json-schema/attributes/minimum.rb +0 -17
  83. data/lib/json-schema/attributes/minimum_inclusive.rb +0 -17
  84. data/lib/json-schema/attributes/minitems.rb +0 -14
  85. data/lib/json-schema/attributes/minlength.rb +0 -16
  86. data/lib/json-schema/attributes/minproperties.rb +0 -14
  87. data/lib/json-schema/attributes/properties_v4.rb +0 -58
  88. data/lib/json-schema/uri/file.rb +0 -36
@@ -1,7 +1,6 @@
1
- require 'test/unit'
2
- require File.dirname(__FILE__) + '/../lib/json-schema'
1
+ require File.expand_path('../test_helper', __FILE__)
3
2
 
4
- class ListOptionTest < Test::Unit::TestCase
3
+ class ListOptionTest < Minitest::Test
5
4
  def test_list_option_reusing_schemas
6
5
  schema_hash = {
7
6
  "$schema" => "http://json-schema.org/draft-04/schema#",
@@ -9,14 +8,14 @@ class ListOptionTest < Test::Unit::TestCase
9
8
  "properties" => { "a" => { "type" => "integer" } }
10
9
  }
11
10
 
12
- uri = URI.parse('http://example.com/item')
11
+ uri = Addressable::URI.parse('http://example.com/item')
13
12
  schema = JSON::Schema.new(schema_hash, uri)
14
13
  JSON::Validator.add_schema(schema)
15
14
 
16
15
  data = {"a" => 1}
17
- assert(JSON::Validator.validate(uri.to_s, data))
16
+ assert_valid uri.to_s, data
18
17
 
19
18
  data = [{"a" => 1}]
20
- assert(JSON::Validator.validate(uri.to_s, data, :list => true))
19
+ assert_valid uri.to_s, data, :list => true
21
20
  end
22
- end
21
+ end
@@ -1,7 +1,6 @@
1
- require 'test/unit'
2
- require File.dirname(__FILE__) + '/../lib/json-schema'
1
+ require File.expand_path('../test_helper', __FILE__)
3
2
 
4
- class MergeMissingValuesTest < Test::Unit::TestCase
3
+ class MergeMissingValuesTest < Minitest::Test
5
4
  def test_merge_missing_values_for_string
6
5
  original = 'foo'
7
6
  updated = 'foo'
@@ -1,14 +1,12 @@
1
- require 'test/unit'
2
- require File.dirname(__FILE__) + '/../lib/json-schema'
1
+ require File.expand_path('../test_helper', __FILE__)
3
2
 
4
- class MinItemsTest < Test::Unit::TestCase
3
+ class MinItemsTest < Minitest::Test
5
4
  def test_minitems_nils
6
5
  schema = {
7
6
  "type" => "array",
8
7
  "minItems" => 1,
9
8
  "items" => { "type" => "object" }
10
9
  }
11
- data = [nil]
12
10
 
13
11
  errors = JSON::Validator.fully_validate(schema, [nil])
14
12
  assert_equal(errors.length, 1)
@@ -1,15 +1,12 @@
1
- require 'test/unit'
2
- require File.dirname(__FILE__) + '/../lib/json-schema'
1
+ require File.expand_path('../test_helper', __FILE__)
3
2
 
4
- class OneOfTest < Test::Unit::TestCase
3
+ class OneOfTest < Minitest::Test
5
4
  def test_one_of_links_schema
6
- schema = File.join(File.dirname(__FILE__),"schemas/one_of_ref_links_schema.json")
7
- data = File.join(File.dirname(__FILE__),"data/one_of_ref_links_data.json")
8
- errors = JSON::Validator.fully_validate(schema,data, :errors_as_objects => true)
9
- assert(errors.empty?, errors.map{|e| e[:message] }.join("\n"))
5
+ schema = schema_fixture_path('one_of_ref_links_schema.json')
6
+ data = data_fixture_path('one_of_ref_links_data.json')
7
+ assert_valid schema, data
10
8
  end
11
9
 
12
-
13
10
  def test_one_of_with_string_patterns
14
11
  schema = {
15
12
  "$schema" => "http://json-schema.org/draft-04/schema#",
@@ -26,17 +23,10 @@ class OneOfTest < Test::Unit::TestCase
26
23
  ]
27
24
  }
28
25
 
29
- data = {"a" => "foo"}
30
- assert(JSON::Validator.validate(schema,data))
31
-
32
- data = {"a" => "foobar"}
33
- assert(!JSON::Validator.validate(schema,data))
34
-
35
- data = {"a" => "baz"}
36
- assert(JSON::Validator.validate(schema,data))
37
-
38
- data = {"a" => 5}
39
- assert(!JSON::Validator.validate(schema,data))
26
+ assert_valid schema, { "a" => "foo" }
27
+ refute_valid schema, { "a" => "foobar" }
28
+ assert_valid schema, { "a" => "baz" }
29
+ refute_valid schema, { "a" => 5 }
40
30
  end
41
31
 
42
32
  end
@@ -1,7 +1,6 @@
1
- require 'test/unit'
2
- require File.dirname(__FILE__) + '/../lib/json-schema'
1
+ require File.expand_path('../test_helper', __FILE__)
3
2
 
4
- class RubySchemaTest < Test::Unit::TestCase
3
+ class RubySchemaTest < Minitest::Test
5
4
  def test_string_keys
6
5
  schema = {
7
6
  "type" => 'object',
@@ -12,11 +11,7 @@ class RubySchemaTest < Test::Unit::TestCase
12
11
  }
13
12
  }
14
13
 
15
- data = {
16
- "a" => 5
17
- }
18
-
19
- assert(JSON::Validator.validate(schema, data))
14
+ assert_valid schema, { "a" => 5 }
20
15
  end
21
16
 
22
17
  def test_symbol_keys
@@ -29,11 +24,7 @@ class RubySchemaTest < Test::Unit::TestCase
29
24
  }
30
25
  }
31
26
 
32
- data = {
33
- :a => 5
34
- }
35
-
36
- assert(JSON::Validator.validate(schema, data))
27
+ assert_valid schema, { :a => 5 }
37
28
  end
38
29
 
39
30
  def test_symbol_keys_in_hash_within_array
@@ -63,6 +54,6 @@ class RubySchemaTest < Test::Unit::TestCase
63
54
  ]
64
55
  }
65
56
 
66
- assert(JSON::Validator.validate(schema, data, :validate_schema => true))
57
+ assert_valid schema, data, :validate_schema => true
67
58
  end
68
59
  end
@@ -0,0 +1,74 @@
1
+ require File.expand_path('../test_helper', __FILE__)
2
+
3
+ class TestSchemaReader < Minitest::Test
4
+ ADDRESS_SCHEMA_URI = 'http://json-schema.org/address'
5
+ ADDRESS_SCHEMA_PATH = File.expand_path('../schemas/address_microformat.json', __FILE__)
6
+
7
+ def stub_address_request(body = File.read(ADDRESS_SCHEMA_PATH))
8
+ stub_request(:get, ADDRESS_SCHEMA_URI).
9
+ to_return(:body => body, :status => 200)
10
+ end
11
+
12
+ def test_accept_all_uris
13
+ stub_address_request
14
+
15
+ reader = JSON::Schema::Reader.new
16
+ schema = reader.read(ADDRESS_SCHEMA_URI)
17
+
18
+ assert_equal schema.uri, Addressable::URI.parse("#{ADDRESS_SCHEMA_URI}#")
19
+ end
20
+
21
+ def test_accept_all_files
22
+ reader = JSON::Schema::Reader.new
23
+ schema = reader.read(ADDRESS_SCHEMA_PATH)
24
+
25
+ assert_equal schema.uri, Addressable::URI.convert_path(ADDRESS_SCHEMA_PATH + '#')
26
+ end
27
+
28
+ def test_refuse_all_uris
29
+ reader = JSON::Schema::Reader.new(:accept_uri => false)
30
+ refute reader.accept_uri?(Addressable::URI.parse('http://foo.com'))
31
+ end
32
+
33
+ def test_refuse_all_files
34
+ reader = JSON::Schema::Reader.new(:accept_file => false)
35
+ refute reader.accept_file?(Pathname.new('/foo/bar/baz'))
36
+ end
37
+
38
+ def test_accept_uri_proc
39
+ reader = JSON::Schema::Reader.new(
40
+ :accept_uri => proc { |uri| uri.host == 'json-schema.org' }
41
+ )
42
+
43
+ assert reader.accept_uri?(Addressable::URI.parse('http://json-schema.org/address'))
44
+ refute reader.accept_uri?(Addressable::URI.parse('http://sub.json-schema.org/address'))
45
+ end
46
+
47
+ def test_accept_file_proc
48
+ test_root = Pathname.new(__FILE__).expand_path.dirname
49
+
50
+ reader = JSON::Schema::Reader.new(
51
+ :accept_file => proc { |path| path.to_s.start_with?(test_root.to_s) }
52
+ )
53
+
54
+ assert reader.accept_file?(test_root.join('anything.json'))
55
+ refute reader.accept_file?(test_root.join('..', 'anything.json'))
56
+ end
57
+
58
+ def test_file_scheme
59
+ reader = JSON::Schema::Reader.new(:accept_uri => true, :accept_file => false)
60
+ assert_raises(JSON::Schema::ReadRefused) do
61
+ reader.read('file://' + ADDRESS_SCHEMA_PATH)
62
+ end
63
+ end
64
+
65
+ def test_parse_error
66
+ stub_address_request('this is totally not valid JSON!')
67
+
68
+ reader = JSON::Schema::Reader.new
69
+
70
+ assert_raises(parser_error) do
71
+ reader.read(ADDRESS_SCHEMA_URI)
72
+ end
73
+ end
74
+ end
@@ -1,7 +1,6 @@
1
- require 'test/unit'
2
- require File.dirname(__FILE__) + '/../lib/json-schema'
1
+ require File.expand_path('../test_helper', __FILE__)
3
2
 
4
- class TestSchemaTypeAttribute < Test::Unit::TestCase
3
+ class TestSchemaTypeAttribute < Minitest::Test
5
4
  def test_type_of_data
6
5
  assert_equal(type_of_data(String.new), 'string')
7
6
  assert_equal(type_of_data(Numeric.new), 'number')
@@ -1,8 +1,7 @@
1
- require 'test/unit'
1
+ require File.expand_path('../test_helper', __FILE__)
2
2
  require 'tmpdir'
3
- require File.dirname(__FILE__) + '/../lib/json-schema'
4
3
 
5
- class JSONSchemaValidation < Test::Unit::TestCase
4
+ class JSONSchemaValidation < Minitest::Test
6
5
  def valid_schema_v3
7
6
  {
8
7
  "$schema" => "http://json-schema.org/draft-03/schema#",
@@ -135,7 +134,7 @@ class JSONSchemaValidation < Test::Unit::TestCase
135
134
 
136
135
  errors = JSON::Validator.fully_validate_schema(invalid_schema_v3, :version => :draft3)
137
136
  assert_equal 1, errors.size
138
- assert_match /the property .*required.*did not match/i, errors.first
137
+ assert_match(/the property .*required.*did not match/i, errors.first)
139
138
  end
140
139
 
141
140
 
@@ -151,7 +150,7 @@ class JSONSchemaValidation < Test::Unit::TestCase
151
150
 
152
151
  errors = JSON::Validator.fully_validate_schema(invalid_schema_v4, :version => :draft4)
153
152
  assert_equal 1, errors.size
154
- assert_match /the property .*required.*did not match/i, errors.first
153
+ assert_match(/the property .*required.*did not match/i, errors.first)
155
154
  end
156
155
 
157
156
  def test_validate_schema_3_without_version_option
@@ -1,7 +1,6 @@
1
- require 'test/unit'
2
- require File.dirname(__FILE__) + '/../lib/json-schema'
1
+ require File.expand_path('../test_helper', __FILE__)
3
2
 
4
- class StringifyTest < Test::Unit::TestCase
3
+ class StringifyTest < Minitest::Test
5
4
  def test_stringify_on_hash
6
5
  hash = {
7
6
  :a => 'foo',
@@ -0,0 +1,67 @@
1
+ # coding: utf-8
2
+ require File.expand_path('../test_helper', __FILE__)
3
+
4
+ class UriRelatedTest < Minitest::Test
5
+ def test_asian_characters
6
+ schema = {
7
+ "$schema"=> "http://json-schema.org/draft-04/schema#",
8
+ "id"=> "http://俺:鍵@例え.テスト/p?条件#ここ#",
9
+ "type" => "object",
10
+ "required" => ["a"],
11
+ "properties" => {
12
+ "a" => {
13
+ "id" => "a",
14
+ "type" => "integer"
15
+ }
16
+ }
17
+ }
18
+ data = { "a" => 5 }
19
+ assert_valid schema, data
20
+ end
21
+
22
+ def test_schema_ref_with_empty_fragment
23
+ schema = {
24
+ "$schema" => "http://json-schema.org/draft-04/schema#",
25
+ "type" => "object",
26
+ "required" => ["names"],
27
+ "properties"=> {
28
+ "names"=> {
29
+ "type"=> "array",
30
+ "items"=> {
31
+ "anyOf"=> [
32
+ { "$ref" => "test/schemas/ref john with spaces schema.json#" },
33
+ ]
34
+ }
35
+ }
36
+ }
37
+ }
38
+ data = {"names" => [{"first" => "john"}]}
39
+ assert_valid schema, data
40
+ end
41
+
42
+ def test_schema_ref_from_file_with_spaces
43
+ schema = {
44
+ "$schema" => "http://json-schema.org/draft-04/schema#",
45
+ "type" => "object",
46
+ "required" => ["names"],
47
+ "properties"=> {
48
+ "names"=> {
49
+ "type"=> "array",
50
+ "items"=> {
51
+ "anyOf"=> [
52
+ { "$ref" => "test/schemas/ref john with spaces schema.json" }
53
+ ]
54
+ }
55
+ }
56
+ }
57
+ }
58
+ data = {"names" => [{"first" => "john"}]}
59
+ assert_valid schema, data
60
+ end
61
+
62
+ def test_schema_from_file_with_spaces
63
+ data = {"first" => "john"}
64
+ schema = "test/schemas/ref john with spaces schema.json"
65
+ assert_valid schema, data
66
+ end
67
+ end
@@ -0,0 +1,53 @@
1
+ require File.expand_path('../test_helper', __FILE__)
2
+
3
+ class TestValidator < Minitest::Test
4
+
5
+ class MockReader
6
+ def read(location)
7
+ schema = {
8
+ '$schema' => 'http://json-schema.org/draft-04/schema#',
9
+ 'type' => 'string',
10
+ 'minLength' => 2
11
+ }
12
+
13
+ JSON::Schema.new(schema, Addressable::URI.parse(location.to_s))
14
+ end
15
+ end
16
+
17
+ def setup
18
+ @original_reader = JSON::Validator.schema_reader
19
+ end
20
+
21
+ def teardown
22
+ JSON::Validator.schema_reader = @original_reader
23
+ end
24
+
25
+ def test_default_schema_reader
26
+ reader = JSON::Validator.schema_reader
27
+ assert reader.accept_uri?(Addressable::URI.parse('http://example.com'))
28
+ assert reader.accept_file?(Pathname.new('/etc/passwd'))
29
+ end
30
+
31
+ def test_set_default_schema_reader
32
+ JSON::Validator.schema_reader = MockReader.new
33
+
34
+ schema = { '$ref' => 'http://any.url/at/all' }
35
+ assert_valid schema, 'abc'
36
+ refute_valid schema, 'a'
37
+ end
38
+
39
+ def test_validate_with_reader
40
+ reader = MockReader.new
41
+ schema = { '$ref' => 'http://any.url/at/all' }
42
+ assert_valid schema, 'abc', :schema_reader => reader
43
+ refute_valid schema, 'a', :schema_reader => reader
44
+ end
45
+
46
+ def test_validate_list_with_reader
47
+ reader = MockReader.new
48
+ schema = { '$ref' => 'http://what.ever/schema' }
49
+ assert_valid schema, ['abc', 'def'], :schema_reader => reader, :list => true
50
+ refute_valid schema, ['abc', 'a'], :schema_reader => reader, :list => true
51
+ end
52
+
53
+ end
metadata CHANGED
@@ -1,15 +1,85 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: json-schema
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.1
4
+ version: 2.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kenny Hoxworth
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-28 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2014-12-03 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: minitest
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '5.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '5.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: webmock
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: bundler
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: addressable
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '2.3'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '2.3'
13
83
  description:
14
84
  email: hoxworth@gmail.com
15
85
  executables: []
@@ -18,13 +88,15 @@ extra_rdoc_files:
18
88
  - README.textile
19
89
  - LICENSE.md
20
90
  files:
91
+ - LICENSE.md
92
+ - README.textile
93
+ - lib/json-schema.rb
21
94
  - lib/json-schema/attribute.rb
22
95
  - lib/json-schema/attributes/additionalitems.rb
23
96
  - lib/json-schema/attributes/additionalproperties.rb
24
97
  - lib/json-schema/attributes/allof.rb
25
98
  - lib/json-schema/attributes/anyof.rb
26
99
  - lib/json-schema/attributes/dependencies.rb
27
- - lib/json-schema/attributes/dependencies_v4.rb
28
100
  - lib/json-schema/attributes/disallow.rb
29
101
  - lib/json-schema/attributes/divisibleby.rb
30
102
  - lib/json-schema/attributes/enum.rb
@@ -34,22 +106,12 @@ files:
34
106
  - lib/json-schema/attributes/formats/date.rb
35
107
  - lib/json-schema/attributes/formats/date_time.rb
36
108
  - lib/json-schema/attributes/formats/date_time_v4.rb
37
- - lib/json-schema/attributes/formats/ip4.rb
38
- - lib/json-schema/attributes/formats/ip6.rb
109
+ - lib/json-schema/attributes/formats/ip.rb
39
110
  - lib/json-schema/attributes/formats/time.rb
40
111
  - lib/json-schema/attributes/formats/uri.rb
41
112
  - lib/json-schema/attributes/items.rb
113
+ - lib/json-schema/attributes/limit.rb
42
114
  - lib/json-schema/attributes/maxdecimal.rb
43
- - lib/json-schema/attributes/maximum.rb
44
- - lib/json-schema/attributes/maximum_inclusive.rb
45
- - lib/json-schema/attributes/maxitems.rb
46
- - lib/json-schema/attributes/maxlength.rb
47
- - lib/json-schema/attributes/maxproperties.rb
48
- - lib/json-schema/attributes/minimum.rb
49
- - lib/json-schema/attributes/minimum_inclusive.rb
50
- - lib/json-schema/attributes/minitems.rb
51
- - lib/json-schema/attributes/minlength.rb
52
- - lib/json-schema/attributes/minproperties.rb
53
115
  - lib/json-schema/attributes/multipleof.rb
54
116
  - lib/json-schema/attributes/not.rb
55
117
  - lib/json-schema/attributes/oneof.rb
@@ -57,7 +119,6 @@ files:
57
119
  - lib/json-schema/attributes/patternproperties.rb
58
120
  - lib/json-schema/attributes/properties.rb
59
121
  - lib/json-schema/attributes/properties_optional.rb
60
- - lib/json-schema/attributes/properties_v4.rb
61
122
  - lib/json-schema/attributes/ref.rb
62
123
  - lib/json-schema/attributes/required.rb
63
124
  - lib/json-schema/attributes/type.rb
@@ -67,10 +128,12 @@ files:
67
128
  - lib/json-schema/errors/json_parse_error.rb
68
129
  - lib/json-schema/errors/schema_error.rb
69
130
  - lib/json-schema/errors/validation_error.rb
70
- - lib/json-schema/schema/validator.rb
71
131
  - lib/json-schema/schema.rb
72
- - lib/json-schema/uri/file.rb
132
+ - lib/json-schema/schema/#validator.rb#
133
+ - lib/json-schema/schema/reader.rb
134
+ - lib/json-schema/schema/validator.rb
73
135
  - lib/json-schema/util/array_set.rb
136
+ - lib/json-schema/util/uri.rb
74
137
  - lib/json-schema/util/uuid.rb
75
138
  - lib/json-schema/validator.rb
76
139
  - lib/json-schema/validators/draft1.rb
@@ -78,48 +141,23 @@ files:
78
141
  - lib/json-schema/validators/draft3.rb
79
142
  - lib/json-schema/validators/draft4.rb
80
143
  - lib/json-schema/validators/hyper-draft4.rb
81
- - lib/json-schema.rb
82
144
  - resources/draft-01.json
83
145
  - resources/draft-02.json
84
146
  - resources/draft-03.json
85
147
  - resources/draft-04.json
86
- - README.textile
87
- - LICENSE.md
88
- - test/test_all_of_ref_schema.rb
89
- - test/test_any_of_ref_schema.rb
90
- - test/test_bad_schema_ref.rb
91
- - test/test_common_test_suite.rb
92
- - test/test_custom_format.rb
93
- - test/test_extended_schema.rb
94
- - test/test_extends_and_additionalProperties.rb
95
- - test/test_files_v3.rb
96
- - test/test_fragment_resolution.rb
97
- - test/test_fragment_validation_with_ref.rb
98
- - test/test_full_validation.rb
99
- - test/test_helper.rb
100
- - test/test_jsonschema_draft1.rb
101
- - test/test_jsonschema_draft2.rb
102
- - test/test_jsonschema_draft3.rb
103
- - test/test_jsonschema_draft4.rb
104
- - test/test_list_option.rb
105
- - test/test_merge_misisng_values.rb
106
- - test/test_minitems.rb
107
- - test/test_one_of.rb
108
- - test/test_ruby_schema.rb
109
- - test/test_schema_type_attribute.rb
110
- - test/test_schema_validation.rb
111
- - test/test_stringify.rb
112
148
  - test/data/all_of_ref_data.json
113
149
  - test/data/any_of_ref_data.json
114
150
  - test/data/bad_data_1.json
115
151
  - test/data/good_data_1.json
116
152
  - test/data/one_of_ref_links_data.json
153
+ - test/schemas/address_microformat.json
117
154
  - test/schemas/all_of_ref_base_schema.json
118
155
  - test/schemas/all_of_ref_schema.json
119
156
  - test/schemas/any_of_ref_jane_schema.json
120
157
  - test/schemas/any_of_ref_jimmy_schema.json
121
158
  - test/schemas/any_of_ref_john_schema.json
122
159
  - test/schemas/any_of_ref_schema.json
160
+ - test/schemas/definition_schema.json
123
161
  - test/schemas/extends_and_additionalProperties-1-filename.schema.json
124
162
  - test/schemas/extends_and_additionalProperties-1-ref.schema.json
125
163
  - test/schemas/extends_and_additionalProperties-2-filename.schema.json
@@ -130,9 +168,40 @@ files:
130
168
  - test/schemas/good_schema_extends2.json
131
169
  - test/schemas/inner.schema.json
132
170
  - test/schemas/one_of_ref_links_schema.json
171
+ - test/schemas/ref john with spaces schema.json
172
+ - test/schemas/relative_definition_schema.json
133
173
  - test/schemas/self_link_schema.json
134
174
  - test/schemas/up_link_schema.json
135
- homepage: http://github.com/hoxworth/json-schema/tree/master
175
+ - test/test_all_of_ref_schema.rb
176
+ - test/test_any_of_ref_schema.rb
177
+ - test/test_bad_schema_ref.rb
178
+ - test/test_common_test_suite.rb
179
+ - test/test_custom_format.rb
180
+ - test/test_definition.rb
181
+ - test/test_extended_schema.rb
182
+ - test/test_extends_and_additionalProperties.rb
183
+ - test/test_files_v3.rb
184
+ - test/test_fragment_resolution.rb
185
+ - test/test_fragment_validation_with_ref.rb
186
+ - test/test_full_validation.rb
187
+ - test/test_helper.rb
188
+ - test/test_initialize_data.rb
189
+ - test/test_jsonschema_draft1.rb
190
+ - test/test_jsonschema_draft2.rb
191
+ - test/test_jsonschema_draft3.rb
192
+ - test/test_jsonschema_draft4.rb
193
+ - test/test_list_option.rb
194
+ - test/test_merge_missing_values.rb
195
+ - test/test_minitems.rb
196
+ - test/test_one_of.rb
197
+ - test/test_ruby_schema.rb
198
+ - test/test_schema_loader.rb
199
+ - test/test_schema_type_attribute.rb
200
+ - test/test_schema_validation.rb
201
+ - test/test_stringify.rb
202
+ - test/test_uri_related.rb
203
+ - test/test_validator.rb
204
+ homepage: http://github.com/ruby-json-schema/json-schema/tree/master
136
205
  licenses:
137
206
  - MIT
138
207
  metadata: {}
@@ -142,17 +211,17 @@ require_paths:
142
211
  - lib
143
212
  required_ruby_version: !ruby/object:Gem::Requirement
144
213
  requirements:
145
- - - ! '>='
214
+ - - ">="
146
215
  - !ruby/object:Gem::Version
147
216
  version: 1.8.7
148
217
  required_rubygems_version: !ruby/object:Gem::Requirement
149
218
  requirements:
150
- - - ! '>='
219
+ - - ">="
151
220
  - !ruby/object:Gem::Version
152
221
  version: '1.8'
153
222
  requirements: []
154
223
  rubyforge_project:
155
- rubygems_version: 2.0.7
224
+ rubygems_version: 2.2.2
156
225
  signing_key:
157
226
  specification_version: 4
158
227
  summary: Ruby JSON Schema Validator
@@ -162,6 +231,7 @@ test_files:
162
231
  - test/test_bad_schema_ref.rb
163
232
  - test/test_common_test_suite.rb
164
233
  - test/test_custom_format.rb
234
+ - test/test_definition.rb
165
235
  - test/test_extended_schema.rb
166
236
  - test/test_extends_and_additionalProperties.rb
167
237
  - test/test_files_v3.rb
@@ -169,29 +239,35 @@ test_files:
169
239
  - test/test_fragment_validation_with_ref.rb
170
240
  - test/test_full_validation.rb
171
241
  - test/test_helper.rb
242
+ - test/test_initialize_data.rb
172
243
  - test/test_jsonschema_draft1.rb
173
244
  - test/test_jsonschema_draft2.rb
174
245
  - test/test_jsonschema_draft3.rb
175
246
  - test/test_jsonschema_draft4.rb
176
247
  - test/test_list_option.rb
177
- - test/test_merge_misisng_values.rb
248
+ - test/test_merge_missing_values.rb
178
249
  - test/test_minitems.rb
179
250
  - test/test_one_of.rb
180
251
  - test/test_ruby_schema.rb
252
+ - test/test_schema_loader.rb
181
253
  - test/test_schema_type_attribute.rb
182
254
  - test/test_schema_validation.rb
183
255
  - test/test_stringify.rb
256
+ - test/test_uri_related.rb
257
+ - test/test_validator.rb
184
258
  - test/data/all_of_ref_data.json
185
259
  - test/data/any_of_ref_data.json
186
260
  - test/data/bad_data_1.json
187
261
  - test/data/good_data_1.json
188
262
  - test/data/one_of_ref_links_data.json
263
+ - test/schemas/address_microformat.json
189
264
  - test/schemas/all_of_ref_base_schema.json
190
265
  - test/schemas/all_of_ref_schema.json
191
266
  - test/schemas/any_of_ref_jane_schema.json
192
267
  - test/schemas/any_of_ref_jimmy_schema.json
193
268
  - test/schemas/any_of_ref_john_schema.json
194
269
  - test/schemas/any_of_ref_schema.json
270
+ - test/schemas/definition_schema.json
195
271
  - test/schemas/extends_and_additionalProperties-1-filename.schema.json
196
272
  - test/schemas/extends_and_additionalProperties-1-ref.schema.json
197
273
  - test/schemas/extends_and_additionalProperties-2-filename.schema.json
@@ -202,5 +278,7 @@ test_files:
202
278
  - test/schemas/good_schema_extends2.json
203
279
  - test/schemas/inner.schema.json
204
280
  - test/schemas/one_of_ref_links_schema.json
281
+ - test/schemas/ref john with spaces schema.json
282
+ - test/schemas/relative_definition_schema.json
205
283
  - test/schemas/self_link_schema.json
206
284
  - test/schemas/up_link_schema.json