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,160 @@
1
+ // Tencent is pleased to support the open source community by making RapidJSON available.
2
+ //
3
+ // Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
4
+ //
5
+ // Licensed under the MIT License (the "License"); you may not use this file except
6
+ // in compliance with the License. You may obtain a copy of the License at
7
+ //
8
+ // http://opensource.org/licenses/MIT
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software distributed
11
+ // under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
12
+ // CONDITIONS OF ANY KIND, either express or implied. See the License for the
13
+ // specific language governing permissions and limitations under the License.
14
+
15
+ #include "unittest.h"
16
+ #include "rapidjson/internal/itoa.h"
17
+
18
+ #ifdef __GNUC__
19
+ RAPIDJSON_DIAG_PUSH
20
+ RAPIDJSON_DIAG_OFF(type-limits)
21
+ #endif
22
+
23
+ using namespace rapidjson::internal;
24
+
25
+ template <typename T>
26
+ struct Traits {
27
+ };
28
+
29
+ template <>
30
+ struct Traits<uint32_t> {
31
+ enum { kBufferSize = 11 };
32
+ enum { kMaxDigit = 10 };
33
+ static uint32_t Negate(uint32_t x) { return x; }
34
+ };
35
+
36
+ template <>
37
+ struct Traits<int32_t> {
38
+ enum { kBufferSize = 12 };
39
+ enum { kMaxDigit = 10 };
40
+ static int32_t Negate(int32_t x) { return -x; }
41
+ };
42
+
43
+ template <>
44
+ struct Traits<uint64_t> {
45
+ enum { kBufferSize = 21 };
46
+ enum { kMaxDigit = 20 };
47
+ static uint64_t Negate(uint64_t x) { return x; }
48
+ };
49
+
50
+ template <>
51
+ struct Traits<int64_t> {
52
+ enum { kBufferSize = 22 };
53
+ enum { kMaxDigit = 20 };
54
+ static int64_t Negate(int64_t x) { return -x; }
55
+ };
56
+
57
+ template <typename T>
58
+ static void VerifyValue(T value, void(*f)(T, char*), char* (*g)(T, char*)) {
59
+ char buffer1[Traits<T>::kBufferSize];
60
+ char buffer2[Traits<T>::kBufferSize];
61
+
62
+ f(value, buffer1);
63
+ *g(value, buffer2) = '\0';
64
+
65
+
66
+ EXPECT_STREQ(buffer1, buffer2);
67
+ }
68
+
69
+ template <typename T>
70
+ static void Verify(void(*f)(T, char*), char* (*g)(T, char*)) {
71
+ // Boundary cases
72
+ VerifyValue<T>(0, f, g);
73
+ VerifyValue<T>((std::numeric_limits<T>::min)(), f, g);
74
+ VerifyValue<T>((std::numeric_limits<T>::max)(), f, g);
75
+
76
+ // 2^n - 1, 2^n, 10^n - 1, 10^n until overflow
77
+ for (int power = 2; power <= 10; power += 8) {
78
+ T i = 1, last;
79
+ do {
80
+ VerifyValue<T>(i - 1, f, g);
81
+ VerifyValue<T>(i, f, g);
82
+ if (std::numeric_limits<T>::min() < 0) {
83
+ VerifyValue<T>(Traits<T>::Negate(i), f, g);
84
+ VerifyValue<T>(Traits<T>::Negate(i + 1), f, g);
85
+ }
86
+ last = i;
87
+ if (i > static_cast<T>(std::numeric_limits<T>::max() / static_cast<T>(power)))
88
+ break;
89
+ i *= static_cast<T>(power);
90
+ } while (last < i);
91
+ }
92
+ }
93
+
94
+ static void u32toa_naive(uint32_t value, char* buffer) {
95
+ char temp[10];
96
+ char *p = temp;
97
+ do {
98
+ *p++ = static_cast<char>(char(value % 10) + '0');
99
+ value /= 10;
100
+ } while (value > 0);
101
+
102
+ do {
103
+ *buffer++ = *--p;
104
+ } while (p != temp);
105
+
106
+ *buffer = '\0';
107
+ }
108
+
109
+ static void i32toa_naive(int32_t value, char* buffer) {
110
+ uint32_t u = static_cast<uint32_t>(value);
111
+ if (value < 0) {
112
+ *buffer++ = '-';
113
+ u = ~u + 1;
114
+ }
115
+ u32toa_naive(u, buffer);
116
+ }
117
+
118
+ static void u64toa_naive(uint64_t value, char* buffer) {
119
+ char temp[20];
120
+ char *p = temp;
121
+ do {
122
+ *p++ = static_cast<char>(char(value % 10) + '0');
123
+ value /= 10;
124
+ } while (value > 0);
125
+
126
+ do {
127
+ *buffer++ = *--p;
128
+ } while (p != temp);
129
+
130
+ *buffer = '\0';
131
+ }
132
+
133
+ static void i64toa_naive(int64_t value, char* buffer) {
134
+ uint64_t u = static_cast<uint64_t>(value);
135
+ if (value < 0) {
136
+ *buffer++ = '-';
137
+ u = ~u + 1;
138
+ }
139
+ u64toa_naive(u, buffer);
140
+ }
141
+
142
+ TEST(itoa, u32toa) {
143
+ Verify(u32toa_naive, u32toa);
144
+ }
145
+
146
+ TEST(itoa, i32toa) {
147
+ Verify(i32toa_naive, i32toa);
148
+ }
149
+
150
+ TEST(itoa, u64toa) {
151
+ Verify(u64toa_naive, u64toa);
152
+ }
153
+
154
+ TEST(itoa, i64toa) {
155
+ Verify(i64toa_naive, i64toa);
156
+ }
157
+
158
+ #ifdef __GNUC__
159
+ RAPIDJSON_DIAG_POP
160
+ #endif
@@ -0,0 +1,143 @@
1
+ // Tencent is pleased to support the open source community by making RapidJSON available.
2
+ //
3
+ // Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
4
+ //
5
+ // Licensed under the MIT License (the "License"); you may not use this file except
6
+ // in compliance with the License. You may obtain a copy of the License at
7
+ //
8
+ // http://opensource.org/licenses/MIT
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software distributed
11
+ // under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
12
+ // CONDITIONS OF ANY KIND, either express or implied. See the License for the
13
+ // specific language governing permissions and limitations under the License.
14
+
15
+ #include "unittest.h"
16
+
17
+ #include "rapidjson/document.h"
18
+
19
+ using namespace rapidjson;
20
+
21
+ static char* ReadFile(const char* filename, size_t& length) {
22
+ const char *paths[] = {
23
+ "jsonchecker",
24
+ "bin/jsonchecker",
25
+ "../bin/jsonchecker",
26
+ "../../bin/jsonchecker",
27
+ "../../../bin/jsonchecker"
28
+ };
29
+ char buffer[1024];
30
+ FILE *fp = 0;
31
+ for (size_t i = 0; i < sizeof(paths) / sizeof(paths[0]); i++) {
32
+ sprintf(buffer, "%s/%s", paths[i], filename);
33
+ fp = fopen(buffer, "rb");
34
+ if (fp)
35
+ break;
36
+ }
37
+
38
+ if (!fp)
39
+ return 0;
40
+
41
+ fseek(fp, 0, SEEK_END);
42
+ length = static_cast<size_t>(ftell(fp));
43
+ fseek(fp, 0, SEEK_SET);
44
+ char* json = static_cast<char*>(malloc(length + 1));
45
+ size_t readLength = fread(json, 1, length, fp);
46
+ json[readLength] = '\0';
47
+ fclose(fp);
48
+ return json;
49
+ }
50
+
51
+ struct NoOpHandler {
52
+ bool Null() { return true; }
53
+ bool Bool(bool) { return true; }
54
+ bool Int(int) { return true; }
55
+ bool Uint(unsigned) { return true; }
56
+ bool Int64(int64_t) { return true; }
57
+ bool Uint64(uint64_t) { return true; }
58
+ bool Double(double) { return true; }
59
+ bool RawNumber(const char*, SizeType, bool) { return true; }
60
+ bool String(const char*, SizeType, bool) { return true; }
61
+ bool StartObject() { return true; }
62
+ bool Key(const char*, SizeType, bool) { return true; }
63
+ bool EndObject(SizeType) { return true; }
64
+ bool StartArray() { return true; }
65
+ bool EndArray(SizeType) { return true; }
66
+ };
67
+
68
+
69
+ TEST(JsonChecker, Reader) {
70
+ char filename[256];
71
+
72
+ // jsonchecker/failXX.json
73
+ for (int i = 1; i <= 33; i++) {
74
+ if (i == 1) // fail1.json is valid in rapidjson, which has no limitation on type of root element (RFC 7159).
75
+ continue;
76
+ if (i == 18) // fail18.json is valid in rapidjson, which has no limitation on depth of nesting.
77
+ continue;
78
+
79
+ sprintf(filename, "fail%d.json", i);
80
+ size_t length;
81
+ char* json = ReadFile(filename, length);
82
+ if (!json) {
83
+ printf("jsonchecker file %s not found", filename);
84
+ ADD_FAILURE();
85
+ continue;
86
+ }
87
+
88
+ // Test stack-based parsing.
89
+ GenericDocument<UTF8<>, CrtAllocator> document; // Use Crt allocator to check exception-safety (no memory leak)
90
+ document.Parse(json);
91
+ EXPECT_TRUE(document.HasParseError()) << filename;
92
+
93
+ // Test iterative parsing.
94
+ document.Parse<kParseIterativeFlag>(json);
95
+ EXPECT_TRUE(document.HasParseError()) << filename;
96
+
97
+ // Test iterative pull-parsing.
98
+ Reader reader;
99
+ StringStream ss(json);
100
+ NoOpHandler h;
101
+ reader.IterativeParseInit();
102
+ while (!reader.IterativeParseComplete()) {
103
+ if (!reader.IterativeParseNext<kParseDefaultFlags>(ss, h))
104
+ break;
105
+ }
106
+ EXPECT_TRUE(reader.HasParseError()) << filename;
107
+
108
+ free(json);
109
+ }
110
+
111
+ // passX.json
112
+ for (int i = 1; i <= 3; i++) {
113
+ sprintf(filename, "pass%d.json", i);
114
+ size_t length;
115
+ char* json = ReadFile(filename, length);
116
+ if (!json) {
117
+ printf("jsonchecker file %s not found", filename);
118
+ continue;
119
+ }
120
+
121
+ // Test stack-based parsing.
122
+ GenericDocument<UTF8<>, CrtAllocator> document; // Use Crt allocator to check exception-safety (no memory leak)
123
+ document.Parse(json);
124
+ EXPECT_FALSE(document.HasParseError()) << filename;
125
+
126
+ // Test iterative parsing.
127
+ document.Parse<kParseIterativeFlag>(json);
128
+ EXPECT_FALSE(document.HasParseError()) << filename;
129
+
130
+ // Test iterative pull-parsing.
131
+ Reader reader;
132
+ StringStream ss(json);
133
+ NoOpHandler h;
134
+ reader.IterativeParseInit();
135
+ while (!reader.IterativeParseComplete()) {
136
+ if (!reader.IterativeParseNext<kParseDefaultFlags>(ss, h))
137
+ break;
138
+ }
139
+ EXPECT_FALSE(reader.HasParseError()) << filename;
140
+
141
+ free(json);
142
+ }
143
+ }
@@ -0,0 +1,70 @@
1
+ // Tencent is pleased to support the open source community by making RapidJSON available.
2
+ //
3
+ // Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
4
+ //
5
+ // Licensed under the MIT License (the "License"); you may not use this file except
6
+ // in compliance with the License. You may obtain a copy of the License at
7
+ //
8
+ // http://opensource.org/licenses/MIT
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software distributed
11
+ // under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
12
+ // CONDITIONS OF ANY KIND, either express or implied. See the License for the
13
+ // specific language governing permissions and limitations under the License.
14
+
15
+ #include "unittest.h"
16
+
17
+ // test another instantiation of RapidJSON in a different namespace
18
+
19
+ #define RAPIDJSON_NAMESPACE my::rapid::json
20
+ #define RAPIDJSON_NAMESPACE_BEGIN namespace my { namespace rapid { namespace json {
21
+ #define RAPIDJSON_NAMESPACE_END } } }
22
+
23
+ // include lots of RapidJSON files
24
+
25
+ #include "rapidjson/document.h"
26
+ #include "rapidjson/writer.h"
27
+ #include "rapidjson/filereadstream.h"
28
+ #include "rapidjson/filewritestream.h"
29
+ #include "rapidjson/encodedstream.h"
30
+ #include "rapidjson/stringbuffer.h"
31
+
32
+ static const char json[] = "{\"hello\":\"world\",\"t\":true,\"f\":false,\"n\":null,\"i\":123,\"pi\":3.1416,\"a\":[1,2,3,4]}";
33
+
34
+ TEST(NamespaceTest,Using) {
35
+ using namespace RAPIDJSON_NAMESPACE;
36
+ typedef GenericDocument<UTF8<>, CrtAllocator> DocumentType;
37
+ DocumentType doc;
38
+
39
+ doc.Parse(json);
40
+ EXPECT_TRUE(!doc.HasParseError());
41
+ }
42
+
43
+ TEST(NamespaceTest,Direct) {
44
+ typedef RAPIDJSON_NAMESPACE::Document Document;
45
+ typedef RAPIDJSON_NAMESPACE::Reader Reader;
46
+ typedef RAPIDJSON_NAMESPACE::StringStream StringStream;
47
+ typedef RAPIDJSON_NAMESPACE::StringBuffer StringBuffer;
48
+ typedef RAPIDJSON_NAMESPACE::Writer<StringBuffer> WriterType;
49
+
50
+ StringStream s(json);
51
+ StringBuffer buffer;
52
+ WriterType writer(buffer);
53
+ buffer.ShrinkToFit();
54
+ Reader reader;
55
+ reader.Parse(s, writer);
56
+
57
+ EXPECT_STREQ(json, buffer.GetString());
58
+ EXPECT_EQ(sizeof(json)-1, buffer.GetSize());
59
+ EXPECT_TRUE(writer.IsComplete());
60
+
61
+ Document doc;
62
+ doc.Parse(buffer.GetString());
63
+ EXPECT_TRUE(!doc.HasParseError());
64
+
65
+ buffer.Clear();
66
+ writer.Reset(buffer);
67
+ doc.Accept(writer);
68
+ EXPECT_STREQ(json, buffer.GetString());
69
+ EXPECT_TRUE(writer.IsComplete());
70
+ }
@@ -0,0 +1,92 @@
1
+ // Tencent is pleased to support the open source community by making RapidJSON available.
2
+ //
3
+ // Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
4
+ //
5
+ // Licensed under the MIT License (the "License"); you may not use this file except
6
+ // in compliance with the License. You may obtain a copy of the License at
7
+ //
8
+ // http://opensource.org/licenses/MIT
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software distributed
11
+ // under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
12
+ // CONDITIONS OF ANY KIND, either express or implied. See the License for the
13
+ // specific language governing permissions and limitations under the License.
14
+
15
+ #include "unittest.h"
16
+
17
+ #include "rapidjson/ostreamwrapper.h"
18
+ #include "rapidjson/encodedstream.h"
19
+ #include "rapidjson/document.h"
20
+ #include <sstream>
21
+ #include <fstream>
22
+
23
+ using namespace rapidjson;
24
+ using namespace std;
25
+
26
+ template <typename StringStreamType>
27
+ static void TestStringStream() {
28
+ typedef typename StringStreamType::char_type Ch;
29
+
30
+ Ch s[] = { 'A', 'B', 'C', '\0' };
31
+ StringStreamType oss(s);
32
+ BasicOStreamWrapper<StringStreamType> os(oss);
33
+ for (size_t i = 0; i < 3; i++)
34
+ os.Put(s[i]);
35
+ os.Flush();
36
+ for (size_t i = 0; i < 3; i++)
37
+ EXPECT_EQ(s[i], oss.str()[i]);
38
+ }
39
+
40
+ TEST(OStreamWrapper, ostringstream) {
41
+ TestStringStream<ostringstream>();
42
+ }
43
+
44
+ TEST(OStreamWrapper, stringstream) {
45
+ TestStringStream<stringstream>();
46
+ }
47
+
48
+ TEST(OStreamWrapper, wostringstream) {
49
+ TestStringStream<wostringstream>();
50
+ }
51
+
52
+ TEST(OStreamWrapper, wstringstream) {
53
+ TestStringStream<wstringstream>();
54
+ }
55
+
56
+ TEST(OStreamWrapper, cout) {
57
+ OStreamWrapper os(cout);
58
+ const char* s = "Hello World!\n";
59
+ while (*s)
60
+ os.Put(*s++);
61
+ os.Flush();
62
+ }
63
+
64
+ template <typename FileStreamType>
65
+ static void TestFileStream() {
66
+ char filename[L_tmpnam];
67
+ FILE* fp = TempFile(filename);
68
+ fclose(fp);
69
+
70
+ const char* s = "Hello World!\n";
71
+ {
72
+ FileStreamType ofs(filename, ios::out | ios::binary);
73
+ BasicOStreamWrapper<FileStreamType> osw(ofs);
74
+ for (const char* p = s; *p; p++)
75
+ osw.Put(*p);
76
+ osw.Flush();
77
+ }
78
+
79
+ fp = fopen(filename, "r");
80
+ ASSERT_TRUE( fp != NULL );
81
+ for (const char* p = s; *p; p++)
82
+ EXPECT_EQ(*p, static_cast<char>(fgetc(fp)));
83
+ fclose(fp);
84
+ }
85
+
86
+ TEST(OStreamWrapper, ofstream) {
87
+ TestFileStream<ofstream>();
88
+ }
89
+
90
+ TEST(OStreamWrapper, fstream) {
91
+ TestFileStream<fstream>();
92
+ }