rj_schema 0.2.6 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (91) hide show
  1. checksums.yaml +4 -4
  2. data/ext/rj_schema/rapidjson/CMakeLists.txt +23 -1
  3. data/ext/rj_schema/rapidjson/appveyor.yml +49 -1
  4. data/ext/rj_schema/rapidjson/bin/types/alotofkeys.json +502 -0
  5. data/ext/rj_schema/rapidjson/bin/unittestschema/address.json +139 -0
  6. data/ext/rj_schema/rapidjson/bin/unittestschema/allOf_address.json +7 -0
  7. data/ext/rj_schema/rapidjson/bin/unittestschema/anyOf_address.json +7 -0
  8. data/ext/rj_schema/rapidjson/bin/unittestschema/idandref.json +69 -0
  9. data/ext/rj_schema/rapidjson/bin/unittestschema/oneOf_address.json +7 -0
  10. data/ext/rj_schema/rapidjson/doc/stream.md +7 -7
  11. data/ext/rj_schema/rapidjson/doc/stream.zh-cn.md +1 -1
  12. data/ext/rj_schema/rapidjson/doc/tutorial.md +15 -15
  13. data/ext/rj_schema/rapidjson/example/schemavalidator/schemavalidator.cpp +120 -0
  14. data/ext/rj_schema/rapidjson/example/traverseaspointer.cpp +39 -0
  15. data/ext/rj_schema/rapidjson/include/rapidjson/allocators.h +464 -56
  16. data/ext/rj_schema/rapidjson/include/rapidjson/cursorstreamwrapper.h +1 -1
  17. data/ext/rj_schema/rapidjson/include/rapidjson/document.h +367 -72
  18. data/ext/rj_schema/rapidjson/include/rapidjson/encodedstream.h +1 -1
  19. data/ext/rj_schema/rapidjson/include/rapidjson/encodings.h +1 -1
  20. data/ext/rj_schema/rapidjson/include/rapidjson/error/en.h +49 -1
  21. data/ext/rj_schema/rapidjson/include/rapidjson/error/error.h +56 -1
  22. data/ext/rj_schema/rapidjson/include/rapidjson/filereadstream.h +1 -1
  23. data/ext/rj_schema/rapidjson/include/rapidjson/filewritestream.h +1 -1
  24. data/ext/rj_schema/rapidjson/include/rapidjson/fwd.h +1 -1
  25. data/ext/rj_schema/rapidjson/include/rapidjson/internal/biginteger.h +1 -1
  26. data/ext/rj_schema/rapidjson/include/rapidjson/internal/clzll.h +4 -4
  27. data/ext/rj_schema/rapidjson/include/rapidjson/internal/diyfp.h +1 -1
  28. data/ext/rj_schema/rapidjson/include/rapidjson/internal/dtoa.h +1 -1
  29. data/ext/rj_schema/rapidjson/include/rapidjson/internal/ieee754.h +1 -1
  30. data/ext/rj_schema/rapidjson/include/rapidjson/internal/itoa.h +1 -1
  31. data/ext/rj_schema/rapidjson/include/rapidjson/internal/meta.h +1 -1
  32. data/ext/rj_schema/rapidjson/include/rapidjson/internal/pow10.h +1 -1
  33. data/ext/rj_schema/rapidjson/include/rapidjson/internal/regex.h +1 -1
  34. data/ext/rj_schema/rapidjson/include/rapidjson/internal/stack.h +1 -1
  35. data/ext/rj_schema/rapidjson/include/rapidjson/internal/strfunc.h +15 -1
  36. data/ext/rj_schema/rapidjson/include/rapidjson/internal/strtod.h +1 -1
  37. data/ext/rj_schema/rapidjson/include/rapidjson/internal/swap.h +1 -1
  38. data/ext/rj_schema/rapidjson/include/rapidjson/istreamwrapper.h +1 -1
  39. data/ext/rj_schema/rapidjson/include/rapidjson/memorybuffer.h +1 -1
  40. data/ext/rj_schema/rapidjson/include/rapidjson/memorystream.h +1 -1
  41. data/ext/rj_schema/rapidjson/include/rapidjson/ostreamwrapper.h +1 -1
  42. data/ext/rj_schema/rapidjson/include/rapidjson/pointer.h +69 -2
  43. data/ext/rj_schema/rapidjson/include/rapidjson/prettywriter.h +1 -1
  44. data/ext/rj_schema/rapidjson/include/rapidjson/rapidjson.h +77 -12
  45. data/ext/rj_schema/rapidjson/include/rapidjson/reader.h +17 -9
  46. data/ext/rj_schema/rapidjson/include/rapidjson/schema.h +558 -259
  47. data/ext/rj_schema/rapidjson/include/rapidjson/stream.h +1 -1
  48. data/ext/rj_schema/rapidjson/include/rapidjson/stringbuffer.h +1 -1
  49. data/ext/rj_schema/rapidjson/include/rapidjson/uri.h +466 -0
  50. data/ext/rj_schema/rapidjson/include/rapidjson/writer.h +3 -3
  51. data/ext/rj_schema/rapidjson/readme.md +3 -3
  52. data/ext/rj_schema/rapidjson/readme.zh-cn.md +2 -2
  53. data/ext/rj_schema/rapidjson/test/perftest/misctest.cpp +1 -1
  54. data/ext/rj_schema/rapidjson/test/perftest/perftest.cpp +1 -1
  55. data/ext/rj_schema/rapidjson/test/perftest/perftest.h +6 -5
  56. data/ext/rj_schema/rapidjson/test/perftest/platformtest.cpp +1 -1
  57. data/ext/rj_schema/rapidjson/test/perftest/rapidjsontest.cpp +21 -3
  58. data/ext/rj_schema/rapidjson/test/unittest/CMakeLists.txt +3 -0
  59. data/ext/rj_schema/rapidjson/test/unittest/allocatorstest.cpp +194 -2
  60. data/ext/rj_schema/rapidjson/test/unittest/bigintegertest.cpp +1 -1
  61. data/ext/rj_schema/rapidjson/test/unittest/clzlltest.cpp +34 -0
  62. data/ext/rj_schema/rapidjson/test/unittest/cursorstreamwrappertest.cpp +1 -1
  63. data/ext/rj_schema/rapidjson/test/unittest/documenttest.cpp +3 -1
  64. data/ext/rj_schema/rapidjson/test/unittest/dtoatest.cpp +1 -1
  65. data/ext/rj_schema/rapidjson/test/unittest/encodedstreamtest.cpp +1 -1
  66. data/ext/rj_schema/rapidjson/test/unittest/encodingstest.cpp +1 -1
  67. data/ext/rj_schema/rapidjson/test/unittest/filestreamtest.cpp +1 -1
  68. data/ext/rj_schema/rapidjson/test/unittest/fwdtest.cpp +1 -1
  69. data/ext/rj_schema/rapidjson/test/unittest/istreamwrappertest.cpp +1 -1
  70. data/ext/rj_schema/rapidjson/test/unittest/itoatest.cpp +1 -1
  71. data/ext/rj_schema/rapidjson/test/unittest/jsoncheckertest.cpp +1 -1
  72. data/ext/rj_schema/rapidjson/test/unittest/namespacetest.cpp +1 -1
  73. data/ext/rj_schema/rapidjson/test/unittest/ostreamwrappertest.cpp +1 -1
  74. data/ext/rj_schema/rapidjson/test/unittest/platformtest.cpp +40 -0
  75. data/ext/rj_schema/rapidjson/test/unittest/pointertest.cpp +95 -3
  76. data/ext/rj_schema/rapidjson/test/unittest/prettywritertest.cpp +1 -1
  77. data/ext/rj_schema/rapidjson/test/unittest/readertest.cpp +4 -1
  78. data/ext/rj_schema/rapidjson/test/unittest/regextest.cpp +1 -1
  79. data/ext/rj_schema/rapidjson/test/unittest/schematest.cpp +961 -81
  80. data/ext/rj_schema/rapidjson/test/unittest/simdtest.cpp +1 -1
  81. data/ext/rj_schema/rapidjson/test/unittest/strfunctest.cpp +1 -1
  82. data/ext/rj_schema/rapidjson/test/unittest/stringbuffertest.cpp +1 -1
  83. data/ext/rj_schema/rapidjson/test/unittest/strtodtest.cpp +1 -1
  84. data/ext/rj_schema/rapidjson/test/unittest/unittest.cpp +1 -1
  85. data/ext/rj_schema/rapidjson/test/unittest/unittest.h +1 -1
  86. data/ext/rj_schema/rapidjson/test/unittest/uritest.cpp +718 -0
  87. data/ext/rj_schema/rapidjson/test/unittest/valuetest.cpp +13 -3
  88. data/ext/rj_schema/rapidjson/test/unittest/writertest.cpp +1 -1
  89. data/ext/rj_schema/rj_schema.cpp +161 -17
  90. data/lib/rj_schema.rb +1 -1
  91. metadata +14 -3
@@ -1,6 +1,6 @@
1
1
  // Tencent is pleased to support the open source community by making RapidJSON available.
2
2
  //
3
- // Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
3
+ // Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
4
4
  //
5
5
  // Licensed under the MIT License (the "License"); you may not use this file except
6
6
  // in compliance with the License. You may obtain a copy of the License at
@@ -1078,9 +1078,9 @@ static void TestArray(T& x, Allocator& allocator) {
1078
1078
  }
1079
1079
 
1080
1080
  TEST(Value, Array) {
1081
+ Value::AllocatorType allocator;
1081
1082
  Value x(kArrayType);
1082
1083
  const Value& y = x;
1083
- Value::AllocatorType allocator;
1084
1084
 
1085
1085
  EXPECT_EQ(kArrayType, x.GetType());
1086
1086
  EXPECT_TRUE(x.IsArray());
@@ -1119,6 +1119,16 @@ TEST(Value, Array) {
1119
1119
  z.SetArray();
1120
1120
  EXPECT_TRUE(z.IsArray());
1121
1121
  EXPECT_TRUE(z.Empty());
1122
+
1123
+ // PR #1503: assign from inner Value
1124
+ {
1125
+ CrtAllocator a; // Free() is not a noop
1126
+ GenericValue<UTF8<>, CrtAllocator> nullValue;
1127
+ GenericValue<UTF8<>, CrtAllocator> arrayValue(kArrayType);
1128
+ arrayValue.PushBack(nullValue, a);
1129
+ arrayValue = arrayValue[0]; // shouldn't crash (use after free)
1130
+ EXPECT_TRUE(arrayValue.IsNull());
1131
+ }
1122
1132
  }
1123
1133
 
1124
1134
  TEST(Value, ArrayHelper) {
@@ -1481,9 +1491,9 @@ static void TestObject(T& x, Allocator& allocator) {
1481
1491
  }
1482
1492
 
1483
1493
  TEST(Value, Object) {
1494
+ Value::AllocatorType allocator;
1484
1495
  Value x(kObjectType);
1485
1496
  const Value& y = x; // const version
1486
- Value::AllocatorType allocator;
1487
1497
 
1488
1498
  EXPECT_EQ(kObjectType, x.GetType());
1489
1499
  EXPECT_TRUE(x.IsObject());
@@ -1,6 +1,6 @@
1
1
  // Tencent is pleased to support the open source community by making RapidJSON available.
2
2
  //
3
- // Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
3
+ // Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
4
4
  //
5
5
  // Licensed under the MIT License (the "License"); you may not use this file except
6
6
  // in compliance with the License. You may obtain a copy of the License at
@@ -9,10 +9,11 @@
9
9
  #endif
10
10
 
11
11
  #include <unordered_map>
12
+ #include <sstream>
12
13
  #include <ruby.h>
13
14
  #include <ruby/version.h>
14
15
 
15
- #if (RUBY_API_VERSION_MAJOR > 2 || (RUBY_API_VERSION_MAJOR == 2 && RUBY_API_VERSION_MINOR >= 7)) && defined(__GLIBC__)
16
+ #if (RUBY_API_VERSION_MAJOR > 2 || (RUBY_API_VERSION_MAJOR == 2 && RUBY_API_VERSION_MINOR >= 7)) && !defined(TRUFFLERUBY)
16
17
  namespace std {
17
18
  static inline void* ruby_nonempty_memcpy(void *dest, const void *src, size_t n) {
18
19
  return ::ruby_nonempty_memcpy(dest, src, n);
@@ -25,8 +26,11 @@ namespace std {
25
26
 
26
27
  #include <rapidjson/schema.h>
27
28
  #include <rapidjson/filereadstream.h>
28
- #include <rapidjson/prettywriter.h>
29
+ #include <rapidjson/writer.h>
30
+ #include <rapidjson/error/error.h>
31
+ #include <rapidjson/error/en.h>
29
32
 
33
+ typedef rapidjson::GenericValue<rapidjson::UTF8<>, rapidjson::CrtAllocator> ErrorType;
30
34
  typedef std::unordered_map<std::string, VALUE> SchemaInput;
31
35
  typedef std::unordered_map<ID, rapidjson::SchemaDocument> SchemaCollection;
32
36
  struct SchemaManager;
@@ -93,25 +97,149 @@ const rapidjson::SchemaDocument* SchemaManager::provide(const char* uri, rapidjs
93
97
  throw std::invalid_argument(std::string("$ref remote schema not provided: ") + uri);
94
98
  }
95
99
 
96
- VALUE perform_validation(VALUE self, VALUE schema_arg, VALUE document_arg, bool with_errors) {
100
+ static void CreateHumanErrorMessages(std::ostringstream& ss, const ErrorType& errors, size_t depth = 0, const char* context = 0) {
101
+ auto get_string = [](const ErrorType& val) -> std::string {
102
+ if (val.IsString())
103
+ return val.GetString();
104
+ else if (val.IsDouble())
105
+ return std::to_string(val.GetDouble());
106
+ else if (val.IsUint())
107
+ return std::to_string(val.GetUint());
108
+ else if (val.IsInt())
109
+ return std::to_string(val.GetInt());
110
+ else if (val.IsUint64())
111
+ return std::to_string(val.GetUint64());
112
+ else if (val.IsInt64())
113
+ return std::to_string(val.GetInt64());
114
+ else if (val.IsBool() && val.GetBool())
115
+ return "true";
116
+ else if (val.IsBool())
117
+ return "false";
118
+ else if (val.IsFloat())
119
+ return std::to_string(val.GetFloat());
120
+ return "";
121
+ };
122
+
123
+ auto handle_error = [&ss, &get_string](const char* errorName, const ErrorType& error, size_t depth, const char* context) {
124
+ if (!error.ObjectEmpty()) {
125
+ int code = error["errorCode"].GetInt();
126
+ std::string message(GetValidateError_En(static_cast<rapidjson::ValidateErrorCode>(code)));
127
+
128
+ for (const auto& member : error.GetObject()) {
129
+ std::string insertName("%");
130
+ insertName += member.name.GetString();
131
+ std::size_t insertPos = message.find(insertName);
132
+
133
+ if (insertPos != std::string::npos) {
134
+ std::string insertString("");
135
+ const ErrorType& insert = member.value;
136
+
137
+ if (insert.IsArray()) {
138
+ for (ErrorType::ConstValueIterator itemsItr = insert.Begin(); itemsItr != insert.End(); ++itemsItr) {
139
+ if (itemsItr != insert.Begin())
140
+ insertString += ",";
141
+
142
+ insertString += get_string(*itemsItr);
143
+ }
144
+ }
145
+ else {
146
+ insertString += get_string(insert);
147
+ }
148
+
149
+ message.replace(insertPos, insertName.length(), insertString);
150
+ }
151
+ }
152
+
153
+ std::string indent(depth * 2, ' ');
154
+ ss << indent << "Error Name: " << errorName << std::endl;
155
+ ss << indent << "Message: " << message << std::endl;
156
+ ss << indent << "Instance: " << error["instanceRef"].GetString() << std::endl;
157
+ ss << indent << "Schema: " << error["schemaRef"].GetString() << std::endl;
158
+ if (depth > 0)
159
+ ss << indent << "Context: " << context << std::endl;
160
+ ss << std::endl;
161
+
162
+ if (error.HasMember("errors")) {
163
+ depth++;
164
+ const ErrorType& childErrors = error["errors"];
165
+
166
+ if (childErrors.IsArray()) {
167
+ for (const auto& item : childErrors.GetArray()) {
168
+ CreateHumanErrorMessages(ss, item, depth, errorName);
169
+ }
170
+ }
171
+ else if (childErrors.IsObject()) {
172
+ for (const auto& member : childErrors.GetObject()) {
173
+ CreateHumanErrorMessages(ss, member.value, depth, errorName);
174
+ }
175
+ }
176
+ }
177
+ }
178
+ };
179
+
180
+ for (const auto& member : errors.GetObject()) {
181
+ const char* errorName = member.name.GetString();
182
+ const ErrorType& errorContent = member.value;
183
+
184
+ if (errorContent.IsArray()) {
185
+ for (const auto& item : errorContent.GetArray()) {
186
+ handle_error(errorName, item, depth, context);
187
+ }
188
+ }
189
+ else if (errorContent.IsObject()) {
190
+ handle_error(errorName, errorContent, depth, context);
191
+ }
192
+ }
193
+ }
194
+
195
+ VALUE perform_validation(VALUE self, VALUE schema_arg, VALUE document_arg, VALUE continue_on_error, VALUE machine_errors, VALUE human_errors) {
196
+ if (continue_on_error == Qnil)
197
+ continue_on_error = Qfalse;
198
+ if (machine_errors == Qnil)
199
+ machine_errors = Qtrue;
200
+ if (human_errors == Qnil)
201
+ human_errors = Qfalse;
202
+
97
203
  try {
98
204
  SchemaManager* schema_manager;
99
205
  Data_Get_Struct(self, SchemaManager, schema_manager);
206
+
100
207
  auto document = parse_document(document_arg);
101
- auto validate = [with_errors, &document](const rapidjson::SchemaDocument& schema) -> VALUE {
208
+ auto validate = [&continue_on_error, &machine_errors, &human_errors, &document](const rapidjson::SchemaDocument& schema) -> VALUE {
102
209
  rapidjson::SchemaValidator validator(schema);
103
- if (document.Accept(validator)) {
104
- return with_errors ? rb_ary_new() : Qtrue;
105
- }
106
- else {
107
- if (!with_errors)
108
- return Qfalse;
210
+
211
+ if (continue_on_error == Qtrue)
212
+ validator.SetValidateFlags(rapidjson::RAPIDJSON_VALIDATE_DEFAULT_FLAGS | rapidjson::kValidateContinueOnErrorFlag);
213
+
214
+ document.Accept(validator);
215
+
216
+ if (machine_errors == Qfalse && human_errors == Qfalse)
217
+ return validator.IsValid() ? Qtrue : Qfalse;
218
+
219
+ VALUE result = rb_hash_new();
220
+
221
+ if (machine_errors == Qtrue) {
109
222
  rapidjson::StringBuffer buffer;
110
- rapidjson::PrettyWriter<rapidjson::StringBuffer> writer(buffer);
223
+ rapidjson::Writer<rapidjson::StringBuffer> writer(buffer);
111
224
  validator.GetError().Accept(writer);
112
- VALUE errors = rb_funcall(rb_const_get(rb_cObject, rb_intern("JSON")), rb_intern("parse"), 1, rb_str_new_cstr(buffer.GetString()));
113
- return RB_TYPE_P(errors, T_HASH) ? rb_ary_new4(1, &errors) : errors;
225
+ rb_hash_aset(
226
+ result,
227
+ ID2SYM(rb_intern("machine_errors")),
228
+ rb_funcall(rb_const_get(rb_cObject, rb_intern("JSON")), rb_intern("parse"), 1, rb_str_new_cstr(buffer.GetString()))
229
+ );
230
+ }
231
+
232
+ if (human_errors == Qtrue) {
233
+ std::ostringstream ss;
234
+ CreateHumanErrorMessages(ss, validator.GetError());
235
+ rb_hash_aset(
236
+ result,
237
+ ID2SYM(rb_intern("human_errors")),
238
+ rb_str_new_cstr(ss.str().c_str())
239
+ );
114
240
  }
241
+
242
+ return result;
115
243
  };
116
244
 
117
245
  if (SYMBOL_P(schema_arg)) {
@@ -135,12 +263,28 @@ VALUE perform_validation(VALUE self, VALUE schema_arg, VALUE document_arg, bool
135
263
  }
136
264
  }
137
265
 
138
- extern "C" VALUE validator_validate(VALUE self, VALUE schema_arg, VALUE document_arg) {
139
- return perform_validation(self, schema_arg, document_arg, true);
266
+ extern "C" VALUE validator_validate(int argc, VALUE* argv, VALUE self) {
267
+ VALUE schema_arg, document_arg, opts;
268
+
269
+ rb_scan_args(argc, argv, "2:", &schema_arg, &document_arg, &opts);
270
+
271
+ if (NIL_P(opts))
272
+ opts = rb_hash_new();
273
+
274
+ VALUE result = perform_validation(
275
+ self,
276
+ schema_arg,
277
+ document_arg,
278
+ rb_hash_aref(opts, ID2SYM(rb_intern("continue_on_error"))),
279
+ rb_hash_aref(opts, ID2SYM(rb_intern("machine_errors"))),
280
+ rb_hash_aref(opts, ID2SYM(rb_intern("human_errors")))
281
+ );
282
+
283
+ return (result == Qtrue || result == Qfalse) ? rb_hash_new() : result;
140
284
  }
141
285
 
142
286
  extern "C" VALUE validator_valid(VALUE self, VALUE schema_arg, VALUE document_arg) {
143
- return perform_validation(self, schema_arg, document_arg, false);
287
+ return perform_validation(self, schema_arg, document_arg, Qfalse, Qfalse, Qfalse);
144
288
  }
145
289
 
146
290
  extern "C" void validator_free(SchemaManager* schema_manager) {
@@ -191,6 +335,6 @@ extern "C" void Init_rj_schema(void) {
191
335
 
192
336
  rb_define_alloc_func(cValidator, validator_alloc);
193
337
  rb_define_method(cValidator, "initialize", reinterpret_cast<VALUE(*)(...)>(validator_initialize), -1);
194
- rb_define_method(cValidator, "validate", reinterpret_cast<VALUE(*)(...)>(validator_validate), 2);
338
+ rb_define_method(cValidator, "validate", reinterpret_cast<VALUE(*)(...)>(validator_validate), -1);
195
339
  rb_define_method(cValidator, "valid?", reinterpret_cast<VALUE(*)(...)>(validator_valid), 2);
196
340
  }
data/lib/rj_schema.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require 'json'
2
2
 
3
3
  class RjSchema
4
- VERSION = '0.2.6'
4
+ VERSION = '1.0.3'
5
5
  end
6
6
 
7
7
  require 'rj_schema/rj_schema'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rj_schema
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christian Semmler
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-18 00:00:00.000000000 Z
11
+ date: 2021-09-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake-compiler
@@ -231,6 +231,7 @@ files:
231
231
  - ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/type.json
232
232
  - ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/uniqueItems.json
233
233
  - ext/rj_schema/rapidjson/bin/jsonschema/tox.ini
234
+ - ext/rj_schema/rapidjson/bin/types/alotofkeys.json
234
235
  - ext/rj_schema/rapidjson/bin/types/booleans.json
235
236
  - ext/rj_schema/rapidjson/bin/types/floats.json
236
237
  - ext/rj_schema/rapidjson/bin/types/guids.json
@@ -239,6 +240,11 @@ files:
239
240
  - ext/rj_schema/rapidjson/bin/types/nulls.json
240
241
  - ext/rj_schema/rapidjson/bin/types/paragraphs.json
241
242
  - ext/rj_schema/rapidjson/bin/types/readme.txt
243
+ - ext/rj_schema/rapidjson/bin/unittestschema/address.json
244
+ - ext/rj_schema/rapidjson/bin/unittestschema/allOf_address.json
245
+ - ext/rj_schema/rapidjson/bin/unittestschema/anyOf_address.json
246
+ - ext/rj_schema/rapidjson/bin/unittestschema/idandref.json
247
+ - ext/rj_schema/rapidjson/bin/unittestschema/oneOf_address.json
242
248
  - ext/rj_schema/rapidjson/contrib/natvis/LICENSE
243
249
  - ext/rj_schema/rapidjson/contrib/natvis/README.md
244
250
  - ext/rj_schema/rapidjson/contrib/natvis/rapidjson.natvis
@@ -317,6 +323,7 @@ files:
317
323
  - ext/rj_schema/rapidjson/example/simplereader/simplereader.cpp
318
324
  - ext/rj_schema/rapidjson/example/simplewriter/simplewriter.cpp
319
325
  - ext/rj_schema/rapidjson/example/sortkeys/sortkeys.cpp
326
+ - ext/rj_schema/rapidjson/example/traverseaspointer.cpp
320
327
  - ext/rj_schema/rapidjson/example/tutorial/tutorial.cpp
321
328
  - ext/rj_schema/rapidjson/include/rapidjson/allocators.h
322
329
  - ext/rj_schema/rapidjson/include/rapidjson/cursorstreamwrapper.h
@@ -354,6 +361,7 @@ files:
354
361
  - ext/rj_schema/rapidjson/include/rapidjson/schema.h
355
362
  - ext/rj_schema/rapidjson/include/rapidjson/stream.h
356
363
  - ext/rj_schema/rapidjson/include/rapidjson/stringbuffer.h
364
+ - ext/rj_schema/rapidjson/include/rapidjson/uri.h
357
365
  - ext/rj_schema/rapidjson/include/rapidjson/writer.h
358
366
  - ext/rj_schema/rapidjson/include_dirs.js
359
367
  - ext/rj_schema/rapidjson/library.json
@@ -373,6 +381,7 @@ files:
373
381
  - ext/rj_schema/rapidjson/test/unittest/CMakeLists.txt
374
382
  - ext/rj_schema/rapidjson/test/unittest/allocatorstest.cpp
375
383
  - ext/rj_schema/rapidjson/test/unittest/bigintegertest.cpp
384
+ - ext/rj_schema/rapidjson/test/unittest/clzlltest.cpp
376
385
  - ext/rj_schema/rapidjson/test/unittest/cursorstreamwrappertest.cpp
377
386
  - ext/rj_schema/rapidjson/test/unittest/documenttest.cpp
378
387
  - ext/rj_schema/rapidjson/test/unittest/dtoatest.cpp
@@ -385,6 +394,7 @@ files:
385
394
  - ext/rj_schema/rapidjson/test/unittest/jsoncheckertest.cpp
386
395
  - ext/rj_schema/rapidjson/test/unittest/namespacetest.cpp
387
396
  - ext/rj_schema/rapidjson/test/unittest/ostreamwrappertest.cpp
397
+ - ext/rj_schema/rapidjson/test/unittest/platformtest.cpp
388
398
  - ext/rj_schema/rapidjson/test/unittest/pointertest.cpp
389
399
  - ext/rj_schema/rapidjson/test/unittest/prettywritertest.cpp
390
400
  - ext/rj_schema/rapidjson/test/unittest/readertest.cpp
@@ -396,6 +406,7 @@ files:
396
406
  - ext/rj_schema/rapidjson/test/unittest/strtodtest.cpp
397
407
  - ext/rj_schema/rapidjson/test/unittest/unittest.cpp
398
408
  - ext/rj_schema/rapidjson/test/unittest/unittest.h
409
+ - ext/rj_schema/rapidjson/test/unittest/uritest.cpp
399
410
  - ext/rj_schema/rapidjson/test/unittest/valuetest.cpp
400
411
  - ext/rj_schema/rapidjson/test/unittest/writertest.cpp
401
412
  - ext/rj_schema/rapidjson/test/valgrind.supp
@@ -737,7 +748,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
737
748
  - !ruby/object:Gem::Version
738
749
  version: '0'
739
750
  requirements: []
740
- rubygems_version: 3.0.3
751
+ rubygems_version: 3.2.22
741
752
  signing_key:
742
753
  specification_version: 4
743
754
  summary: JSON schema validation with RapidJSON