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,8 @@
1
+ # BUILD: docker build -t rapidjson-debian .
2
+ # RUN: docker run -it -v "$PWD"/../..:/rapidjson rapidjson-debian
3
+
4
+ FROM debian:jessie
5
+
6
+ RUN apt-get update && apt-get install -y g++ cmake doxygen valgrind
7
+
8
+ ENTRYPOINT ["/bin/bash"]
@@ -0,0 +1,45 @@
1
+ cmake_minimum_required(VERSION 2.8)
2
+
3
+ if(POLICY CMP0054)
4
+ cmake_policy(SET CMP0054 NEW)
5
+ endif()
6
+
7
+ set(EXAMPLES
8
+ capitalize
9
+ condense
10
+ filterkey
11
+ filterkeydom
12
+ jsonx
13
+ lookaheadparser
14
+ messagereader
15
+ parsebyparts
16
+ pretty
17
+ prettyauto
18
+ schemavalidator
19
+ serialize
20
+ simpledom
21
+ simplereader
22
+ simplepullreader
23
+ simplewriter
24
+ tutorial)
25
+
26
+ include_directories("../include/")
27
+
28
+ add_definitions(-D__STDC_FORMAT_MACROS)
29
+ set_property(DIRECTORY PROPERTY COMPILE_OPTIONS ${EXTRA_CXX_FLAGS})
30
+
31
+ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
32
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")
33
+ endif()
34
+
35
+ add_executable(archivertest archiver/archiver.cpp archiver/archivertest.cpp)
36
+
37
+ foreach (example ${EXAMPLES})
38
+ add_executable(${example} ${example}/${example}.cpp)
39
+ endforeach()
40
+
41
+ if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
42
+ target_link_libraries(parsebyparts pthread)
43
+ endif()
44
+
45
+ add_custom_target(examples ALL DEPENDS ${EXAMPLES})
@@ -0,0 +1,292 @@
1
+ #include "archiver.h"
2
+ #include <cassert>
3
+ #include <stack>
4
+ #include "rapidjson/document.h"
5
+ #include "rapidjson/prettywriter.h"
6
+ #include "rapidjson/stringbuffer.h"
7
+
8
+ using namespace rapidjson;
9
+
10
+ struct JsonReaderStackItem {
11
+ enum State {
12
+ BeforeStart, //!< An object/array is in the stack but it is not yet called by StartObject()/StartArray().
13
+ Started, //!< An object/array is called by StartObject()/StartArray().
14
+ Closed //!< An array is closed after read all element, but before EndArray().
15
+ };
16
+
17
+ JsonReaderStackItem(const Value* value, State state) : value(value), state(state), index() {}
18
+
19
+ const Value* value;
20
+ State state;
21
+ SizeType index; // For array iteration
22
+ };
23
+
24
+ typedef std::stack<JsonReaderStackItem> JsonReaderStack;
25
+
26
+ #define DOCUMENT reinterpret_cast<Document*>(mDocument)
27
+ #define STACK (reinterpret_cast<JsonReaderStack*>(mStack))
28
+ #define TOP (STACK->top())
29
+ #define CURRENT (*TOP.value)
30
+
31
+ JsonReader::JsonReader(const char* json) : mDocument(), mStack(), mError(false) {
32
+ mDocument = new Document;
33
+ DOCUMENT->Parse(json);
34
+ if (DOCUMENT->HasParseError())
35
+ mError = true;
36
+ else {
37
+ mStack = new JsonReaderStack;
38
+ STACK->push(JsonReaderStackItem(DOCUMENT, JsonReaderStackItem::BeforeStart));
39
+ }
40
+ }
41
+
42
+ JsonReader::~JsonReader() {
43
+ delete DOCUMENT;
44
+ delete STACK;
45
+ }
46
+
47
+ // Archive concept
48
+ JsonReader& JsonReader::StartObject() {
49
+ if (!mError) {
50
+ if (CURRENT.IsObject() && TOP.state == JsonReaderStackItem::BeforeStart)
51
+ TOP.state = JsonReaderStackItem::Started;
52
+ else
53
+ mError = true;
54
+ }
55
+ return *this;
56
+ }
57
+
58
+ JsonReader& JsonReader::EndObject() {
59
+ if (!mError) {
60
+ if (CURRENT.IsObject() && TOP.state == JsonReaderStackItem::Started)
61
+ Next();
62
+ else
63
+ mError = true;
64
+ }
65
+ return *this;
66
+ }
67
+
68
+ JsonReader& JsonReader::Member(const char* name) {
69
+ if (!mError) {
70
+ if (CURRENT.IsObject() && TOP.state == JsonReaderStackItem::Started) {
71
+ Value::ConstMemberIterator memberItr = CURRENT.FindMember(name);
72
+ if (memberItr != CURRENT.MemberEnd())
73
+ STACK->push(JsonReaderStackItem(&memberItr->value, JsonReaderStackItem::BeforeStart));
74
+ else
75
+ mError = true;
76
+ }
77
+ else
78
+ mError = true;
79
+ }
80
+ return *this;
81
+ }
82
+
83
+ bool JsonReader::HasMember(const char* name) const {
84
+ if (!mError && CURRENT.IsObject() && TOP.state == JsonReaderStackItem::Started)
85
+ return CURRENT.HasMember(name);
86
+ return false;
87
+ }
88
+
89
+ JsonReader& JsonReader::StartArray(size_t* size) {
90
+ if (!mError) {
91
+ if (CURRENT.IsArray() && TOP.state == JsonReaderStackItem::BeforeStart) {
92
+ TOP.state = JsonReaderStackItem::Started;
93
+ if (size)
94
+ *size = CURRENT.Size();
95
+
96
+ if (!CURRENT.Empty()) {
97
+ const Value* value = &CURRENT[TOP.index];
98
+ STACK->push(JsonReaderStackItem(value, JsonReaderStackItem::BeforeStart));
99
+ }
100
+ else
101
+ TOP.state = JsonReaderStackItem::Closed;
102
+ }
103
+ else
104
+ mError = true;
105
+ }
106
+ return *this;
107
+ }
108
+
109
+ JsonReader& JsonReader::EndArray() {
110
+ if (!mError) {
111
+ if (CURRENT.IsArray() && TOP.state == JsonReaderStackItem::Closed)
112
+ Next();
113
+ else
114
+ mError = true;
115
+ }
116
+ return *this;
117
+ }
118
+
119
+ JsonReader& JsonReader::operator&(bool& b) {
120
+ if (!mError) {
121
+ if (CURRENT.IsBool()) {
122
+ b = CURRENT.GetBool();
123
+ Next();
124
+ }
125
+ else
126
+ mError = true;
127
+ }
128
+ return *this;
129
+ }
130
+
131
+ JsonReader& JsonReader::operator&(unsigned& u) {
132
+ if (!mError) {
133
+ if (CURRENT.IsUint()) {
134
+ u = CURRENT.GetUint();
135
+ Next();
136
+ }
137
+ else
138
+ mError = true;
139
+ }
140
+ return *this;
141
+ }
142
+
143
+ JsonReader& JsonReader::operator&(int& i) {
144
+ if (!mError) {
145
+ if (CURRENT.IsInt()) {
146
+ i = CURRENT.GetInt();
147
+ Next();
148
+ }
149
+ else
150
+ mError = true;
151
+ }
152
+ return *this;
153
+ }
154
+
155
+ JsonReader& JsonReader::operator&(double& d) {
156
+ if (!mError) {
157
+ if (CURRENT.IsNumber()) {
158
+ d = CURRENT.GetDouble();
159
+ Next();
160
+ }
161
+ else
162
+ mError = true;
163
+ }
164
+ return *this;
165
+ }
166
+
167
+ JsonReader& JsonReader::operator&(std::string& s) {
168
+ if (!mError) {
169
+ if (CURRENT.IsString()) {
170
+ s = CURRENT.GetString();
171
+ Next();
172
+ }
173
+ else
174
+ mError = true;
175
+ }
176
+ return *this;
177
+ }
178
+
179
+ JsonReader& JsonReader::SetNull() {
180
+ // This function is for JsonWriter only.
181
+ mError = true;
182
+ return *this;
183
+ }
184
+
185
+ void JsonReader::Next() {
186
+ if (!mError) {
187
+ assert(!STACK->empty());
188
+ STACK->pop();
189
+
190
+ if (!STACK->empty() && CURRENT.IsArray()) {
191
+ if (TOP.state == JsonReaderStackItem::Started) { // Otherwise means reading array item pass end
192
+ if (TOP.index < CURRENT.Size() - 1) {
193
+ const Value* value = &CURRENT[++TOP.index];
194
+ STACK->push(JsonReaderStackItem(value, JsonReaderStackItem::BeforeStart));
195
+ }
196
+ else
197
+ TOP.state = JsonReaderStackItem::Closed;
198
+ }
199
+ else
200
+ mError = true;
201
+ }
202
+ }
203
+ }
204
+
205
+ #undef DOCUMENT
206
+ #undef STACK
207
+ #undef TOP
208
+ #undef CURRENT
209
+
210
+ ////////////////////////////////////////////////////////////////////////////////
211
+ // JsonWriter
212
+
213
+ #define WRITER reinterpret_cast<PrettyWriter<StringBuffer>*>(mWriter)
214
+ #define STREAM reinterpret_cast<StringBuffer*>(mStream)
215
+
216
+ JsonWriter::JsonWriter() : mWriter(), mStream() {
217
+ mStream = new StringBuffer;
218
+ mWriter = new PrettyWriter<StringBuffer>(*STREAM);
219
+ }
220
+
221
+ JsonWriter::~JsonWriter() {
222
+ delete WRITER;
223
+ delete STREAM;
224
+ }
225
+
226
+ const char* JsonWriter::GetString() const {
227
+ return STREAM->GetString();
228
+ }
229
+
230
+ JsonWriter& JsonWriter::StartObject() {
231
+ WRITER->StartObject();
232
+ return *this;
233
+ }
234
+
235
+ JsonWriter& JsonWriter::EndObject() {
236
+ WRITER->EndObject();
237
+ return *this;
238
+ }
239
+
240
+ JsonWriter& JsonWriter::Member(const char* name) {
241
+ WRITER->String(name, static_cast<SizeType>(strlen(name)));
242
+ return *this;
243
+ }
244
+
245
+ bool JsonWriter::HasMember(const char*) const {
246
+ // This function is for JsonReader only.
247
+ assert(false);
248
+ return false;
249
+ }
250
+
251
+ JsonWriter& JsonWriter::StartArray(size_t*) {
252
+ WRITER->StartArray();
253
+ return *this;
254
+ }
255
+
256
+ JsonWriter& JsonWriter::EndArray() {
257
+ WRITER->EndArray();
258
+ return *this;
259
+ }
260
+
261
+ JsonWriter& JsonWriter::operator&(bool& b) {
262
+ WRITER->Bool(b);
263
+ return *this;
264
+ }
265
+
266
+ JsonWriter& JsonWriter::operator&(unsigned& u) {
267
+ WRITER->Uint(u);
268
+ return *this;
269
+ }
270
+
271
+ JsonWriter& JsonWriter::operator&(int& i) {
272
+ WRITER->Int(i);
273
+ return *this;
274
+ }
275
+
276
+ JsonWriter& JsonWriter::operator&(double& d) {
277
+ WRITER->Double(d);
278
+ return *this;
279
+ }
280
+
281
+ JsonWriter& JsonWriter::operator&(std::string& s) {
282
+ WRITER->String(s.c_str(), static_cast<SizeType>(s.size()));
283
+ return *this;
284
+ }
285
+
286
+ JsonWriter& JsonWriter::SetNull() {
287
+ WRITER->Null();
288
+ return *this;
289
+ }
290
+
291
+ #undef STREAM
292
+ #undef WRITER
@@ -0,0 +1,145 @@
1
+ #ifndef ARCHIVER_H_
2
+ #define ARCHIVER_H_
3
+
4
+ #include <cstddef>
5
+ #include <string>
6
+
7
+ /**
8
+ \class Archiver
9
+ \brief Archiver concept
10
+
11
+ Archiver can be a reader or writer for serialization or deserialization respectively.
12
+
13
+ class Archiver {
14
+ public:
15
+ /// \returns true if the archiver is in normal state. false if it has errors.
16
+ operator bool() const;
17
+
18
+ /// Starts an object
19
+ Archiver& StartObject();
20
+
21
+ /// After calling StartObject(), assign a member with a name
22
+ Archiver& Member(const char* name);
23
+
24
+ /// After calling StartObject(), check if a member presents
25
+ bool HasMember(const char* name) const;
26
+
27
+ /// Ends an object
28
+ Archiver& EndObject();
29
+
30
+ /// Starts an array
31
+ /// \param size If Archiver::IsReader is true, the size of array is written.
32
+ Archiver& StartArray(size_t* size = 0);
33
+
34
+ /// Ends an array
35
+ Archiver& EndArray();
36
+
37
+ /// Read/Write primitive types.
38
+ Archiver& operator&(bool& b);
39
+ Archiver& operator&(unsigned& u);
40
+ Archiver& operator&(int& i);
41
+ Archiver& operator&(double& d);
42
+ Archiver& operator&(std::string& s);
43
+
44
+ /// Write primitive types.
45
+ Archiver& SetNull();
46
+
47
+ //! Whether it is a reader.
48
+ static const bool IsReader;
49
+
50
+ //! Whether it is a writer.
51
+ static const bool IsWriter;
52
+ };
53
+ */
54
+
55
+ /// Represents a JSON reader which implements Archiver concept.
56
+ class JsonReader {
57
+ public:
58
+ /// Constructor.
59
+ /**
60
+ \param json A non-const source json string for in-situ parsing.
61
+ \note in-situ means the source JSON string will be modified after parsing.
62
+ */
63
+ JsonReader(const char* json);
64
+
65
+ /// Destructor.
66
+ ~JsonReader();
67
+
68
+ // Archive concept
69
+
70
+ operator bool() const { return !mError; }
71
+
72
+ JsonReader& StartObject();
73
+ JsonReader& Member(const char* name);
74
+ bool HasMember(const char* name) const;
75
+ JsonReader& EndObject();
76
+
77
+ JsonReader& StartArray(size_t* size = 0);
78
+ JsonReader& EndArray();
79
+
80
+ JsonReader& operator&(bool& b);
81
+ JsonReader& operator&(unsigned& u);
82
+ JsonReader& operator&(int& i);
83
+ JsonReader& operator&(double& d);
84
+ JsonReader& operator&(std::string& s);
85
+
86
+ JsonReader& SetNull();
87
+
88
+ static const bool IsReader = true;
89
+ static const bool IsWriter = !IsReader;
90
+
91
+ private:
92
+ JsonReader(const JsonReader&);
93
+ JsonReader& operator=(const JsonReader&);
94
+
95
+ void Next();
96
+
97
+ // PIMPL
98
+ void* mDocument; ///< DOM result of parsing.
99
+ void* mStack; ///< Stack for iterating the DOM
100
+ bool mError; ///< Whether an error is occured.
101
+ };
102
+
103
+ class JsonWriter {
104
+ public:
105
+ /// Constructor.
106
+ JsonWriter();
107
+
108
+ /// Destructor.
109
+ ~JsonWriter();
110
+
111
+ /// Obtains the serialized JSON string.
112
+ const char* GetString() const;
113
+
114
+ // Archive concept
115
+
116
+ operator bool() const { return true; }
117
+
118
+ JsonWriter& StartObject();
119
+ JsonWriter& Member(const char* name);
120
+ bool HasMember(const char* name) const;
121
+ JsonWriter& EndObject();
122
+
123
+ JsonWriter& StartArray(size_t* size = 0);
124
+ JsonWriter& EndArray();
125
+
126
+ JsonWriter& operator&(bool& b);
127
+ JsonWriter& operator&(unsigned& u);
128
+ JsonWriter& operator&(int& i);
129
+ JsonWriter& operator&(double& d);
130
+ JsonWriter& operator&(std::string& s);
131
+ JsonWriter& SetNull();
132
+
133
+ static const bool IsReader = false;
134
+ static const bool IsWriter = !IsReader;
135
+
136
+ private:
137
+ JsonWriter(const JsonWriter&);
138
+ JsonWriter& operator=(const JsonWriter&);
139
+
140
+ // PIMPL idiom
141
+ void* mWriter; ///< JSON writer.
142
+ void* mStream; ///< Stream buffer.
143
+ };
144
+
145
+ #endif // ARCHIVER_H__