rj_schema 0.0.1

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.
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,105 @@
1
+ // Reading a message JSON with Reader (SAX-style API).
2
+ // The JSON should be an object with key-string pairs.
3
+
4
+ #include "rapidjson/reader.h"
5
+ #include "rapidjson/error/en.h"
6
+ #include <iostream>
7
+ #include <string>
8
+ #include <map>
9
+
10
+ using namespace std;
11
+ using namespace rapidjson;
12
+
13
+ typedef map<string, string> MessageMap;
14
+
15
+ #if defined(__GNUC__)
16
+ RAPIDJSON_DIAG_PUSH
17
+ RAPIDJSON_DIAG_OFF(effc++)
18
+ #endif
19
+
20
+ #ifdef __clang__
21
+ RAPIDJSON_DIAG_PUSH
22
+ RAPIDJSON_DIAG_OFF(switch-enum)
23
+ #endif
24
+
25
+ struct MessageHandler
26
+ : public BaseReaderHandler<UTF8<>, MessageHandler> {
27
+ MessageHandler() : messages_(), state_(kExpectObjectStart), name_() {}
28
+
29
+ bool StartObject() {
30
+ switch (state_) {
31
+ case kExpectObjectStart:
32
+ state_ = kExpectNameOrObjectEnd;
33
+ return true;
34
+ default:
35
+ return false;
36
+ }
37
+ }
38
+
39
+ bool String(const char* str, SizeType length, bool) {
40
+ switch (state_) {
41
+ case kExpectNameOrObjectEnd:
42
+ name_ = string(str, length);
43
+ state_ = kExpectValue;
44
+ return true;
45
+ case kExpectValue:
46
+ messages_.insert(MessageMap::value_type(name_, string(str, length)));
47
+ state_ = kExpectNameOrObjectEnd;
48
+ return true;
49
+ default:
50
+ return false;
51
+ }
52
+ }
53
+
54
+ bool EndObject(SizeType) { return state_ == kExpectNameOrObjectEnd; }
55
+
56
+ bool Default() { return false; } // All other events are invalid.
57
+
58
+ MessageMap messages_;
59
+ enum State {
60
+ kExpectObjectStart,
61
+ kExpectNameOrObjectEnd,
62
+ kExpectValue
63
+ }state_;
64
+ std::string name_;
65
+ };
66
+
67
+ #if defined(__GNUC__)
68
+ RAPIDJSON_DIAG_POP
69
+ #endif
70
+
71
+ #ifdef __clang__
72
+ RAPIDJSON_DIAG_POP
73
+ #endif
74
+
75
+ static void ParseMessages(const char* json, MessageMap& messages) {
76
+ Reader reader;
77
+ MessageHandler handler;
78
+ StringStream ss(json);
79
+ if (reader.Parse(ss, handler))
80
+ messages.swap(handler.messages_); // Only change it if success.
81
+ else {
82
+ ParseErrorCode e = reader.GetParseErrorCode();
83
+ size_t o = reader.GetErrorOffset();
84
+ cout << "Error: " << GetParseError_En(e) << endl;;
85
+ cout << " at offset " << o << " near '" << string(json).substr(o, 10) << "...'" << endl;
86
+ }
87
+ }
88
+
89
+ int main() {
90
+ MessageMap messages;
91
+
92
+ const char* json1 = "{ \"greeting\" : \"Hello!\", \"farewell\" : \"bye-bye!\" }";
93
+ cout << json1 << endl;
94
+ ParseMessages(json1, messages);
95
+
96
+ for (MessageMap::const_iterator itr = messages.begin(); itr != messages.end(); ++itr)
97
+ cout << itr->first << ": " << itr->second << endl;
98
+
99
+ cout << endl << "Parse a JSON with invalid schema." << endl;
100
+ const char* json2 = "{ \"greeting\" : \"Hello!\", \"farewell\" : \"bye-bye!\", \"foo\" : {} }";
101
+ cout << json2 << endl;
102
+ ParseMessages(json2, messages);
103
+
104
+ return 0;
105
+ }
@@ -0,0 +1,176 @@
1
+ // Example of parsing JSON to document by parts.
2
+
3
+ // Using C++11 threads
4
+ // Temporarily disable for clang (older version) due to incompatibility with libstdc++
5
+ #if (__cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1700)) && !defined(__clang__)
6
+
7
+ #include "rapidjson/document.h"
8
+ #include "rapidjson/error/en.h"
9
+ #include "rapidjson/writer.h"
10
+ #include "rapidjson/ostreamwrapper.h"
11
+ #include <condition_variable>
12
+ #include <iostream>
13
+ #include <mutex>
14
+ #include <thread>
15
+
16
+ using namespace rapidjson;
17
+
18
+ template<unsigned parseFlags = kParseDefaultFlags>
19
+ class AsyncDocumentParser {
20
+ public:
21
+ AsyncDocumentParser(Document& d)
22
+ : stream_(*this)
23
+ , d_(d)
24
+ , parseThread_()
25
+ , mutex_()
26
+ , notEmpty_()
27
+ , finish_()
28
+ , completed_()
29
+ {
30
+ // Create and execute thread after all member variables are initialized.
31
+ parseThread_ = std::thread(&AsyncDocumentParser::Parse, this);
32
+ }
33
+
34
+ ~AsyncDocumentParser() {
35
+ if (!parseThread_.joinable())
36
+ return;
37
+
38
+ {
39
+ std::unique_lock<std::mutex> lock(mutex_);
40
+
41
+ // Wait until the buffer is read up (or parsing is completed)
42
+ while (!stream_.Empty() && !completed_)
43
+ finish_.wait(lock);
44
+
45
+ // Automatically append '\0' as the terminator in the stream.
46
+ static const char terminator[] = "";
47
+ stream_.src_ = terminator;
48
+ stream_.end_ = terminator + 1;
49
+ notEmpty_.notify_one(); // unblock the AsyncStringStream
50
+ }
51
+
52
+ parseThread_.join();
53
+ }
54
+
55
+ void ParsePart(const char* buffer, size_t length) {
56
+ std::unique_lock<std::mutex> lock(mutex_);
57
+
58
+ // Wait until the buffer is read up (or parsing is completed)
59
+ while (!stream_.Empty() && !completed_)
60
+ finish_.wait(lock);
61
+
62
+ // Stop further parsing if the parsing process is completed.
63
+ if (completed_)
64
+ return;
65
+
66
+ // Set the buffer to stream and unblock the AsyncStringStream
67
+ stream_.src_ = buffer;
68
+ stream_.end_ = buffer + length;
69
+ notEmpty_.notify_one();
70
+ }
71
+
72
+ private:
73
+ void Parse() {
74
+ d_.ParseStream<parseFlags>(stream_);
75
+
76
+ // The stream may not be fully read, notify finish anyway to unblock ParsePart()
77
+ std::unique_lock<std::mutex> lock(mutex_);
78
+ completed_ = true; // Parsing process is completed
79
+ finish_.notify_one(); // Unblock ParsePart() or destructor if they are waiting.
80
+ }
81
+
82
+ struct AsyncStringStream {
83
+ typedef char Ch;
84
+
85
+ AsyncStringStream(AsyncDocumentParser& parser) : parser_(parser), src_(), end_(), count_() {}
86
+
87
+ char Peek() const {
88
+ std::unique_lock<std::mutex> lock(parser_.mutex_);
89
+
90
+ // If nothing in stream, block to wait.
91
+ while (Empty())
92
+ parser_.notEmpty_.wait(lock);
93
+
94
+ return *src_;
95
+ }
96
+
97
+ char Take() {
98
+ std::unique_lock<std::mutex> lock(parser_.mutex_);
99
+
100
+ // If nothing in stream, block to wait.
101
+ while (Empty())
102
+ parser_.notEmpty_.wait(lock);
103
+
104
+ count_++;
105
+ char c = *src_++;
106
+
107
+ // If all stream is read up, notify that the stream is finish.
108
+ if (Empty())
109
+ parser_.finish_.notify_one();
110
+
111
+ return c;
112
+ }
113
+
114
+ size_t Tell() const { return count_; }
115
+
116
+ // Not implemented
117
+ char* PutBegin() { return 0; }
118
+ void Put(char) {}
119
+ void Flush() {}
120
+ size_t PutEnd(char*) { return 0; }
121
+
122
+ bool Empty() const { return src_ == end_; }
123
+
124
+ AsyncDocumentParser& parser_;
125
+ const char* src_; //!< Current read position.
126
+ const char* end_; //!< End of buffer
127
+ size_t count_; //!< Number of characters taken so far.
128
+ };
129
+
130
+ AsyncStringStream stream_;
131
+ Document& d_;
132
+ std::thread parseThread_;
133
+ std::mutex mutex_;
134
+ std::condition_variable notEmpty_;
135
+ std::condition_variable finish_;
136
+ bool completed_;
137
+ };
138
+
139
+ int main() {
140
+ Document d;
141
+
142
+ {
143
+ AsyncDocumentParser<> parser(d);
144
+
145
+ const char json1[] = " { \"hello\" : \"world\", \"t\" : tr";
146
+ //const char json1[] = " { \"hello\" : \"world\", \"t\" : trX"; // Fot test parsing error
147
+ const char json2[] = "ue, \"f\" : false, \"n\": null, \"i\":123, \"pi\": 3.14";
148
+ const char json3[] = "16, \"a\":[1, 2, 3, 4] } ";
149
+
150
+ parser.ParsePart(json1, sizeof(json1) - 1);
151
+ parser.ParsePart(json2, sizeof(json2) - 1);
152
+ parser.ParsePart(json3, sizeof(json3) - 1);
153
+ }
154
+
155
+ if (d.HasParseError()) {
156
+ std::cout << "Error at offset " << d.GetErrorOffset() << ": " << GetParseError_En(d.GetParseError()) << std::endl;
157
+ return EXIT_FAILURE;
158
+ }
159
+
160
+ // Stringify the JSON to cout
161
+ OStreamWrapper os(std::cout);
162
+ Writer<OStreamWrapper> writer(os);
163
+ d.Accept(writer);
164
+ std::cout << std::endl;
165
+
166
+ return EXIT_SUCCESS;
167
+ }
168
+
169
+ #else // Not supporting C++11
170
+
171
+ #include <iostream>
172
+ int main() {
173
+ std::cout << "This example requires C++11 compiler" << std::endl;
174
+ }
175
+
176
+ #endif
@@ -0,0 +1,30 @@
1
+ // JSON pretty formatting example
2
+ // This example can only handle UTF-8. For handling other encodings, see prettyauto example.
3
+
4
+ #include "rapidjson/reader.h"
5
+ #include "rapidjson/prettywriter.h"
6
+ #include "rapidjson/filereadstream.h"
7
+ #include "rapidjson/filewritestream.h"
8
+ #include "rapidjson/error/en.h"
9
+
10
+ using namespace rapidjson;
11
+
12
+ int main(int, char*[]) {
13
+ // Prepare reader and input stream.
14
+ Reader reader;
15
+ char readBuffer[65536];
16
+ FileReadStream is(stdin, readBuffer, sizeof(readBuffer));
17
+
18
+ // Prepare writer and output stream.
19
+ char writeBuffer[65536];
20
+ FileWriteStream os(stdout, writeBuffer, sizeof(writeBuffer));
21
+ PrettyWriter<FileWriteStream> writer(os);
22
+
23
+ // JSON reader parse from the input stream and let writer generate the output.
24
+ if (!reader.Parse<kParseValidateEncodingFlag>(is, writer)) {
25
+ fprintf(stderr, "\nError(%u): %s\n", static_cast<unsigned>(reader.GetErrorOffset()), GetParseError_En(reader.GetParseErrorCode()));
26
+ return 1;
27
+ }
28
+
29
+ return 0;
30
+ }
@@ -0,0 +1,56 @@
1
+ // JSON pretty formatting example
2
+ // This example can handle UTF-8/UTF-16LE/UTF-16BE/UTF-32LE/UTF-32BE.
3
+ // The input firstly convert to UTF8, and then write to the original encoding with pretty formatting.
4
+
5
+ #include "rapidjson/reader.h"
6
+ #include "rapidjson/prettywriter.h"
7
+ #include "rapidjson/filereadstream.h"
8
+ #include "rapidjson/filewritestream.h"
9
+ #include "rapidjson/encodedstream.h" // NEW
10
+ #include "rapidjson/error/en.h"
11
+ #ifdef _WIN32
12
+ #include <fcntl.h>
13
+ #include <io.h>
14
+ #endif
15
+
16
+ using namespace rapidjson;
17
+
18
+ int main(int, char*[]) {
19
+ #ifdef _WIN32
20
+ // Prevent Windows converting between CR+LF and LF
21
+ _setmode(_fileno(stdin), _O_BINARY); // NEW
22
+ _setmode(_fileno(stdout), _O_BINARY); // NEW
23
+ #endif
24
+
25
+ // Prepare reader and input stream.
26
+ //Reader reader;
27
+ GenericReader<AutoUTF<unsigned>, UTF8<> > reader; // CHANGED
28
+ char readBuffer[65536];
29
+ FileReadStream is(stdin, readBuffer, sizeof(readBuffer));
30
+ AutoUTFInputStream<unsigned, FileReadStream> eis(is); // NEW
31
+
32
+ // Prepare writer and output stream.
33
+ char writeBuffer[65536];
34
+ FileWriteStream os(stdout, writeBuffer, sizeof(writeBuffer));
35
+
36
+ #if 1
37
+ // Use the same Encoding of the input. Also use BOM according to input.
38
+ typedef AutoUTFOutputStream<unsigned, FileWriteStream> OutputStream; // NEW
39
+ OutputStream eos(os, eis.GetType(), eis.HasBOM()); // NEW
40
+ PrettyWriter<OutputStream, UTF8<>, AutoUTF<unsigned> > writer(eos); // CHANGED
41
+ #else
42
+ // You may also use static bound encoding type, such as output to UTF-16LE with BOM
43
+ typedef EncodedOutputStream<UTF16LE<>,FileWriteStream> OutputStream; // NEW
44
+ OutputStream eos(os, true); // NEW
45
+ PrettyWriter<OutputStream, UTF8<>, UTF16LE<> > writer(eos); // CHANGED
46
+ #endif
47
+
48
+ // JSON reader parse from the input stream and let writer generate the output.
49
+ //if (!reader.Parse<kParseValidateEncodingFlag>(is, writer)) {
50
+ if (!reader.Parse<kParseValidateEncodingFlag>(eis, writer)) { // CHANGED
51
+ fprintf(stderr, "\nError(%u): %s\n", static_cast<unsigned>(reader.GetErrorOffset()), GetParseError_En(reader.GetParseErrorCode()));
52
+ return 1;
53
+ }
54
+
55
+ return 0;
56
+ }
@@ -0,0 +1,78 @@
1
+ // Schema Validator example
2
+
3
+ // The example validates JSON text from stdin with a JSON schema specified in the argument.
4
+
5
+ #include "rapidjson/error/en.h"
6
+ #include "rapidjson/filereadstream.h"
7
+ #include "rapidjson/schema.h"
8
+ #include "rapidjson/stringbuffer.h"
9
+ #include "rapidjson/prettywriter.h"
10
+
11
+ using namespace rapidjson;
12
+
13
+ int main(int argc, char *argv[]) {
14
+ if (argc != 2) {
15
+ fprintf(stderr, "Usage: schemavalidator schema.json < input.json\n");
16
+ return EXIT_FAILURE;
17
+ }
18
+
19
+ // Read a JSON schema from file into Document
20
+ Document d;
21
+ char buffer[4096];
22
+
23
+ {
24
+ FILE *fp = fopen(argv[1], "r");
25
+ if (!fp) {
26
+ printf("Schema file '%s' not found\n", argv[1]);
27
+ return -1;
28
+ }
29
+ FileReadStream fs(fp, buffer, sizeof(buffer));
30
+ d.ParseStream(fs);
31
+ if (d.HasParseError()) {
32
+ fprintf(stderr, "Schema file '%s' is not a valid JSON\n", argv[1]);
33
+ fprintf(stderr, "Error(offset %u): %s\n",
34
+ static_cast<unsigned>(d.GetErrorOffset()),
35
+ GetParseError_En(d.GetParseError()));
36
+ fclose(fp);
37
+ return EXIT_FAILURE;
38
+ }
39
+ fclose(fp);
40
+ }
41
+
42
+ // Then convert the Document into SchemaDocument
43
+ SchemaDocument sd(d);
44
+
45
+ // Use reader to parse the JSON in stdin, and forward SAX events to validator
46
+ SchemaValidator validator(sd);
47
+ Reader reader;
48
+ FileReadStream is(stdin, buffer, sizeof(buffer));
49
+ if (!reader.Parse(is, validator) && reader.GetParseErrorCode() != kParseErrorTermination) {
50
+ // Schema validator error would cause kParseErrorTermination, which will handle it in next step.
51
+ fprintf(stderr, "Input is not a valid JSON\n");
52
+ fprintf(stderr, "Error(offset %u): %s\n",
53
+ static_cast<unsigned>(reader.GetErrorOffset()),
54
+ GetParseError_En(reader.GetParseErrorCode()));
55
+ }
56
+
57
+ // Check the validation result
58
+ if (validator.IsValid()) {
59
+ printf("Input JSON is valid.\n");
60
+ return EXIT_SUCCESS;
61
+ }
62
+ else {
63
+ printf("Input JSON is invalid.\n");
64
+ StringBuffer sb;
65
+ validator.GetInvalidSchemaPointer().StringifyUriFragment(sb);
66
+ fprintf(stderr, "Invalid schema: %s\n", sb.GetString());
67
+ fprintf(stderr, "Invalid keyword: %s\n", validator.GetInvalidSchemaKeyword());
68
+ sb.Clear();
69
+ validator.GetInvalidDocumentPointer().StringifyUriFragment(sb);
70
+ fprintf(stderr, "Invalid document: %s\n", sb.GetString());
71
+ // Detailed violation report is available as a JSON value
72
+ sb.Clear();
73
+ PrettyWriter<StringBuffer> w(sb);
74
+ validator.GetError().Accept(w);
75
+ fprintf(stderr, "Error report:\n%s\n", sb.GetString());
76
+ return EXIT_FAILURE;
77
+ }
78
+ }