rj_schema 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (299) hide show
  1. checksums.yaml +7 -0
  2. data/Rakefile +18 -0
  3. data/ext/rj_schema/extconf.rb +7 -0
  4. data/ext/rj_schema/rapidjson/CHANGELOG.md +158 -0
  5. data/ext/rj_schema/rapidjson/CMakeLists.txt +221 -0
  6. data/ext/rj_schema/rapidjson/CMakeModules/FindGTestSrc.cmake +30 -0
  7. data/ext/rj_schema/rapidjson/RapidJSON.pc.in +7 -0
  8. data/ext/rj_schema/rapidjson/RapidJSONConfig.cmake.in +15 -0
  9. data/ext/rj_schema/rapidjson/RapidJSONConfigVersion.cmake.in +10 -0
  10. data/ext/rj_schema/rapidjson/appveyor.yml +41 -0
  11. data/ext/rj_schema/rapidjson/bin/data/glossary.json +22 -0
  12. data/ext/rj_schema/rapidjson/bin/data/menu.json +27 -0
  13. data/ext/rj_schema/rapidjson/bin/data/readme.txt +1 -0
  14. data/ext/rj_schema/rapidjson/bin/data/sample.json +3315 -0
  15. data/ext/rj_schema/rapidjson/bin/data/webapp.json +88 -0
  16. data/ext/rj_schema/rapidjson/bin/data/widget.json +26 -0
  17. data/ext/rj_schema/rapidjson/bin/draft-04/schema +150 -0
  18. data/ext/rj_schema/rapidjson/bin/encodings/utf16be.json +0 -0
  19. data/ext/rj_schema/rapidjson/bin/encodings/utf16bebom.json +0 -0
  20. data/ext/rj_schema/rapidjson/bin/encodings/utf16le.json +0 -0
  21. data/ext/rj_schema/rapidjson/bin/encodings/utf16lebom.json +0 -0
  22. data/ext/rj_schema/rapidjson/bin/encodings/utf32be.json +0 -0
  23. data/ext/rj_schema/rapidjson/bin/encodings/utf32bebom.json +0 -0
  24. data/ext/rj_schema/rapidjson/bin/encodings/utf32le.json +0 -0
  25. data/ext/rj_schema/rapidjson/bin/encodings/utf32lebom.json +0 -0
  26. data/ext/rj_schema/rapidjson/bin/encodings/utf8.json +7 -0
  27. data/ext/rj_schema/rapidjson/bin/encodings/utf8bom.json +7 -0
  28. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail1.json +1 -0
  29. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail10.json +1 -0
  30. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail11.json +1 -0
  31. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail12.json +1 -0
  32. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail13.json +1 -0
  33. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail14.json +1 -0
  34. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail15.json +1 -0
  35. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail16.json +1 -0
  36. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail17.json +1 -0
  37. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail18.json +1 -0
  38. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail19.json +1 -0
  39. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail2.json +1 -0
  40. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail20.json +1 -0
  41. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail21.json +1 -0
  42. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail22.json +1 -0
  43. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail23.json +1 -0
  44. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail24.json +1 -0
  45. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail25.json +1 -0
  46. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail26.json +1 -0
  47. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail27.json +2 -0
  48. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail28.json +2 -0
  49. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail29.json +1 -0
  50. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail3.json +1 -0
  51. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail30.json +1 -0
  52. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail31.json +1 -0
  53. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail32.json +1 -0
  54. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail33.json +1 -0
  55. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail4.json +1 -0
  56. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail5.json +1 -0
  57. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail6.json +1 -0
  58. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail7.json +1 -0
  59. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail8.json +1 -0
  60. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail9.json +1 -0
  61. data/ext/rj_schema/rapidjson/bin/jsonchecker/pass1.json +58 -0
  62. data/ext/rj_schema/rapidjson/bin/jsonchecker/pass2.json +1 -0
  63. data/ext/rj_schema/rapidjson/bin/jsonchecker/pass3.json +6 -0
  64. data/ext/rj_schema/rapidjson/bin/jsonchecker/readme.txt +3 -0
  65. data/ext/rj_schema/rapidjson/bin/jsonschema/LICENSE +19 -0
  66. data/ext/rj_schema/rapidjson/bin/jsonschema/README.md +148 -0
  67. data/ext/rj_schema/rapidjson/bin/jsonschema/bin/jsonschema_suite +283 -0
  68. data/ext/rj_schema/rapidjson/bin/jsonschema/remotes/folder/folderInteger.json +3 -0
  69. data/ext/rj_schema/rapidjson/bin/jsonschema/remotes/integer.json +3 -0
  70. data/ext/rj_schema/rapidjson/bin/jsonschema/remotes/subSchemas.json +8 -0
  71. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/additionalItems.json +82 -0
  72. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/additionalProperties.json +88 -0
  73. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/default.json +49 -0
  74. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/dependencies.json +108 -0
  75. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/disallow.json +80 -0
  76. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/divisibleBy.json +60 -0
  77. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/enum.json +71 -0
  78. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/extends.json +94 -0
  79. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/items.json +46 -0
  80. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/maxItems.json +28 -0
  81. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/maxLength.json +33 -0
  82. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/maximum.json +42 -0
  83. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/minItems.json +28 -0
  84. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/minLength.json +33 -0
  85. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/minimum.json +42 -0
  86. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/optional/bignum.json +107 -0
  87. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/optional/format.json +222 -0
  88. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/optional/jsregex.json +18 -0
  89. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/optional/zeroTerminatedFloats.json +15 -0
  90. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/pattern.json +34 -0
  91. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/patternProperties.json +110 -0
  92. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/properties.json +92 -0
  93. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/ref.json +159 -0
  94. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/refRemote.json +74 -0
  95. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/required.json +53 -0
  96. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/type.json +474 -0
  97. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/uniqueItems.json +79 -0
  98. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/additionalItems.json +82 -0
  99. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/additionalProperties.json +88 -0
  100. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/allOf.json +112 -0
  101. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/anyOf.json +68 -0
  102. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/default.json +49 -0
  103. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/definitions.json +32 -0
  104. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/dependencies.json +113 -0
  105. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/enum.json +72 -0
  106. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/items.json +46 -0
  107. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/maxItems.json +28 -0
  108. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/maxLength.json +33 -0
  109. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/maxProperties.json +28 -0
  110. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/maximum.json +42 -0
  111. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/minItems.json +28 -0
  112. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/minLength.json +33 -0
  113. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/minProperties.json +28 -0
  114. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/minimum.json +42 -0
  115. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/multipleOf.json +60 -0
  116. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/not.json +96 -0
  117. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/oneOf.json +68 -0
  118. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/optional/bignum.json +107 -0
  119. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/optional/format.json +148 -0
  120. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/optional/zeroTerminatedFloats.json +15 -0
  121. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/pattern.json +34 -0
  122. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/patternProperties.json +110 -0
  123. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/properties.json +92 -0
  124. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/ref.json +159 -0
  125. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/refRemote.json +74 -0
  126. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/required.json +39 -0
  127. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/type.json +330 -0
  128. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/uniqueItems.json +79 -0
  129. data/ext/rj_schema/rapidjson/bin/jsonschema/tox.ini +8 -0
  130. data/ext/rj_schema/rapidjson/bin/types/booleans.json +102 -0
  131. data/ext/rj_schema/rapidjson/bin/types/floats.json +102 -0
  132. data/ext/rj_schema/rapidjson/bin/types/guids.json +102 -0
  133. data/ext/rj_schema/rapidjson/bin/types/integers.json +102 -0
  134. data/ext/rj_schema/rapidjson/bin/types/mixed.json +592 -0
  135. data/ext/rj_schema/rapidjson/bin/types/nulls.json +102 -0
  136. data/ext/rj_schema/rapidjson/bin/types/paragraphs.json +102 -0
  137. data/ext/rj_schema/rapidjson/bin/types/readme.txt +1 -0
  138. data/ext/rj_schema/rapidjson/contrib/natvis/LICENSE +45 -0
  139. data/ext/rj_schema/rapidjson/contrib/natvis/README.md +7 -0
  140. data/ext/rj_schema/rapidjson/contrib/natvis/rapidjson.natvis +38 -0
  141. data/ext/rj_schema/rapidjson/doc/CMakeLists.txt +27 -0
  142. data/ext/rj_schema/rapidjson/doc/Doxyfile.in +2369 -0
  143. data/ext/rj_schema/rapidjson/doc/Doxyfile.zh-cn.in +2369 -0
  144. data/ext/rj_schema/rapidjson/doc/diagram/architecture.dot +50 -0
  145. data/ext/rj_schema/rapidjson/doc/diagram/architecture.png +0 -0
  146. data/ext/rj_schema/rapidjson/doc/diagram/insituparsing.dot +65 -0
  147. data/ext/rj_schema/rapidjson/doc/diagram/insituparsing.png +0 -0
  148. data/ext/rj_schema/rapidjson/doc/diagram/iterative-parser-states-diagram.dot +62 -0
  149. data/ext/rj_schema/rapidjson/doc/diagram/iterative-parser-states-diagram.png +0 -0
  150. data/ext/rj_schema/rapidjson/doc/diagram/makefile +8 -0
  151. data/ext/rj_schema/rapidjson/doc/diagram/move1.dot +47 -0
  152. data/ext/rj_schema/rapidjson/doc/diagram/move1.png +0 -0
  153. data/ext/rj_schema/rapidjson/doc/diagram/move2.dot +62 -0
  154. data/ext/rj_schema/rapidjson/doc/diagram/move2.png +0 -0
  155. data/ext/rj_schema/rapidjson/doc/diagram/move3.dot +60 -0
  156. data/ext/rj_schema/rapidjson/doc/diagram/move3.png +0 -0
  157. data/ext/rj_schema/rapidjson/doc/diagram/normalparsing.dot +56 -0
  158. data/ext/rj_schema/rapidjson/doc/diagram/normalparsing.png +0 -0
  159. data/ext/rj_schema/rapidjson/doc/diagram/simpledom.dot +54 -0
  160. data/ext/rj_schema/rapidjson/doc/diagram/simpledom.png +0 -0
  161. data/ext/rj_schema/rapidjson/doc/diagram/tutorial.dot +58 -0
  162. data/ext/rj_schema/rapidjson/doc/diagram/tutorial.png +0 -0
  163. data/ext/rj_schema/rapidjson/doc/diagram/utilityclass.dot +73 -0
  164. data/ext/rj_schema/rapidjson/doc/diagram/utilityclass.png +0 -0
  165. data/ext/rj_schema/rapidjson/doc/dom.md +280 -0
  166. data/ext/rj_schema/rapidjson/doc/dom.zh-cn.md +284 -0
  167. data/ext/rj_schema/rapidjson/doc/encoding.md +146 -0
  168. data/ext/rj_schema/rapidjson/doc/encoding.zh-cn.md +152 -0
  169. data/ext/rj_schema/rapidjson/doc/faq.md +289 -0
  170. data/ext/rj_schema/rapidjson/doc/faq.zh-cn.md +290 -0
  171. data/ext/rj_schema/rapidjson/doc/features.md +104 -0
  172. data/ext/rj_schema/rapidjson/doc/features.zh-cn.md +103 -0
  173. data/ext/rj_schema/rapidjson/doc/internals.md +368 -0
  174. data/ext/rj_schema/rapidjson/doc/internals.zh-cn.md +363 -0
  175. data/ext/rj_schema/rapidjson/doc/logo/rapidjson.png +0 -0
  176. data/ext/rj_schema/rapidjson/doc/logo/rapidjson.svg +119 -0
  177. data/ext/rj_schema/rapidjson/doc/misc/DoxygenLayout.xml +194 -0
  178. data/ext/rj_schema/rapidjson/doc/misc/doxygenextra.css +274 -0
  179. data/ext/rj_schema/rapidjson/doc/misc/footer.html +11 -0
  180. data/ext/rj_schema/rapidjson/doc/misc/header.html +24 -0
  181. data/ext/rj_schema/rapidjson/doc/npm.md +31 -0
  182. data/ext/rj_schema/rapidjson/doc/performance.md +26 -0
  183. data/ext/rj_schema/rapidjson/doc/performance.zh-cn.md +26 -0
  184. data/ext/rj_schema/rapidjson/doc/pointer.md +234 -0
  185. data/ext/rj_schema/rapidjson/doc/pointer.zh-cn.md +234 -0
  186. data/ext/rj_schema/rapidjson/doc/sax.md +509 -0
  187. data/ext/rj_schema/rapidjson/doc/sax.zh-cn.md +487 -0
  188. data/ext/rj_schema/rapidjson/doc/schema.md +505 -0
  189. data/ext/rj_schema/rapidjson/doc/schema.zh-cn.md +237 -0
  190. data/ext/rj_schema/rapidjson/doc/stream.md +426 -0
  191. data/ext/rj_schema/rapidjson/doc/stream.zh-cn.md +426 -0
  192. data/ext/rj_schema/rapidjson/doc/tutorial.md +536 -0
  193. data/ext/rj_schema/rapidjson/doc/tutorial.zh-cn.md +534 -0
  194. data/ext/rj_schema/rapidjson/docker/debian/Dockerfile +8 -0
  195. data/ext/rj_schema/rapidjson/example/CMakeLists.txt +45 -0
  196. data/ext/rj_schema/rapidjson/example/archiver/archiver.cpp +292 -0
  197. data/ext/rj_schema/rapidjson/example/archiver/archiver.h +145 -0
  198. data/ext/rj_schema/rapidjson/example/archiver/archivertest.cpp +287 -0
  199. data/ext/rj_schema/rapidjson/example/capitalize/capitalize.cpp +67 -0
  200. data/ext/rj_schema/rapidjson/example/condense/condense.cpp +32 -0
  201. data/ext/rj_schema/rapidjson/example/filterkey/filterkey.cpp +135 -0
  202. data/ext/rj_schema/rapidjson/example/filterkeydom/filterkeydom.cpp +170 -0
  203. data/ext/rj_schema/rapidjson/example/jsonx/jsonx.cpp +207 -0
  204. data/ext/rj_schema/rapidjson/example/lookaheadparser/lookaheadparser.cpp +350 -0
  205. data/ext/rj_schema/rapidjson/example/messagereader/messagereader.cpp +105 -0
  206. data/ext/rj_schema/rapidjson/example/parsebyparts/parsebyparts.cpp +176 -0
  207. data/ext/rj_schema/rapidjson/example/pretty/pretty.cpp +30 -0
  208. data/ext/rj_schema/rapidjson/example/prettyauto/prettyauto.cpp +56 -0
  209. data/ext/rj_schema/rapidjson/example/schemavalidator/schemavalidator.cpp +78 -0
  210. data/ext/rj_schema/rapidjson/example/serialize/serialize.cpp +173 -0
  211. data/ext/rj_schema/rapidjson/example/simpledom/simpledom.cpp +29 -0
  212. data/ext/rj_schema/rapidjson/example/simplepullreader/simplepullreader.cpp +53 -0
  213. data/ext/rj_schema/rapidjson/example/simplereader/simplereader.cpp +42 -0
  214. data/ext/rj_schema/rapidjson/example/simplewriter/simplewriter.cpp +36 -0
  215. data/ext/rj_schema/rapidjson/example/tutorial/tutorial.cpp +151 -0
  216. data/ext/rj_schema/rapidjson/include/rapidjson/allocators.h +271 -0
  217. data/ext/rj_schema/rapidjson/include/rapidjson/cursorstreamwrapper.h +78 -0
  218. data/ext/rj_schema/rapidjson/include/rapidjson/document.h +2630 -0
  219. data/ext/rj_schema/rapidjson/include/rapidjson/encodedstream.h +299 -0
  220. data/ext/rj_schema/rapidjson/include/rapidjson/encodings.h +716 -0
  221. data/ext/rj_schema/rapidjson/include/rapidjson/error/en.h +74 -0
  222. data/ext/rj_schema/rapidjson/include/rapidjson/error/error.h +161 -0
  223. data/ext/rj_schema/rapidjson/include/rapidjson/filereadstream.h +99 -0
  224. data/ext/rj_schema/rapidjson/include/rapidjson/filewritestream.h +104 -0
  225. data/ext/rj_schema/rapidjson/include/rapidjson/fwd.h +151 -0
  226. data/ext/rj_schema/rapidjson/include/rapidjson/internal/biginteger.h +290 -0
  227. data/ext/rj_schema/rapidjson/include/rapidjson/internal/diyfp.h +258 -0
  228. data/ext/rj_schema/rapidjson/include/rapidjson/internal/dtoa.h +245 -0
  229. data/ext/rj_schema/rapidjson/include/rapidjson/internal/ieee754.h +78 -0
  230. data/ext/rj_schema/rapidjson/include/rapidjson/internal/itoa.h +304 -0
  231. data/ext/rj_schema/rapidjson/include/rapidjson/internal/meta.h +181 -0
  232. data/ext/rj_schema/rapidjson/include/rapidjson/internal/pow10.h +55 -0
  233. data/ext/rj_schema/rapidjson/include/rapidjson/internal/regex.h +734 -0
  234. data/ext/rj_schema/rapidjson/include/rapidjson/internal/stack.h +231 -0
  235. data/ext/rj_schema/rapidjson/include/rapidjson/internal/strfunc.h +69 -0
  236. data/ext/rj_schema/rapidjson/include/rapidjson/internal/strtod.h +269 -0
  237. data/ext/rj_schema/rapidjson/include/rapidjson/internal/swap.h +46 -0
  238. data/ext/rj_schema/rapidjson/include/rapidjson/istreamwrapper.h +115 -0
  239. data/ext/rj_schema/rapidjson/include/rapidjson/memorybuffer.h +70 -0
  240. data/ext/rj_schema/rapidjson/include/rapidjson/memorystream.h +71 -0
  241. data/ext/rj_schema/rapidjson/include/rapidjson/msinttypes/inttypes.h +316 -0
  242. data/ext/rj_schema/rapidjson/include/rapidjson/msinttypes/stdint.h +300 -0
  243. data/ext/rj_schema/rapidjson/include/rapidjson/ostreamwrapper.h +81 -0
  244. data/ext/rj_schema/rapidjson/include/rapidjson/pointer.h +1363 -0
  245. data/ext/rj_schema/rapidjson/include/rapidjson/prettywriter.h +277 -0
  246. data/ext/rj_schema/rapidjson/include/rapidjson/rapidjson.h +628 -0
  247. data/ext/rj_schema/rapidjson/include/rapidjson/reader.h +2222 -0
  248. data/ext/rj_schema/rapidjson/include/rapidjson/schema.h +2479 -0
  249. data/ext/rj_schema/rapidjson/include/rapidjson/stream.h +223 -0
  250. data/ext/rj_schema/rapidjson/include/rapidjson/stringbuffer.h +121 -0
  251. data/ext/rj_schema/rapidjson/include/rapidjson/writer.h +716 -0
  252. data/ext/rj_schema/rapidjson/include_dirs.js +2 -0
  253. data/ext/rj_schema/rapidjson/library.json +15 -0
  254. data/ext/rj_schema/rapidjson/license.txt +57 -0
  255. data/ext/rj_schema/rapidjson/package.json +24 -0
  256. data/ext/rj_schema/rapidjson/rapidjson.autopkg +77 -0
  257. data/ext/rj_schema/rapidjson/readme.md +160 -0
  258. data/ext/rj_schema/rapidjson/readme.zh-cn.md +152 -0
  259. data/ext/rj_schema/rapidjson/test/CMakeLists.txt +20 -0
  260. data/ext/rj_schema/rapidjson/test/perftest/CMakeLists.txt +28 -0
  261. data/ext/rj_schema/rapidjson/test/perftest/misctest.cpp +974 -0
  262. data/ext/rj_schema/rapidjson/test/perftest/perftest.cpp +24 -0
  263. data/ext/rj_schema/rapidjson/test/perftest/perftest.h +185 -0
  264. data/ext/rj_schema/rapidjson/test/perftest/platformtest.cpp +166 -0
  265. data/ext/rj_schema/rapidjson/test/perftest/rapidjsontest.cpp +472 -0
  266. data/ext/rj_schema/rapidjson/test/perftest/schematest.cpp +216 -0
  267. data/ext/rj_schema/rapidjson/test/unittest/CMakeLists.txt +92 -0
  268. data/ext/rj_schema/rapidjson/test/unittest/allocatorstest.cpp +102 -0
  269. data/ext/rj_schema/rapidjson/test/unittest/bigintegertest.cpp +133 -0
  270. data/ext/rj_schema/rapidjson/test/unittest/cursorstreamwrappertest.cpp +115 -0
  271. data/ext/rj_schema/rapidjson/test/unittest/documenttest.cpp +672 -0
  272. data/ext/rj_schema/rapidjson/test/unittest/dtoatest.cpp +98 -0
  273. data/ext/rj_schema/rapidjson/test/unittest/encodedstreamtest.cpp +313 -0
  274. data/ext/rj_schema/rapidjson/test/unittest/encodingstest.cpp +451 -0
  275. data/ext/rj_schema/rapidjson/test/unittest/filestreamtest.cpp +112 -0
  276. data/ext/rj_schema/rapidjson/test/unittest/fwdtest.cpp +230 -0
  277. data/ext/rj_schema/rapidjson/test/unittest/istreamwrappertest.cpp +181 -0
  278. data/ext/rj_schema/rapidjson/test/unittest/itoatest.cpp +160 -0
  279. data/ext/rj_schema/rapidjson/test/unittest/jsoncheckertest.cpp +143 -0
  280. data/ext/rj_schema/rapidjson/test/unittest/namespacetest.cpp +70 -0
  281. data/ext/rj_schema/rapidjson/test/unittest/ostreamwrappertest.cpp +92 -0
  282. data/ext/rj_schema/rapidjson/test/unittest/pointertest.cpp +1529 -0
  283. data/ext/rj_schema/rapidjson/test/unittest/prettywritertest.cpp +344 -0
  284. data/ext/rj_schema/rapidjson/test/unittest/readertest.cpp +1895 -0
  285. data/ext/rj_schema/rapidjson/test/unittest/regextest.cpp +638 -0
  286. data/ext/rj_schema/rapidjson/test/unittest/schematest.cpp +2009 -0
  287. data/ext/rj_schema/rapidjson/test/unittest/simdtest.cpp +219 -0
  288. data/ext/rj_schema/rapidjson/test/unittest/strfunctest.cpp +30 -0
  289. data/ext/rj_schema/rapidjson/test/unittest/stringbuffertest.cpp +192 -0
  290. data/ext/rj_schema/rapidjson/test/unittest/strtodtest.cpp +132 -0
  291. data/ext/rj_schema/rapidjson/test/unittest/unittest.cpp +51 -0
  292. data/ext/rj_schema/rapidjson/test/unittest/unittest.h +140 -0
  293. data/ext/rj_schema/rapidjson/test/unittest/valuetest.cpp +1829 -0
  294. data/ext/rj_schema/rapidjson/test/unittest/writertest.cpp +598 -0
  295. data/ext/rj_schema/rapidjson/test/valgrind.supp +17 -0
  296. data/ext/rj_schema/rapidjson/travis-doxygen.sh +121 -0
  297. data/ext/rj_schema/rj_schema.cpp +136 -0
  298. data/lib/rj_schema.rb +7 -0
  299. metadata +371 -0
@@ -0,0 +1 @@
1
+ [[[[[[[[[[[[[[[[[[["Not too deep"]]]]]]]]]]]]]]]]]]]
@@ -0,0 +1,6 @@
1
+ {
2
+ "JSON Test Pattern pass3": {
3
+ "The outermost value": "must be an object or array.",
4
+ "In this test": "It is an object."
5
+ }
6
+ }
@@ -0,0 +1,3 @@
1
+ Test suite from http://json.org/JSON_checker/.
2
+
3
+ If the JSON_checker is working correctly, it must accept all of the pass*.json files and reject all of the fail*.json files.
@@ -0,0 +1,19 @@
1
+ Copyright (c) 2012 Julian Berman
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ THE SOFTWARE.
@@ -0,0 +1,148 @@
1
+ JSON Schema Test Suite [![Build Status](https://travis-ci.org/json-schema/JSON-Schema-Test-Suite.png?branch=develop)](https://travis-ci.org/json-schema/JSON-Schema-Test-Suite)
2
+ ======================
3
+
4
+ This repository contains a set of JSON objects that implementors of JSON Schema
5
+ validation libraries can use to test their validators.
6
+
7
+ It is meant to be language agnostic and should require only a JSON parser.
8
+
9
+ The conversion of the JSON objects into tests within your test framework of
10
+ choice is still the job of the validator implementor.
11
+
12
+ Structure of a Test
13
+ -------------------
14
+
15
+ If you're going to use this suite, you need to know how tests are laid out. The
16
+ tests are contained in the `tests` directory at the root of this repository.
17
+
18
+ Inside that directory is a subdirectory for each draft or version of the
19
+ schema. We'll use `draft3` as an example.
20
+
21
+ If you look inside the draft directory, there are a number of `.json` files,
22
+ which logically group a set of test cases together. Often the grouping is by
23
+ property under test, but not always, especially within optional test files
24
+ (discussed below).
25
+
26
+ Inside each `.json` file is a single array containing objects. It's easiest to
27
+ illustrate the structure of these with an example:
28
+
29
+ ```json
30
+ {
31
+ "description": "the description of the test case",
32
+ "schema": {"the schema that should" : "be validated against"},
33
+ "tests": [
34
+ {
35
+ "description": "a specific test of a valid instance",
36
+ "data": "the instance",
37
+ "valid": true
38
+ },
39
+ {
40
+ "description": "another specific test this time, invalid",
41
+ "data": 15,
42
+ "valid": false
43
+ }
44
+ ]
45
+ }
46
+ ```
47
+
48
+ So a description, a schema, and some tests, where tests is an array containing
49
+ one or more objects with descriptions, data, and a boolean indicating whether
50
+ they should be valid or invalid.
51
+
52
+ Coverage
53
+ --------
54
+
55
+ Draft 3 and 4 should have full coverage. If you see anything missing or think
56
+ there is a useful test missing, please send a pull request or open an issue.
57
+
58
+ Who Uses the Test Suite
59
+ -----------------------
60
+
61
+ This suite is being used by:
62
+
63
+ ### Coffeescript ###
64
+
65
+ * [jsck](https://github.com/pandastrike/jsck)
66
+
67
+ ### Dart ###
68
+
69
+ * [json_schema](https://github.com/patefacio/json_schema)
70
+
71
+ ### Erlang ###
72
+
73
+ * [jesse](https://github.com/klarna/jesse)
74
+
75
+ ### Go ###
76
+
77
+ * [gojsonschema](https://github.com/sigu-399/gojsonschema)
78
+ * [validate-json](https://github.com/cesanta/validate-json)
79
+
80
+ ### Haskell ###
81
+
82
+ * [aeson-schema](https://github.com/timjb/aeson-schema)
83
+ * [hjsonschema](https://github.com/seagreen/hjsonschema)
84
+
85
+ ### Java ###
86
+
87
+ * [json-schema-validator](https://github.com/fge/json-schema-validator)
88
+
89
+ ### JavaScript ###
90
+
91
+ * [json-schema-benchmark](https://github.com/Muscula/json-schema-benchmark)
92
+ * [direct-schema](https://github.com/IreneKnapp/direct-schema)
93
+ * [is-my-json-valid](https://github.com/mafintosh/is-my-json-valid)
94
+ * [jassi](https://github.com/iclanzan/jassi)
95
+ * [JaySchema](https://github.com/natesilva/jayschema)
96
+ * [json-schema-valid](https://github.com/ericgj/json-schema-valid)
97
+ * [Jsonary](https://github.com/jsonary-js/jsonary)
98
+ * [jsonschema](https://github.com/tdegrunt/jsonschema)
99
+ * [request-validator](https://github.com/bugventure/request-validator)
100
+ * [skeemas](https://github.com/Prestaul/skeemas)
101
+ * [tv4](https://github.com/geraintluff/tv4)
102
+ * [z-schema](https://github.com/zaggino/z-schema)
103
+ * [jsen](https://github.com/bugventure/jsen)
104
+ * [ajv](https://github.com/epoberezkin/ajv)
105
+
106
+ ### Node.js ###
107
+
108
+ The JSON Schema Test Suite is also available as an
109
+ [npm](https://www.npmjs.com/package/json-schema-test-suite) package.
110
+ Node-specific support is maintained on the [node branch](https://github.com/json-schema/JSON-Schema-Test-Suite/tree/node).
111
+ See [NODE-README.md](https://github.com/json-schema/JSON-Schema-Test-Suite/blob/node/NODE-README.md)
112
+ for more information.
113
+
114
+ ### .NET ###
115
+
116
+ * [Newtonsoft.Json.Schema](https://github.com/JamesNK/Newtonsoft.Json.Schema)
117
+
118
+ ### PHP ###
119
+
120
+ * [json-schema](https://github.com/justinrainbow/json-schema)
121
+
122
+ ### Python ###
123
+
124
+ * [jsonschema](https://github.com/Julian/jsonschema)
125
+
126
+ ### Ruby ###
127
+
128
+ * [json-schema](https://github.com/hoxworth/json-schema)
129
+
130
+ ### Rust ###
131
+
132
+ * [valico](https://github.com/rustless/valico)
133
+
134
+ ### Swift ###
135
+
136
+ * [JSONSchema](https://github.com/kylef/JSONSchema.swift)
137
+
138
+ If you use it as well, please fork and send a pull request adding yourself to
139
+ the list :).
140
+
141
+ Contributing
142
+ ------------
143
+
144
+ If you see something missing or incorrect, a pull request is most welcome!
145
+
146
+ There are some sanity checks in place for testing the test suite. You can run
147
+ them with `bin/jsonschema_suite check` or `tox`. They will be run automatically by
148
+ [Travis CI](https://travis-ci.org/) as well.
@@ -0,0 +1,283 @@
1
+ #! /usr/bin/env python
2
+ from __future__ import print_function
3
+ import sys
4
+ import textwrap
5
+
6
+ try:
7
+ import argparse
8
+ except ImportError:
9
+ print(textwrap.dedent("""
10
+ The argparse library could not be imported. jsonschema_suite requires
11
+ either Python 2.7 or for you to install argparse. You can do so by
12
+ running `pip install argparse`, `easy_install argparse` or by
13
+ downloading argparse and running `python2.6 setup.py install`.
14
+
15
+ See https://pypi.python.org/pypi/argparse for details.
16
+ """.strip("\n")))
17
+ sys.exit(1)
18
+
19
+ import errno
20
+ import fnmatch
21
+ import json
22
+ import os
23
+ import random
24
+ import shutil
25
+ import unittest
26
+ import warnings
27
+
28
+ if getattr(unittest, "skipIf", None) is None:
29
+ unittest.skipIf = lambda cond, msg : lambda fn : fn
30
+
31
+ try:
32
+ import jsonschema
33
+ except ImportError:
34
+ jsonschema = None
35
+ else:
36
+ validators = getattr(
37
+ jsonschema.validators, "validators", jsonschema.validators
38
+ )
39
+
40
+
41
+ ROOT_DIR = os.path.join(
42
+ os.path.dirname(__file__), os.pardir).rstrip("__pycache__")
43
+ SUITE_ROOT_DIR = os.path.join(ROOT_DIR, "tests")
44
+
45
+ REMOTES = {
46
+ "integer.json": {"type": "integer"},
47
+ "subSchemas.json": {
48
+ "integer": {"type": "integer"},
49
+ "refToInteger": {"$ref": "#/integer"},
50
+ },
51
+ "folder/folderInteger.json": {"type": "integer"}
52
+ }
53
+ REMOTES_DIR = os.path.join(ROOT_DIR, "remotes")
54
+
55
+ TESTSUITE_SCHEMA = {
56
+ "$schema": "http://json-schema.org/draft-03/schema#",
57
+ "type": "array",
58
+ "items": {
59
+ "type": "object",
60
+ "properties": {
61
+ "description": {"type": "string", "required": True},
62
+ "schema": {"required": True},
63
+ "tests": {
64
+ "type": "array",
65
+ "items": {
66
+ "type": "object",
67
+ "properties": {
68
+ "description": {"type": "string", "required": True},
69
+ "data": {"required": True},
70
+ "valid": {"type": "boolean", "required": True}
71
+ },
72
+ "additionalProperties": False
73
+ },
74
+ "minItems": 1
75
+ }
76
+ },
77
+ "additionalProperties": False,
78
+ "minItems": 1
79
+ }
80
+ }
81
+
82
+
83
+ def files(paths):
84
+ for path in paths:
85
+ with open(path) as test_file:
86
+ yield json.load(test_file)
87
+
88
+
89
+ def groups(paths):
90
+ for test_file in files(paths):
91
+ for group in test_file:
92
+ yield group
93
+
94
+
95
+ def cases(paths):
96
+ for test_group in groups(paths):
97
+ for test in test_group["tests"]:
98
+ test["schema"] = test_group["schema"]
99
+ yield test
100
+
101
+
102
+ def collect(root_dir):
103
+ for root, dirs, files in os.walk(root_dir):
104
+ for filename in fnmatch.filter(files, "*.json"):
105
+ yield os.path.join(root, filename)
106
+
107
+
108
+ class SanityTests(unittest.TestCase):
109
+ @classmethod
110
+ def setUpClass(cls):
111
+ print("Looking for tests in %s" % SUITE_ROOT_DIR)
112
+ cls.test_files = list(collect(SUITE_ROOT_DIR))
113
+ print("Found %s test files" % len(cls.test_files))
114
+ assert cls.test_files, "Didn't find the test files!"
115
+
116
+ def test_all_files_are_valid_json(self):
117
+ for path in self.test_files:
118
+ with open(path) as test_file:
119
+ try:
120
+ json.load(test_file)
121
+ except ValueError as error:
122
+ self.fail("%s contains invalid JSON (%s)" % (path, error))
123
+
124
+ def test_all_descriptions_have_reasonable_length(self):
125
+ for case in cases(self.test_files):
126
+ descript = case["description"]
127
+ self.assertLess(
128
+ len(descript),
129
+ 60,
130
+ "%r is too long! (keep it to less than 60 chars)" % (descript,)
131
+ )
132
+
133
+ def test_all_descriptions_are_unique(self):
134
+ for group in groups(self.test_files):
135
+ descriptions = set(test["description"] for test in group["tests"])
136
+ self.assertEqual(
137
+ len(descriptions),
138
+ len(group["tests"]),
139
+ "%r contains a duplicate description" % (group,)
140
+ )
141
+
142
+ @unittest.skipIf(jsonschema is None, "Validation library not present!")
143
+ def test_all_schemas_are_valid(self):
144
+ for schema in os.listdir(SUITE_ROOT_DIR):
145
+ schema_validator = validators.get(schema)
146
+ if schema_validator is not None:
147
+ test_files = collect(os.path.join(SUITE_ROOT_DIR, schema))
148
+ for case in cases(test_files):
149
+ try:
150
+ schema_validator.check_schema(case["schema"])
151
+ except jsonschema.SchemaError as error:
152
+ self.fail("%s contains an invalid schema (%s)" %
153
+ (case, error))
154
+ else:
155
+ warnings.warn("No schema validator for %s" % schema)
156
+
157
+ @unittest.skipIf(jsonschema is None, "Validation library not present!")
158
+ def test_suites_are_valid(self):
159
+ validator = jsonschema.Draft3Validator(TESTSUITE_SCHEMA)
160
+ for tests in files(self.test_files):
161
+ try:
162
+ validator.validate(tests)
163
+ except jsonschema.ValidationError as error:
164
+ self.fail(str(error))
165
+
166
+ def test_remote_schemas_are_updated(self):
167
+ for url, schema in REMOTES.items():
168
+ filepath = os.path.join(REMOTES_DIR, url)
169
+ with open(filepath) as schema_file:
170
+ self.assertEqual(json.load(schema_file), schema)
171
+
172
+
173
+ def main(arguments):
174
+ if arguments.command == "check":
175
+ suite = unittest.TestLoader().loadTestsFromTestCase(SanityTests)
176
+ result = unittest.TextTestRunner(verbosity=2).run(suite)
177
+ sys.exit(not result.wasSuccessful())
178
+ elif arguments.command == "flatten":
179
+ selected_cases = [case for case in cases(collect(arguments.version))]
180
+
181
+ if arguments.randomize:
182
+ random.shuffle(selected_cases)
183
+
184
+ json.dump(selected_cases, sys.stdout, indent=4, sort_keys=True)
185
+ elif arguments.command == "remotes":
186
+ json.dump(REMOTES, sys.stdout, indent=4, sort_keys=True)
187
+ elif arguments.command == "dump_remotes":
188
+ if arguments.update:
189
+ shutil.rmtree(arguments.out_dir, ignore_errors=True)
190
+
191
+ try:
192
+ os.makedirs(arguments.out_dir)
193
+ except OSError as e:
194
+ if e.errno == errno.EEXIST:
195
+ print("%s already exists. Aborting." % arguments.out_dir)
196
+ sys.exit(1)
197
+ raise
198
+
199
+ for url, schema in REMOTES.items():
200
+ filepath = os.path.join(arguments.out_dir, url)
201
+
202
+ try:
203
+ os.makedirs(os.path.dirname(filepath))
204
+ except OSError as e:
205
+ if e.errno != errno.EEXIST:
206
+ raise
207
+
208
+ with open(filepath, "wb") as out_file:
209
+ json.dump(schema, out_file, indent=4, sort_keys=True)
210
+ elif arguments.command == "serve":
211
+ try:
212
+ from flask import Flask, jsonify
213
+ except ImportError:
214
+ print(textwrap.dedent("""
215
+ The Flask library is required to serve the remote schemas.
216
+
217
+ You can install it by running `pip install Flask`.
218
+
219
+ Alternatively, see the `jsonschema_suite remotes` or
220
+ `jsonschema_suite dump_remotes` commands to create static files
221
+ that can be served with your own web server.
222
+ """.strip("\n")))
223
+ sys.exit(1)
224
+
225
+ app = Flask(__name__)
226
+
227
+ @app.route("/<path:path>")
228
+ def serve_path(path):
229
+ if path in REMOTES:
230
+ return jsonify(REMOTES[path])
231
+ return "Document does not exist.", 404
232
+
233
+ app.run(port=1234)
234
+
235
+
236
+ parser = argparse.ArgumentParser(
237
+ description="JSON Schema Test Suite utilities",
238
+ )
239
+ subparsers = parser.add_subparsers(help="utility commands", dest="command")
240
+
241
+ check = subparsers.add_parser("check", help="Sanity check the test suite.")
242
+
243
+ flatten = subparsers.add_parser(
244
+ "flatten",
245
+ help="Output a flattened file containing a selected version's test cases."
246
+ )
247
+ flatten.add_argument(
248
+ "--randomize",
249
+ action="store_true",
250
+ help="Randomize the order of the outputted cases.",
251
+ )
252
+ flatten.add_argument(
253
+ "version", help="The directory containing the version to output",
254
+ )
255
+
256
+ remotes = subparsers.add_parser(
257
+ "remotes",
258
+ help="Output the expected URLs and their associated schemas for remote "
259
+ "ref tests as a JSON object."
260
+ )
261
+
262
+ dump_remotes = subparsers.add_parser(
263
+ "dump_remotes", help="Dump the remote ref schemas into a file tree",
264
+ )
265
+ dump_remotes.add_argument(
266
+ "--update",
267
+ action="store_true",
268
+ help="Update the remotes in an existing directory.",
269
+ )
270
+ dump_remotes.add_argument(
271
+ "--out-dir",
272
+ default=REMOTES_DIR,
273
+ type=os.path.abspath,
274
+ help="The output directory to create as the root of the file tree",
275
+ )
276
+
277
+ serve = subparsers.add_parser(
278
+ "serve",
279
+ help="Start a webserver to serve schemas used by remote ref tests."
280
+ )
281
+
282
+ if __name__ == "__main__":
283
+ main(parser.parse_args())