rj_schema 0.2.6 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ext/rj_schema/rapidjson/bin/unittestschema/address.json +139 -0
- data/ext/rj_schema/rapidjson/bin/unittestschema/allOf_address.json +7 -0
- data/ext/rj_schema/rapidjson/bin/unittestschema/anyOf_address.json +7 -0
- data/ext/rj_schema/rapidjson/bin/unittestschema/oneOf_address.json +7 -0
- data/ext/rj_schema/rapidjson/example/schemavalidator/schemavalidator.cpp +118 -0
- data/ext/rj_schema/rapidjson/include/rapidjson/allocators.h +5 -5
- data/ext/rj_schema/rapidjson/include/rapidjson/cursorstreamwrapper.h +1 -1
- data/ext/rj_schema/rapidjson/include/rapidjson/document.h +17 -12
- data/ext/rj_schema/rapidjson/include/rapidjson/encodedstream.h +1 -1
- data/ext/rj_schema/rapidjson/include/rapidjson/encodings.h +1 -1
- data/ext/rj_schema/rapidjson/include/rapidjson/error/en.h +49 -1
- data/ext/rj_schema/rapidjson/include/rapidjson/error/error.h +56 -1
- data/ext/rj_schema/rapidjson/include/rapidjson/filereadstream.h +1 -1
- data/ext/rj_schema/rapidjson/include/rapidjson/filewritestream.h +1 -1
- data/ext/rj_schema/rapidjson/include/rapidjson/fwd.h +1 -1
- data/ext/rj_schema/rapidjson/include/rapidjson/internal/biginteger.h +1 -1
- data/ext/rj_schema/rapidjson/include/rapidjson/internal/clzll.h +4 -4
- data/ext/rj_schema/rapidjson/include/rapidjson/internal/diyfp.h +1 -1
- data/ext/rj_schema/rapidjson/include/rapidjson/internal/dtoa.h +1 -1
- data/ext/rj_schema/rapidjson/include/rapidjson/internal/ieee754.h +1 -1
- data/ext/rj_schema/rapidjson/include/rapidjson/internal/itoa.h +1 -1
- data/ext/rj_schema/rapidjson/include/rapidjson/internal/meta.h +1 -1
- data/ext/rj_schema/rapidjson/include/rapidjson/internal/pow10.h +1 -1
- data/ext/rj_schema/rapidjson/include/rapidjson/internal/regex.h +1 -1
- data/ext/rj_schema/rapidjson/include/rapidjson/internal/stack.h +1 -1
- data/ext/rj_schema/rapidjson/include/rapidjson/internal/strfunc.h +1 -1
- data/ext/rj_schema/rapidjson/include/rapidjson/internal/strtod.h +1 -1
- data/ext/rj_schema/rapidjson/include/rapidjson/internal/swap.h +1 -1
- data/ext/rj_schema/rapidjson/include/rapidjson/istreamwrapper.h +1 -1
- data/ext/rj_schema/rapidjson/include/rapidjson/memorybuffer.h +1 -1
- data/ext/rj_schema/rapidjson/include/rapidjson/memorystream.h +1 -1
- data/ext/rj_schema/rapidjson/include/rapidjson/ostreamwrapper.h +1 -1
- data/ext/rj_schema/rapidjson/include/rapidjson/pointer.h +1 -1
- data/ext/rj_schema/rapidjson/include/rapidjson/prettywriter.h +1 -1
- data/ext/rj_schema/rapidjson/include/rapidjson/rapidjson.h +17 -1
- data/ext/rj_schema/rapidjson/include/rapidjson/reader.h +17 -9
- data/ext/rj_schema/rapidjson/include/rapidjson/schema.h +311 -159
- data/ext/rj_schema/rapidjson/include/rapidjson/stream.h +1 -1
- data/ext/rj_schema/rapidjson/include/rapidjson/stringbuffer.h +1 -1
- data/ext/rj_schema/rapidjson/include/rapidjson/writer.h +3 -3
- data/ext/rj_schema/rapidjson/readme.md +3 -3
- data/ext/rj_schema/rapidjson/readme.zh-cn.md +2 -2
- data/ext/rj_schema/rapidjson/test/perftest/misctest.cpp +1 -1
- data/ext/rj_schema/rapidjson/test/perftest/perftest.cpp +1 -1
- data/ext/rj_schema/rapidjson/test/perftest/perftest.h +1 -1
- data/ext/rj_schema/rapidjson/test/perftest/platformtest.cpp +1 -1
- data/ext/rj_schema/rapidjson/test/perftest/rapidjsontest.cpp +1 -1
- data/ext/rj_schema/rapidjson/test/unittest/CMakeLists.txt +1 -0
- data/ext/rj_schema/rapidjson/test/unittest/allocatorstest.cpp +1 -1
- data/ext/rj_schema/rapidjson/test/unittest/bigintegertest.cpp +1 -1
- data/ext/rj_schema/rapidjson/test/unittest/clzlltest.cpp +34 -0
- data/ext/rj_schema/rapidjson/test/unittest/cursorstreamwrappertest.cpp +1 -1
- data/ext/rj_schema/rapidjson/test/unittest/documenttest.cpp +1 -1
- data/ext/rj_schema/rapidjson/test/unittest/dtoatest.cpp +1 -1
- data/ext/rj_schema/rapidjson/test/unittest/encodedstreamtest.cpp +1 -1
- data/ext/rj_schema/rapidjson/test/unittest/encodingstest.cpp +1 -1
- data/ext/rj_schema/rapidjson/test/unittest/filestreamtest.cpp +1 -1
- data/ext/rj_schema/rapidjson/test/unittest/fwdtest.cpp +1 -1
- data/ext/rj_schema/rapidjson/test/unittest/istreamwrappertest.cpp +1 -1
- data/ext/rj_schema/rapidjson/test/unittest/itoatest.cpp +1 -1
- data/ext/rj_schema/rapidjson/test/unittest/jsoncheckertest.cpp +1 -1
- data/ext/rj_schema/rapidjson/test/unittest/namespacetest.cpp +1 -1
- data/ext/rj_schema/rapidjson/test/unittest/ostreamwrappertest.cpp +1 -1
- data/ext/rj_schema/rapidjson/test/unittest/pointertest.cpp +33 -1
- data/ext/rj_schema/rapidjson/test/unittest/prettywritertest.cpp +1 -1
- data/ext/rj_schema/rapidjson/test/unittest/readertest.cpp +4 -1
- data/ext/rj_schema/rapidjson/test/unittest/regextest.cpp +1 -1
- data/ext/rj_schema/rapidjson/test/unittest/schematest.cpp +593 -78
- data/ext/rj_schema/rapidjson/test/unittest/simdtest.cpp +1 -1
- data/ext/rj_schema/rapidjson/test/unittest/strfunctest.cpp +1 -1
- data/ext/rj_schema/rapidjson/test/unittest/stringbuffertest.cpp +1 -1
- data/ext/rj_schema/rapidjson/test/unittest/strtodtest.cpp +1 -1
- data/ext/rj_schema/rapidjson/test/unittest/unittest.cpp +1 -1
- data/ext/rj_schema/rapidjson/test/unittest/unittest.h +1 -1
- data/ext/rj_schema/rapidjson/test/unittest/valuetest.cpp +1 -1
- data/ext/rj_schema/rapidjson/test/unittest/writertest.cpp +1 -1
- data/ext/rj_schema/rj_schema.cpp +160 -16
- data/lib/rj_schema.rb +1 -1
- metadata +8 -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.
|
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
|
@@ -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.
|
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
|
@@ -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.
|
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
|
@@ -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.
|
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
|
@@ -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.
|
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
|
@@ -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.
|
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
|
@@ -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.
|
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
|
@@ -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.
|
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
|
data/ext/rj_schema/rj_schema.cpp
CHANGED
@@ -9,6 +9,7 @@
|
|
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
|
|
@@ -25,8 +26,11 @@ namespace std {
|
|
25
26
|
|
26
27
|
#include <rapidjson/schema.h>
|
27
28
|
#include <rapidjson/filereadstream.h>
|
28
|
-
#include <rapidjson/
|
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
|
-
|
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 = [
|
208
|
+
auto validate = [&continue_on_error, &machine_errors, &human_errors, &document](const rapidjson::SchemaDocument& schema) -> VALUE {
|
102
209
|
rapidjson::SchemaValidator validator(schema);
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
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::
|
223
|
+
rapidjson::Writer<rapidjson::StringBuffer> writer(buffer);
|
111
224
|
validator.GetError().Accept(writer);
|
112
|
-
|
113
|
-
|
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(
|
139
|
-
|
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,
|
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),
|
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
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.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Christian Semmler
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-02-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake-compiler
|
@@ -239,6 +239,10 @@ files:
|
|
239
239
|
- ext/rj_schema/rapidjson/bin/types/nulls.json
|
240
240
|
- ext/rj_schema/rapidjson/bin/types/paragraphs.json
|
241
241
|
- ext/rj_schema/rapidjson/bin/types/readme.txt
|
242
|
+
- ext/rj_schema/rapidjson/bin/unittestschema/address.json
|
243
|
+
- ext/rj_schema/rapidjson/bin/unittestschema/allOf_address.json
|
244
|
+
- ext/rj_schema/rapidjson/bin/unittestschema/anyOf_address.json
|
245
|
+
- ext/rj_schema/rapidjson/bin/unittestschema/oneOf_address.json
|
242
246
|
- ext/rj_schema/rapidjson/contrib/natvis/LICENSE
|
243
247
|
- ext/rj_schema/rapidjson/contrib/natvis/README.md
|
244
248
|
- ext/rj_schema/rapidjson/contrib/natvis/rapidjson.natvis
|
@@ -373,6 +377,7 @@ files:
|
|
373
377
|
- ext/rj_schema/rapidjson/test/unittest/CMakeLists.txt
|
374
378
|
- ext/rj_schema/rapidjson/test/unittest/allocatorstest.cpp
|
375
379
|
- ext/rj_schema/rapidjson/test/unittest/bigintegertest.cpp
|
380
|
+
- ext/rj_schema/rapidjson/test/unittest/clzlltest.cpp
|
376
381
|
- ext/rj_schema/rapidjson/test/unittest/cursorstreamwrappertest.cpp
|
377
382
|
- ext/rj_schema/rapidjson/test/unittest/documenttest.cpp
|
378
383
|
- ext/rj_schema/rapidjson/test/unittest/dtoatest.cpp
|
@@ -737,7 +742,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
737
742
|
- !ruby/object:Gem::Version
|
738
743
|
version: '0'
|
739
744
|
requirements: []
|
740
|
-
rubygems_version: 3.
|
745
|
+
rubygems_version: 3.2.3
|
741
746
|
signing_key:
|
742
747
|
specification_version: 4
|
743
748
|
summary: JSON schema validation with RapidJSON
|