json-schema 2.2.4 → 2.2.5

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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NTFiZGMyMzcwNTE3MmZlNzliZjQ1MTZkOGY5NjcxMGM4NjhhNjZkYQ==
4
+ ZWEyNDAyZWRhMzlhYTFjZjdhNDA0NTFkOGE5NmY3OWVmN2JlYjFmOA==
5
5
  data.tar.gz: !binary |-
6
- Yzc3NTEwMjg3MzdlOGJkOTJlNWVmMGQzYjFhMjRhNzZjZjY3NzI3Mg==
6
+ NDg2MjAzYWUxZjYzM2JlNTVkNTY0YTcyNjUwYjk4MDI3OWQyZjVmOA==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- MTk3ZjM3YWY4MTExOGI0OGFlOTdhNjc0Y2U1YjdiNzBhNzJiNzM4NjcyMjM4
10
- NDcwOGM4ZWMxOTgyM2U0NjY4MGZjMmYyMmQ2MDAyZDg4NzdjY2RjZWE0YmY5
11
- MjJlMjk0MGJlNmViM2VjOGU1NDAxNWYzZWVhMTNkOWIzOTdhZWY=
9
+ YmNjZDBkNjg0MTVmMmU0NDdkZmI0NjcyODgwNjZmMDIzMTBiMmJkYzUwZDYx
10
+ NGI3NTY5ZDFmNTI3NmIxMTQyOTVjODNjNWNjOWMyY2E1YmUyMzY5YjJhMmIz
11
+ MWUwNmJmOGE5YzMxOTNhMjU2ZjIwNjYzNGE1ODgzYzc4NWRkYWI=
12
12
  data.tar.gz: !binary |-
13
- NGExNmQzMDMxZWVjODhiZWQxMzY1MTZkOWZkMjU0ZDczZGY0ZDA3MjMxYzE2
14
- MDNiNDZkOTg5ZDE3ZmZlNTQxMjQwNTQ5ZmQ2ODUyOWEwNDg1YTFmNTUyMmFk
15
- N2Y3NzE2NzE2YzA5Y2Y5MDg3N2I1NDBlNTM5YjJmMDcyNDNiMTI=
13
+ YzQ0NTQ1NmNiOWUwNDZjNzIzNTY0OGIzMzM3MzRkYzFhNzQxMTVkYjdmYjQ1
14
+ OGRmYjUzNjhjZjlmMjc3ZGUyODlhYzU0ZjcwMGQ2YjU1NDU0NmYxMGRiNGZj
15
+ M2E5ZWIwMmMwMDJkNzhlNDQ2YzI0NTJjMDg1YWVkOTBjMjgwNDQ=
@@ -24,7 +24,7 @@ From the git repo:
24
24
 
25
25
  <pre>
26
26
  $ gem build json-schema.gemspec
27
- $ gem install json-schema-2.2.4.gem
27
+ $ gem install json-schema-2.2.5.gem
28
28
  </pre>
29
29
 
30
30
 
@@ -78,7 +78,7 @@ JSON::Validator.validate('user.json', data, :list => true)
78
78
 
79
79
  h3. Strictly validate an object's properties
80
80
 
81
- With the <code>:strict</code>code> option, validation fails when an object contains properties that are not defined in the schema's property list or doesn't match the <code>additionalProperties</code> property. Furthermore, all properties are treated as <code>required</code> by default.
81
+ With the <code>:strict</code> option, validation fails when an object contains properties that are not defined in the schema's property list or doesn't match the <code>additionalProperties</code> property. Furthermore, all properties are treated as <code>required</code> by default.
82
82
 
83
83
  <pre>
84
84
  require 'rubygems'
@@ -107,7 +107,7 @@ module JSON
107
107
  if data.is_a?(String)
108
108
  error_message = "The property '#{build_fragment(fragments)}' must be a valid URI"
109
109
  begin
110
- URI.parse(data)
110
+ URI.parse(URI.escape(data))
111
111
  rescue URI::InvalidURIError
112
112
  validation_error(processor, error_message, fragments, current_schema, self, options[:record_errors])
113
113
  end
@@ -1,3 +1,4 @@
1
+ # encoding: utf-8
1
2
  require 'test/unit'
2
3
  require File.dirname(__FILE__) + '/../lib/json-schema'
3
4
 
@@ -1092,6 +1093,7 @@ class JSONSchemaDraft3Test < Test::Unit::TestCase
1092
1093
  def test_format_uri
1093
1094
  data1 = {"a" => "http://gitbuh.com"}
1094
1095
  data2 = {"a" => "::boo"}
1096
+ data3 = {"a" => "http://ja.wikipedia.org/wiki/メインページ"}
1095
1097
 
1096
1098
  schema = {
1097
1099
  "$schema" => "http://json-schema.org/draft-03/schema#",
@@ -1101,6 +1103,7 @@ class JSONSchemaDraft3Test < Test::Unit::TestCase
1101
1103
 
1102
1104
  assert(JSON::Validator.validate(schema,data1))
1103
1105
  assert(!JSON::Validator.validate(schema,data2))
1106
+ assert(JSON::Validator.validate(schema,data3))
1104
1107
  end
1105
1108
 
1106
1109
 
@@ -1,3 +1,4 @@
1
+ # encoding: utf-8
1
2
  require 'test/unit'
2
3
  require File.dirname(__FILE__) + '/../lib/json-schema'
3
4
 
@@ -1011,6 +1012,7 @@ class JSONSchemaDraft4Test < Test::Unit::TestCase
1011
1012
  def test_format_uri
1012
1013
  data1 = {"a" => "http://gitbuh.com"}
1013
1014
  data2 = {"a" => "::boo"}
1015
+ data3 = {"a" => "http://ja.wikipedia.org/wiki/メインページ"}
1014
1016
 
1015
1017
  schema = {
1016
1018
  "$schema" => "http://json-schema.org/draft-04/schema#",
@@ -1020,6 +1022,7 @@ class JSONSchemaDraft4Test < Test::Unit::TestCase
1020
1022
 
1021
1023
  assert(JSON::Validator.validate(schema,data1))
1022
1024
  assert(!JSON::Validator.validate(schema,data2))
1025
+ assert(JSON::Validator.validate(schema,data3))
1023
1026
  end
1024
1027
 
1025
1028
 
@@ -0,0 +1,71 @@
1
+ require 'test/unit'
2
+ require File.dirname(__FILE__) + '/../lib/json-schema'
3
+
4
+ class SuiteTest < Test::Unit::TestCase
5
+ def test_draft_4
6
+ print "\n\nDRAFT-04 SUITE TESTS\n"
7
+ print "--------------------\n"
8
+ tests = 0
9
+ passes = 0
10
+ Dir.glob(File.dirname(__FILE__) + "/suite/tests/draft4/*.json").each do |file_path|
11
+ data = JSON.parse(File.read(file_path))
12
+ data.each do |test_desc|
13
+ puts "Suite Test: #{test_desc["description"]}"
14
+ test_desc["tests"].each do |test|
15
+ tests = tests + 1
16
+ print " - #{test["description"]}: "
17
+ begin
18
+ if JSON::Validator.validate(test_desc["schema"], test["data"], :version => :draft4) == test["valid"]
19
+ puts green("pass")
20
+ passes = passes + 1
21
+ else
22
+ puts "#{red("fail")} - expected #{test["valid"]}, got #{JSON::Validator.validate(test_desc["schema"], test["data"], :version => :draft4)}"
23
+ end
24
+ rescue
25
+ puts "#{red("fail")} - exception thrown"
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+
32
+ def test_draft_3
33
+ print "\n\nDRAFT-03 SUITE TESTS\n"
34
+ print "--------------------\n"
35
+
36
+ tests = 0
37
+ passes = 0
38
+ Dir.glob(File.dirname(__FILE__) + "/suite/tests/draft3/*.json").each do |file_path|
39
+ data = JSON.parse(File.read(file_path))
40
+ data.each do |test_desc|
41
+ puts "Suite Test: #{test_desc["description"]}"
42
+ test_desc["tests"].each do |test|
43
+ tests = tests + 1
44
+ print " - #{test["description"]}: "
45
+ begin
46
+ if JSON::Validator.validate(test_desc["schema"], test["data"], :version => :draft3) == test["valid"]
47
+ puts green("pass")
48
+ passes = passes + 1
49
+ else
50
+ puts "#{red("fail")} - expected #{test["valid"]}, got #{JSON::Validator.validate(test_desc["schema"], test["data"], :version => :draft3)}"
51
+ end
52
+ rescue
53
+ puts "#{red("fail")} - exception thrown"
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
59
+
60
+ def colorize(color_code,text)
61
+ "\e[#{color_code}m#{text}\e[0m"
62
+ end
63
+
64
+ def red(text)
65
+ colorize(31,text)
66
+ end
67
+
68
+ def green(text)
69
+ colorize(32,text)
70
+ end
71
+ 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: 2.2.4
4
+ version: 2.2.5
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-07-19 00:00:00.000000000 Z
11
+ date: 2014-09-05 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email: hoxworth@gmail.com
@@ -88,6 +88,7 @@ files:
88
88
  - test/test_ruby_schema.rb
89
89
  - test/test_schema_type_attribute.rb
90
90
  - test/test_schema_validation.rb
91
+ - test/test_suite.rb
91
92
  - test/data/all_of_ref_data.json
92
93
  - test/data/any_of_ref_data.json
93
94
  - test/data/bad_data_1.json
@@ -153,6 +154,7 @@ test_files:
153
154
  - test/test_ruby_schema.rb
154
155
  - test/test_schema_type_attribute.rb
155
156
  - test/test_schema_validation.rb
157
+ - test/test_suite.rb
156
158
  - test/data/all_of_ref_data.json
157
159
  - test/data/any_of_ref_data.json
158
160
  - test/data/bad_data_1.json