json_schema 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -91,6 +91,12 @@ module JsonSchema
91
91
 
92
92
  extra = data.keys - schema.properties.keys
93
93
 
94
+ if schema.pattern_properties
95
+ schema.pattern_properties.keys.each do |pattern|
96
+ extra -= extra.select { |k| k =~ pattern }
97
+ end
98
+ end
99
+
94
100
  # schema indicates that all properties not in `properties` should be
95
101
  # validated according to subschema
96
102
  if schema.additional_properties.is_a?(Schema)
@@ -301,9 +301,13 @@ describe JsonSchema::Validator do
301
301
 
302
302
  it "validates additionalProperties boolean unsuccessfully" do
303
303
  pointer("#/definitions/app").merge!(
304
- "additionalProperties" => false
304
+ "additionalProperties" => false,
305
+ "patternProperties" => {
306
+ "^matches" => {}
307
+ }
305
308
  )
306
309
  data_sample["foo"] = "bar"
310
+ data_sample["matches-pattern"] = "yes!"
307
311
  refute validate
308
312
  assert_includes error_messages, %{Extra keys in object: foo.}
309
313
  end
@@ -322,9 +326,13 @@ describe JsonSchema::Validator do
322
326
  pointer("#/definitions/app").merge!(
323
327
  "additionalProperties" => {
324
328
  "type" => ["boolean"]
329
+ },
330
+ "patternProperties" => {
331
+ "^matches" => {}
325
332
  }
326
333
  )
327
334
  data_sample["foo"] = 4
335
+ data_sample["matches-pattern"] = "yes!"
328
336
  refute validate
329
337
  assert_includes error_messages,
330
338
  %{Expected data to be of type "boolean"; value was: 4.}
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: json_schema
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-05-26 00:00:00.000000000 Z
12
+ date: 2014-05-27 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description:
15
15
  email: