json-schema 2.4.1 → 2.5.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.
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