lounge_lizard 0.1.0

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 (348) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +11 -0
  3. data/.gitmodules +3 -0
  4. data/.rspec +2 -0
  5. data/CODE_OF_CONDUCT.md +74 -0
  6. data/Gemfile +4 -0
  7. data/Guardfile +33 -0
  8. data/LICENSE.txt +21 -0
  9. data/README.md +50 -0
  10. data/Rakefile +43 -0
  11. data/bin/console +14 -0
  12. data/bin/setup +8 -0
  13. data/circle.yml +14 -0
  14. data/ext/drafter/CHANGELOG.md +278 -0
  15. data/ext/drafter/Dockerfile +17 -0
  16. data/ext/drafter/Makefile +62 -0
  17. data/ext/drafter/appveyor.yml +17 -0
  18. data/ext/drafter/bin/drafter +0 -0
  19. data/ext/drafter/build/Makefile +387 -0
  20. data/ext/drafter/build/drafter.Makefile +6 -0
  21. data/ext/drafter/build/drafter.target.mk +159 -0
  22. data/ext/drafter/build/ext/snowcrash/libmarkdownparser.target.mk +141 -0
  23. data/ext/drafter/build/ext/snowcrash/libsnowcrash.target.mk +154 -0
  24. data/ext/drafter/build/ext/snowcrash/libsundown.target.mk +149 -0
  25. data/ext/drafter/build/ext/snowcrash/perf-libsnowcrash.target.mk +147 -0
  26. data/ext/drafter/build/ext/snowcrash/snowcrash.Makefile +6 -0
  27. data/ext/drafter/build/gyp-mac-tool +606 -0
  28. data/ext/drafter/build/libdrafter.target.mk +186 -0
  29. data/ext/drafter/build/libsos.target.mk +137 -0
  30. data/ext/drafter/build/out/Release/drafter +0 -0
  31. data/ext/drafter/build/out/Release/libdrafter.dylib +0 -0
  32. data/ext/drafter/build/out/Release/libmarkdownparser.a +0 -0
  33. data/ext/drafter/build/out/Release/libsnowcrash.a +0 -0
  34. data/ext/drafter/build/out/Release/libsos.a +0 -0
  35. data/ext/drafter/build/out/Release/libsundown.a +0 -0
  36. data/ext/drafter/build/out/Release/obj.target/drafter/src/config.o +0 -0
  37. data/ext/drafter/build/out/Release/obj.target/drafter/src/main.o +0 -0
  38. data/ext/drafter/build/out/Release/obj.target/drafter/src/reporting.o +0 -0
  39. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/ConversionContext.o +0 -0
  40. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/NamedTypesRegistry.o +0 -0
  41. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/RefractAPI.o +0 -0
  42. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/RefractDataStructure.o +0 -0
  43. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/RefractElementFactory.o +0 -0
  44. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/RefractSourceMap.o +0 -0
  45. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/Render.o +0 -0
  46. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/Serialize.o +0 -0
  47. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/SerializeAST.o +0 -0
  48. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/SerializeResult.o +0 -0
  49. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/SerializeSourcemap.o +0 -0
  50. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/drafter.o +0 -0
  51. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/drafter_private.o +0 -0
  52. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/ComparableVisitor.o +0 -0
  53. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/Element.o +0 -0
  54. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/ExpandVisitor.o +0 -0
  55. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/IsExpandableVisitor.o +0 -0
  56. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/JSONSchemaVisitor.o +0 -0
  57. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/PrintVisitor.o +0 -0
  58. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/Query.o +0 -0
  59. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/Registry.o +0 -0
  60. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/RenderJSONVisitor.o +0 -0
  61. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/SerializeCompactVisitor.o +0 -0
  62. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/SerializeVisitor.o +0 -0
  63. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/TypeQueryVisitor.o +0 -0
  64. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/VisitorUtils.o +0 -0
  65. data/ext/drafter/build/out/Release/obj.target/libmarkdownparser/ext/snowcrash/ext/markdown-parser/src/ByteBuffer.o +0 -0
  66. data/ext/drafter/build/out/Release/obj.target/libmarkdownparser/ext/snowcrash/ext/markdown-parser/src/MarkdownNode.o +0 -0
  67. data/ext/drafter/build/out/Release/obj.target/libmarkdownparser/ext/snowcrash/ext/markdown-parser/src/MarkdownParser.o +0 -0
  68. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/Blueprint.o +0 -0
  69. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/BlueprintSourcemap.o +0 -0
  70. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/HTTP.o +0 -0
  71. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/HeadersParser.o +0 -0
  72. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/MSON.o +0 -0
  73. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/MSONOneOfParser.o +0 -0
  74. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/MSONSourcemap.o +0 -0
  75. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/MSONTypeSectionParser.o +0 -0
  76. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/MSONValueMemberParser.o +0 -0
  77. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/Section.o +0 -0
  78. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/Signature.o +0 -0
  79. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/UriTemplateParser.o +0 -0
  80. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/posix/RegexMatch.o +0 -0
  81. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/snowcrash.o +0 -0
  82. data/ext/drafter/build/out/Release/obj.target/libsos/ext/sos/src/sos.o +0 -0
  83. data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/html/houdini_href_e.o +0 -0
  84. data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/html/houdini_html_e.o +0 -0
  85. data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/html/html.o +0 -0
  86. data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/html/html_smartypants.o +0 -0
  87. data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/src/autolink.o +0 -0
  88. data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/src/buffer.o +0 -0
  89. data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/src/markdown.o +0 -0
  90. data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/src/src_map.o +0 -0
  91. data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/src/stack.o +0 -0
  92. data/ext/drafter/circle.yml +32 -0
  93. data/ext/drafter/config.gypi +10 -0
  94. data/ext/drafter/config.mk +5 -0
  95. data/ext/drafter/configure +224 -0
  96. data/ext/drafter/drafter.gyp +189 -0
  97. data/ext/drafter/drafter.xcworkspace/contents.xcworkspacedata +13 -0
  98. data/ext/drafter/ext/snowcrash/Makefile +58 -0
  99. data/ext/drafter/ext/snowcrash/appveyor.yml +7 -0
  100. data/ext/drafter/ext/snowcrash/common.gypi +165 -0
  101. data/ext/drafter/ext/snowcrash/configure +197 -0
  102. data/ext/drafter/ext/snowcrash/ext/markdown-parser/Makefile +90 -0
  103. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/CONTRIBUTING.md +10 -0
  104. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/Makefile +84 -0
  105. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/Makefile.win +33 -0
  106. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/examples/smartypants.c +72 -0
  107. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/examples/sundown.c +80 -0
  108. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/html/houdini.h +37 -0
  109. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/html/houdini_href_e.c +108 -0
  110. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/html/houdini_html_e.c +84 -0
  111. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/html/html.c +647 -0
  112. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/html/html.h +77 -0
  113. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/html/html_smartypants.c +389 -0
  114. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/html_block_names.txt +25 -0
  115. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/autolink.c +297 -0
  116. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/autolink.h +51 -0
  117. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/buffer.c +225 -0
  118. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/buffer.h +96 -0
  119. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/html_blocks.h +206 -0
  120. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/markdown.c +2726 -0
  121. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/markdown.h +147 -0
  122. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/src_map.c +204 -0
  123. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/src_map.h +58 -0
  124. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/stack.c +81 -0
  125. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/stack.h +29 -0
  126. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/sundown.def +20 -0
  127. data/ext/drafter/ext/snowcrash/ext/markdown-parser/msvc/markdown/markdown.vcproj +188 -0
  128. data/ext/drafter/ext/snowcrash/ext/markdown-parser/msvc/msvc.sln +38 -0
  129. data/ext/drafter/ext/snowcrash/ext/markdown-parser/msvc/sundown/sundown.vcproj +206 -0
  130. data/ext/drafter/ext/snowcrash/ext/markdown-parser/src/ByteBuffer.cc +160 -0
  131. data/ext/drafter/ext/snowcrash/ext/markdown-parser/src/ByteBuffer.h +90 -0
  132. data/ext/drafter/ext/snowcrash/ext/markdown-parser/src/MarkdownNode.cc +152 -0
  133. data/ext/drafter/ext/snowcrash/ext/markdown-parser/src/MarkdownNode.h +103 -0
  134. data/ext/drafter/ext/snowcrash/ext/markdown-parser/src/MarkdownParser.cc +388 -0
  135. data/ext/drafter/ext/snowcrash/ext/markdown-parser/src/MarkdownParser.h +106 -0
  136. data/ext/drafter/ext/snowcrash/snowcrash.gyp +196 -0
  137. data/ext/drafter/ext/snowcrash/src/ActionParser.h +560 -0
  138. data/ext/drafter/ext/snowcrash/src/AssetParser.h +123 -0
  139. data/ext/drafter/ext/snowcrash/src/AttributesParser.h +123 -0
  140. data/ext/drafter/ext/snowcrash/src/Blueprint.cc +90 -0
  141. data/ext/drafter/ext/snowcrash/src/Blueprint.h +489 -0
  142. data/ext/drafter/ext/snowcrash/src/BlueprintParser.h +845 -0
  143. data/ext/drafter/ext/snowcrash/src/BlueprintSourcemap.cc +81 -0
  144. data/ext/drafter/ext/snowcrash/src/BlueprintSourcemap.h +345 -0
  145. data/ext/drafter/ext/snowcrash/src/BlueprintUtility.h +111 -0
  146. data/ext/drafter/ext/snowcrash/src/CodeBlockUtility.h +276 -0
  147. data/ext/drafter/ext/snowcrash/src/DataStructureGroupParser.h +157 -0
  148. data/ext/drafter/ext/snowcrash/src/HTTP.cc +49 -0
  149. data/ext/drafter/ext/snowcrash/src/HTTP.h +108 -0
  150. data/ext/drafter/ext/snowcrash/src/HeadersParser.cc +117 -0
  151. data/ext/drafter/ext/snowcrash/src/HeadersParser.h +377 -0
  152. data/ext/drafter/ext/snowcrash/src/MSON.cc +272 -0
  153. data/ext/drafter/ext/snowcrash/src/MSON.h +405 -0
  154. data/ext/drafter/ext/snowcrash/src/MSONMixinParser.h +103 -0
  155. data/ext/drafter/ext/snowcrash/src/MSONNamedTypeParser.h +135 -0
  156. data/ext/drafter/ext/snowcrash/src/MSONOneOfParser.cc +132 -0
  157. data/ext/drafter/ext/snowcrash/src/MSONOneOfParser.h +80 -0
  158. data/ext/drafter/ext/snowcrash/src/MSONParameterParser.h +166 -0
  159. data/ext/drafter/ext/snowcrash/src/MSONPropertyMemberParser.h +106 -0
  160. data/ext/drafter/ext/snowcrash/src/MSONSourcemap.cc +141 -0
  161. data/ext/drafter/ext/snowcrash/src/MSONSourcemap.h +181 -0
  162. data/ext/drafter/ext/snowcrash/src/MSONTypeSectionParser.cc +209 -0
  163. data/ext/drafter/ext/snowcrash/src/MSONTypeSectionParser.h +213 -0
  164. data/ext/drafter/ext/snowcrash/src/MSONUtility.h +506 -0
  165. data/ext/drafter/ext/snowcrash/src/MSONValueMemberParser.cc +214 -0
  166. data/ext/drafter/ext/snowcrash/src/MSONValueMemberParser.h +390 -0
  167. data/ext/drafter/ext/snowcrash/src/ModelTable.h +87 -0
  168. data/ext/drafter/ext/snowcrash/src/ParameterParser.h +516 -0
  169. data/ext/drafter/ext/snowcrash/src/ParametersParser.h +222 -0
  170. data/ext/drafter/ext/snowcrash/src/PayloadParser.h +733 -0
  171. data/ext/drafter/ext/snowcrash/src/Platform.h +33 -0
  172. data/ext/drafter/ext/snowcrash/src/RegexMatch.h +32 -0
  173. data/ext/drafter/ext/snowcrash/src/RelationParser.h +87 -0
  174. data/ext/drafter/ext/snowcrash/src/ResourceGroupParser.h +297 -0
  175. data/ext/drafter/ext/snowcrash/src/ResourceParser.h +536 -0
  176. data/ext/drafter/ext/snowcrash/src/Section.cc +48 -0
  177. data/ext/drafter/ext/snowcrash/src/Section.h +60 -0
  178. data/ext/drafter/ext/snowcrash/src/SectionParser.h +246 -0
  179. data/ext/drafter/ext/snowcrash/src/SectionParserData.h +109 -0
  180. data/ext/drafter/ext/snowcrash/src/SectionProcessor.h +299 -0
  181. data/ext/drafter/ext/snowcrash/src/Signature.cc +75 -0
  182. data/ext/drafter/ext/snowcrash/src/Signature.h +103 -0
  183. data/ext/drafter/ext/snowcrash/src/SignatureSectionProcessor.h +442 -0
  184. data/ext/drafter/ext/snowcrash/src/SourceAnnotation.h +166 -0
  185. data/ext/drafter/ext/snowcrash/src/StringUtility.h +323 -0
  186. data/ext/drafter/ext/snowcrash/src/UriTemplateParser.cc +195 -0
  187. data/ext/drafter/ext/snowcrash/src/UriTemplateParser.h +240 -0
  188. data/ext/drafter/ext/snowcrash/src/ValuesParser.h +111 -0
  189. data/ext/drafter/ext/snowcrash/src/posix/RegexMatch.cc +99 -0
  190. data/ext/drafter/ext/snowcrash/src/snowcrash.cc +90 -0
  191. data/ext/drafter/ext/snowcrash/src/snowcrash.h +44 -0
  192. data/ext/drafter/ext/snowcrash/src/win/RegexMatch.cc +78 -0
  193. data/ext/drafter/ext/snowcrash/tools/gyp/AUTHORS +12 -0
  194. data/ext/drafter/ext/snowcrash/tools/gyp/DEPS +23 -0
  195. data/ext/drafter/ext/snowcrash/tools/gyp/OWNERS +1 -0
  196. data/ext/drafter/ext/snowcrash/tools/gyp/PRESUBMIT.py +137 -0
  197. data/ext/drafter/ext/snowcrash/tools/gyp/buildbot/buildbot_run.py +136 -0
  198. data/ext/drafter/ext/snowcrash/tools/gyp/buildbot/commit_queue/OWNERS +6 -0
  199. data/ext/drafter/ext/snowcrash/tools/gyp/buildbot/commit_queue/cq_config.json +15 -0
  200. data/ext/drafter/ext/snowcrash/tools/gyp/codereview.settings +10 -0
  201. data/ext/drafter/ext/snowcrash/tools/gyp/data/win/large-pdb-shim.cc +12 -0
  202. data/ext/drafter/ext/snowcrash/tools/gyp/gyp +8 -0
  203. data/ext/drafter/ext/snowcrash/tools/gyp/gyp.bat +5 -0
  204. data/ext/drafter/ext/snowcrash/tools/gyp/gyp_main.py +16 -0
  205. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSNew.py +340 -0
  206. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSProject.py +208 -0
  207. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSSettings.py +1096 -0
  208. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSToolFile.py +58 -0
  209. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSUserFile.py +147 -0
  210. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSUtil.py +270 -0
  211. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSUtil.pyc +0 -0
  212. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSVersion.py +445 -0
  213. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSVersion.pyc +0 -0
  214. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/__init__.py +548 -0
  215. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/__init__.pyc +0 -0
  216. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/common.py +608 -0
  217. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/common.pyc +0 -0
  218. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/easy_xml.py +157 -0
  219. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/flock_tool.py +54 -0
  220. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/__init__.py +0 -0
  221. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/__init__.pyc +0 -0
  222. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/analyzer.py +741 -0
  223. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/android.py +1069 -0
  224. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/cmake.py +1248 -0
  225. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/dump_dependency_json.py +99 -0
  226. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/eclipse.py +425 -0
  227. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/gypd.py +94 -0
  228. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/gypsh.py +56 -0
  229. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/make.py +2218 -0
  230. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/make.pyc +0 -0
  231. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/msvs.py +3467 -0
  232. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/ninja.py +2427 -0
  233. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/ninja.pyc +0 -0
  234. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/xcode.py +1300 -0
  235. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/xcode.pyc +0 -0
  236. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/input.py +2899 -0
  237. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/input.pyc +0 -0
  238. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/mac_tool.py +605 -0
  239. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/msvs_emulation.py +1093 -0
  240. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/msvs_emulation.pyc +0 -0
  241. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/ninja_syntax.py +160 -0
  242. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/ninja_syntax.pyc +0 -0
  243. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/ordered_dict.py +289 -0
  244. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/simple_copy.py +46 -0
  245. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/simple_copy.pyc +0 -0
  246. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/win_tool.py +314 -0
  247. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/xcode_emulation.py +1664 -0
  248. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/xcode_emulation.pyc +0 -0
  249. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/xcode_ninja.py +276 -0
  250. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/xcode_ninja.pyc +0 -0
  251. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/xcodeproj_file.py +2927 -0
  252. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/xcodeproj_file.pyc +0 -0
  253. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/xml_fix.py +69 -0
  254. data/ext/drafter/ext/snowcrash/tools/gyp/pylintrc +307 -0
  255. data/ext/drafter/ext/snowcrash/tools/gyp/samples/samples +81 -0
  256. data/ext/drafter/ext/snowcrash/tools/gyp/samples/samples.bat +5 -0
  257. data/ext/drafter/ext/snowcrash/tools/gyp/setup.py +19 -0
  258. data/ext/drafter/ext/snowcrash/tools/gyp/tools/Xcode/Specifications/gyp.pbfilespec +27 -0
  259. data/ext/drafter/ext/snowcrash/tools/gyp/tools/Xcode/Specifications/gyp.xclangspec +226 -0
  260. data/ext/drafter/ext/snowcrash/tools/gyp/tools/emacs/gyp.el +275 -0
  261. data/ext/drafter/ext/snowcrash/tools/gyp/tools/graphviz.py +100 -0
  262. data/ext/drafter/ext/snowcrash/tools/gyp/tools/pretty_gyp.py +155 -0
  263. data/ext/drafter/ext/snowcrash/tools/gyp/tools/pretty_sln.py +169 -0
  264. data/ext/drafter/ext/snowcrash/tools/gyp/tools/pretty_vcproj.py +329 -0
  265. data/ext/drafter/ext/snowcrash/vcbuild.bat +139 -0
  266. data/ext/drafter/ext/sos/Makefile +62 -0
  267. data/ext/drafter/ext/sos/src/sos.cc +235 -0
  268. data/ext/drafter/ext/sos/src/sos.h +188 -0
  269. data/ext/drafter/ext/sos/src/sosJSON.h +121 -0
  270. data/ext/drafter/ext/sos/src/sosYAML.h +105 -0
  271. data/ext/drafter/src/ConversionContext.cc +39 -0
  272. data/ext/drafter/src/ConversionContext.h +34 -0
  273. data/ext/drafter/src/NamedTypesRegistry.cc +405 -0
  274. data/ext/drafter/src/NamedTypesRegistry.h +28 -0
  275. data/ext/drafter/src/NodeInfo.h +143 -0
  276. data/ext/drafter/src/RefractAPI.cc +579 -0
  277. data/ext/drafter/src/RefractAPI.h +28 -0
  278. data/ext/drafter/src/RefractDataStructure.cc +1199 -0
  279. data/ext/drafter/src/RefractDataStructure.h +26 -0
  280. data/ext/drafter/src/RefractElementFactory.cc +107 -0
  281. data/ext/drafter/src/RefractElementFactory.h +67 -0
  282. data/ext/drafter/src/RefractSourceMap.cc +29 -0
  283. data/ext/drafter/src/RefractSourceMap.h +57 -0
  284. data/ext/drafter/src/Render.cc +157 -0
  285. data/ext/drafter/src/Render.h +40 -0
  286. data/ext/drafter/src/Serialize.cc +160 -0
  287. data/ext/drafter/src/Serialize.h +289 -0
  288. data/ext/drafter/src/SerializeAST.cc +507 -0
  289. data/ext/drafter/src/SerializeAST.h +29 -0
  290. data/ext/drafter/src/SerializeResult.cc +170 -0
  291. data/ext/drafter/src/SerializeResult.h +34 -0
  292. data/ext/drafter/src/SerializeSourcemap.cc +331 -0
  293. data/ext/drafter/src/SerializeSourcemap.h +21 -0
  294. data/ext/drafter/src/Version.h +40 -0
  295. data/ext/drafter/src/config.cc +91 -0
  296. data/ext/drafter/src/config.h +38 -0
  297. data/ext/drafter/src/drafter.cc +137 -0
  298. data/ext/drafter/src/drafter.h +102 -0
  299. data/ext/drafter/src/drafter_private.cc +85 -0
  300. data/ext/drafter/src/drafter_private.h +34 -0
  301. data/ext/drafter/src/main.cc +137 -0
  302. data/ext/drafter/src/refract/AppendDecorator.h +58 -0
  303. data/ext/drafter/src/refract/Build.h +67 -0
  304. data/ext/drafter/src/refract/ComparableVisitor.cc +43 -0
  305. data/ext/drafter/src/refract/ComparableVisitor.h +62 -0
  306. data/ext/drafter/src/refract/Element.cc +409 -0
  307. data/ext/drafter/src/refract/Element.h +656 -0
  308. data/ext/drafter/src/refract/ElementFwd.h +37 -0
  309. data/ext/drafter/src/refract/ElementInserter.h +59 -0
  310. data/ext/drafter/src/refract/Exception.h +31 -0
  311. data/ext/drafter/src/refract/ExpandVisitor.cc +359 -0
  312. data/ext/drafter/src/refract/ExpandVisitor.h +58 -0
  313. data/ext/drafter/src/refract/FilterVisitor.h +52 -0
  314. data/ext/drafter/src/refract/IsExpandableVisitor.cc +140 -0
  315. data/ext/drafter/src/refract/IsExpandableVisitor.h +31 -0
  316. data/ext/drafter/src/refract/Iterate.h +160 -0
  317. data/ext/drafter/src/refract/JSONSchemaVisitor.cc +675 -0
  318. data/ext/drafter/src/refract/JSONSchemaVisitor.h +73 -0
  319. data/ext/drafter/src/refract/PrintVisitor.cc +164 -0
  320. data/ext/drafter/src/refract/PrintVisitor.h +50 -0
  321. data/ext/drafter/src/refract/Query.cc +13 -0
  322. data/ext/drafter/src/refract/Query.h +38 -0
  323. data/ext/drafter/src/refract/Registry.cc +114 -0
  324. data/ext/drafter/src/refract/Registry.h +43 -0
  325. data/ext/drafter/src/refract/RenderJSONVisitor.cc +255 -0
  326. data/ext/drafter/src/refract/RenderJSONVisitor.h +51 -0
  327. data/ext/drafter/src/refract/SerializeCompactVisitor.cc +167 -0
  328. data/ext/drafter/src/refract/SerializeCompactVisitor.h +56 -0
  329. data/ext/drafter/src/refract/SerializeVisitor.cc +214 -0
  330. data/ext/drafter/src/refract/SerializeVisitor.h +55 -0
  331. data/ext/drafter/src/refract/TypeQueryVisitor.cc +46 -0
  332. data/ext/drafter/src/refract/TypeQueryVisitor.h +110 -0
  333. data/ext/drafter/src/refract/Visitor.h +126 -0
  334. data/ext/drafter/src/refract/VisitorUtils.cc +63 -0
  335. data/ext/drafter/src/refract/VisitorUtils.h +231 -0
  336. data/ext/drafter/src/reporting.cc +263 -0
  337. data/ext/drafter/src/reporting.h +39 -0
  338. data/ext/drafter/src/stream.h +148 -0
  339. data/ext/drafter/tools/homebrew/drafter.rb +18 -0
  340. data/ext/drafter/tools/make-tarball.sh +39 -0
  341. data/ext/drafter/tools/refract-filter.py +96 -0
  342. data/ext/drafter/tools/release.sh +17 -0
  343. data/ext/drafter/vcbuild.bat +203 -0
  344. data/lib/lounge_lizard/binding.rb +29 -0
  345. data/lib/lounge_lizard/version.rb +3 -0
  346. data/lib/lounge_lizard.rb +18 -0
  347. data/lounge_lizard.gemspec +37 -0
  348. metadata +547 -0
@@ -0,0 +1,255 @@
1
+ //
2
+ // refract/RenderJSONVisitor.cc
3
+ // librefract
4
+ //
5
+ // Created by Pavan Kumar Sunkara on 17/06/15.
6
+ // Copyright (c) 2015 Apiary Inc. All rights reserved.
7
+ //
8
+
9
+ #include "VisitorUtils.h"
10
+ #include "sosJSON.h"
11
+ #include <sstream>
12
+ #include "SerializeCompactVisitor.h"
13
+
14
+ #include "RenderJSONVisitor.h"
15
+
16
+ namespace refract
17
+ {
18
+
19
+ namespace {
20
+
21
+ IElement* getEnumValue(const ExtendElement& extend)
22
+ {
23
+ if (extend.empty()) {
24
+ return NULL;
25
+ }
26
+
27
+ for (ExtendElement::ValueType::const_reverse_iterator it = extend.value.rbegin();
28
+ it != extend.value.rend();
29
+ ++it) {
30
+
31
+ const EnumElement* element = TypeQueryVisitor::as<EnumElement>(*it);
32
+
33
+ if (!element) {
34
+ continue;
35
+ }
36
+
37
+ const ArrayElement::ValueType* items = GetValue<EnumElement>(*element);
38
+
39
+ if (!items->empty()) {
40
+ return *items->begin();
41
+ }
42
+ }
43
+
44
+ return NULL;
45
+ }
46
+
47
+ template <typename T>
48
+ void FetchMembers(const T& element, typename T::ValueType& members)
49
+ {
50
+ const typename T::ValueType* val = GetValue<T>(element);
51
+
52
+ if (!val) {
53
+ return;
54
+ }
55
+
56
+ for (typename T::ValueType::const_iterator it = val->begin();
57
+ it != val->end();
58
+ ++it) {
59
+
60
+ if (!(*it) || (*it)->empty()) {
61
+ continue;
62
+ }
63
+
64
+ if ((*it)->element() == "ref") {
65
+ HandleRefWhenFetchingMembers<T>(*it, members, FetchMembers<T>);
66
+ continue;
67
+ }
68
+ else if (SelectElement* select = TypeQueryVisitor::as<SelectElement>(*it)) {
69
+ if (select->value.empty() || !(*select->value.begin())) {
70
+ continue;
71
+ }
72
+
73
+ FetchMembers(*(*select->value.begin()), members);
74
+ continue;
75
+ }
76
+
77
+ RenderJSONVisitor renderer;
78
+ Visit(renderer, *(*it));
79
+ IElement* e = renderer.getOwnership();
80
+
81
+ if (!e) {
82
+ continue;
83
+ }
84
+
85
+ e->renderType(IElement::rCompact);
86
+ members.push_back(e);
87
+
88
+ }
89
+ }
90
+
91
+ }
92
+
93
+ RenderJSONVisitor::RenderJSONVisitor() : result(NULL), enumValue(NULL) {}
94
+
95
+ RenderJSONVisitor::~RenderJSONVisitor() {
96
+ if (result) {
97
+ delete result;
98
+ }
99
+
100
+ if (enumValue) {
101
+ delete enumValue;
102
+ }
103
+ }
104
+
105
+ void RenderJSONVisitor::operator()(const IElement& e) {
106
+ VisitBy(e, *this);
107
+ }
108
+
109
+ void RenderJSONVisitor::operator()(const MemberElement& e) {
110
+
111
+ std::string key = GetKeyAsString(e);
112
+
113
+ if (key.empty()) {
114
+ return;
115
+ }
116
+
117
+ RenderJSONVisitor renderer;
118
+
119
+ if (e.value.second) {
120
+ if (IsTypeAttribute(e, "nullable") && e.value.second->empty()) {
121
+ renderer.result = new NullElement;
122
+ }
123
+ else if (IsTypeAttribute(e, "optional") && e.value.second->empty()) {
124
+ return;
125
+ }
126
+ else {
127
+ Visit(renderer, *e.value.second);
128
+ if (!renderer.result) {
129
+ return;
130
+ }
131
+ }
132
+ }
133
+
134
+ result = new MemberElement(key,
135
+ renderer.result ? renderer.getOwnership() : new StringElement,
136
+ IElement::rCompact);
137
+ }
138
+
139
+ void RenderJSONVisitor::operator()(const ObjectElement& e) {
140
+ ObjectElement::ValueType members;
141
+ FetchMembers(e, members);
142
+ ObjectElement* o = new ObjectElement;
143
+ o->set(members);
144
+ o->renderType(IElement::rCompact);
145
+ result = o;
146
+ }
147
+
148
+ void RenderJSONVisitor::operator()(const EnumElement& e) {
149
+
150
+ if (!enumValue) { // there is no enumValue injected from ExtendElement,try to pick value directly
151
+
152
+ const EnumElement::ValueType* val = GetEnumValue(e);
153
+ if (val && !val->empty()) {
154
+ enumValue = val->front()->clone();
155
+ }
156
+ else {
157
+ enumValue = new StringElement;
158
+ }
159
+ }
160
+
161
+ RenderJSONVisitor renderer;
162
+ VisitBy(*enumValue, renderer);
163
+ result = renderer.getOwnership();
164
+
165
+ delete enumValue;
166
+ enumValue = NULL;
167
+
168
+ }
169
+
170
+ void RenderJSONVisitor::operator()(const ArrayElement& e) {
171
+ ArrayElement::ValueType members;
172
+ FetchMembers(e, members);
173
+ ArrayElement* a = new ArrayElement;
174
+ a->set(members);
175
+ a->renderType(IElement::rCompact);
176
+ result = a;
177
+ }
178
+
179
+ void RenderJSONVisitor::operator()(const NullElement& e) {
180
+ result = new NullElement;
181
+ }
182
+
183
+ template <typename T>
184
+ IElement* getResult(const T& e)
185
+ {
186
+ const typename T::ValueType* v = GetValue<T>(e);
187
+
188
+ if (!v) {
189
+ return NULL;
190
+ }
191
+
192
+ T* result = IElement::Create(*v);
193
+ result->renderType(IElement::rCompact);
194
+
195
+ return result;
196
+ }
197
+
198
+ void RenderJSONVisitor::operator()(const StringElement& e) {
199
+ result = getResult(e);
200
+ }
201
+
202
+ void RenderJSONVisitor::operator()(const NumberElement& e) {
203
+ result = getResult(e);
204
+ }
205
+
206
+ void RenderJSONVisitor::operator()(const BooleanElement& e) {
207
+ result = getResult(e);
208
+ }
209
+
210
+ void RenderJSONVisitor::operator()(const ExtendElement& e) {
211
+
212
+ RenderJSONVisitor renderer;
213
+ IElement* merged = e.merge();
214
+
215
+ if (!merged) {
216
+ return;
217
+ }
218
+
219
+ if (TypeQueryVisitor::as<EnumElement>(merged)) {
220
+ renderer.enumValue = getEnumValue(e);
221
+ if (renderer.enumValue) {
222
+ renderer.enumValue = renderer.enumValue->clone();
223
+ }
224
+ }
225
+
226
+ Visit(renderer, *merged);
227
+ result = renderer.getOwnership();
228
+
229
+ delete merged;
230
+ }
231
+
232
+ IElement* RenderJSONVisitor::getOwnership() {
233
+ IElement* ret = result;
234
+ result = NULL;
235
+ return ret;
236
+ }
237
+
238
+ std::string RenderJSONVisitor::getString() const {
239
+ std::string out;
240
+
241
+ if (result) {
242
+ sos::SerializeJSON serializer;
243
+ std::stringstream ss;
244
+
245
+ // FIXME: remove SosSerializeCompactVisitor dependency
246
+ SosSerializeCompactVisitor s;
247
+ VisitBy(*result, s);
248
+ serializer.process(s.value(), ss);
249
+
250
+ return ss.str();
251
+ }
252
+
253
+ return out;
254
+ }
255
+ }
@@ -0,0 +1,51 @@
1
+ //
2
+ // refract/RenderJSONVisitor.h
3
+ // librefract
4
+ //
5
+ // Created by Pavan Kumar Sunkara on 17/06/15.
6
+ // Copyright (c) 2015 Apiary Inc. All rights reserved.
7
+ //
8
+
9
+ #ifndef REFRACT_RENDERJSONVISITOR_H
10
+ #define REFRACT_RENDERJSONVISITOR_H
11
+
12
+ #include "sos.h"
13
+ #include <string>
14
+
15
+ #include "ElementFwd.h"
16
+
17
+ namespace refract
18
+ {
19
+
20
+ class RenderJSONVisitor
21
+ {
22
+ IElement* result;
23
+ IElement* enumValue;
24
+ public:
25
+
26
+ RenderJSONVisitor();
27
+ virtual ~RenderJSONVisitor();
28
+
29
+ void operator()(const IElement& e);
30
+ void operator()(const MemberElement& e);
31
+ void operator()(const ObjectElement& e);
32
+ void operator()(const ArrayElement& e);
33
+ void operator()(const EnumElement& e);
34
+
35
+ void operator()(const NullElement& e);
36
+ void operator()(const StringElement& e);
37
+ void operator()(const NumberElement& e);
38
+ void operator()(const BooleanElement& e);
39
+ void operator()(const ExtendElement& e);
40
+
41
+ // FIXME: throwning - not implemented
42
+ // need to resolve in ApplyVisitor
43
+ //void operator()(const OptionElement& e);
44
+ //void operator()(const SelectElement& e);
45
+
46
+ std::string getString() const;
47
+ IElement* getOwnership();
48
+ };
49
+ }
50
+
51
+ #endif
@@ -0,0 +1,167 @@
1
+ //
2
+ // refract/SerializeCompactVisitor.cc
3
+ // librefract
4
+ //
5
+ // Created by Jiri Kratochvil on 21/05/15.
6
+ // Copyright (c) 2015 Apiary Inc. All rights reserved.
7
+ //
8
+ #include "Element.h"
9
+
10
+ #include "SerializeVisitor.h"
11
+ #include "SerializeCompactVisitor.h"
12
+
13
+ namespace refract
14
+ {
15
+
16
+ struct IsFullRender {
17
+ typedef const IElement* first_argument_type;
18
+ typedef const bool second_argument_type;
19
+ typedef const bool result_type;
20
+
21
+ bool operator()(const IElement* element, const bool generateSourceMap) const {
22
+
23
+ if (generateSourceMap) {
24
+ IElement::MemberElementCollection::const_iterator it = element->attributes.find("sourceMap");
25
+ // there is sourceMap in attributes
26
+ if (it != element->attributes.end()) {
27
+ return true;
28
+ }
29
+ }
30
+
31
+ return element && (element->renderType() == IElement::rFull || element->renderType() == IElement::rCompactContent);
32
+ }
33
+ };
34
+
35
+ void SosSerializeCompactVisitor::operator()(const IElement& e)
36
+ {
37
+ throw NotImplemented("NI: IElement Compact Serialization");
38
+ }
39
+
40
+ void SosSerializeCompactVisitor::operator()(const NullElement& e)
41
+ {
42
+ value_ = sos::Null();
43
+ }
44
+
45
+ void SosSerializeCompactVisitor::operator()(const StringElement& e)
46
+ {
47
+ value_ = sos::String(e.value);
48
+ }
49
+
50
+ void SosSerializeCompactVisitor::operator()(const NumberElement& e)
51
+ {
52
+ value_ = sos::Number(e.value);
53
+ }
54
+
55
+ void SosSerializeCompactVisitor::operator()(const BooleanElement& e)
56
+ {
57
+ value_ = sos::Boolean(e.value);
58
+ }
59
+
60
+ namespace {
61
+
62
+ template <typename Values>
63
+ void SerializeValues(sos::Array& array, const Values& values, bool generateSourceMap)
64
+ {
65
+
66
+ for (typename Values::const_iterator it = values.begin(); it != values.end(); ++it) {
67
+ if (IsFullRender()((*it), generateSourceMap)) {
68
+ SosSerializeVisitor s(generateSourceMap);
69
+ Visit(s, *(*it));
70
+ array.push(s.get());
71
+ }
72
+ else {
73
+ SosSerializeCompactVisitor s(generateSourceMap);
74
+ VisitBy(*(*it), s);
75
+ array.push(s.value());
76
+ }
77
+ }
78
+ }
79
+ }
80
+
81
+ void SosSerializeCompactVisitor::operator()(const EnumElement& e)
82
+ {
83
+ sos::Array array;
84
+ SerializeValues(array, e.value, generateSourceMap);
85
+ value_ = array;
86
+ }
87
+
88
+ void SosSerializeCompactVisitor::operator()(const ArrayElement& e)
89
+ {
90
+ sos::Array array;
91
+ SerializeValues(array, e.value, generateSourceMap);
92
+ value_ = array;
93
+ }
94
+
95
+ void SosSerializeCompactVisitor::operator()(const MemberElement& e)
96
+ {
97
+ if (e.value.first) {
98
+ SosSerializeCompactVisitor s(generateSourceMap);
99
+ VisitBy(*e.value.first, s);
100
+ key_ = s.value().str;
101
+ }
102
+
103
+ if (e.value.second) {
104
+ if (!IsFullRender()(e.value.second, generateSourceMap)) {
105
+ VisitBy(*e.value.second, *this);
106
+ }
107
+ else { // value has request to be serialized in Expanded form
108
+ SosSerializeVisitor s(generateSourceMap);
109
+ Visit(s, *e.value.second);
110
+ value_ = s.get();
111
+ }
112
+ }
113
+ }
114
+
115
+ void SosSerializeCompactVisitor::operator()(const ObjectElement& e)
116
+ {
117
+
118
+ typedef ObjectElement::ValueType::const_iterator iterator;
119
+ iterator it = find_if(e.value.begin(), e.value.end(), std::bind(IsFullRender(), std::placeholders::_1, generateSourceMap));
120
+
121
+ // if there is ANY element required to be serialized in Full
122
+ // we must use array to serialize
123
+ if (it != e.value.end()) {
124
+ sos::Array arr;
125
+
126
+ for (iterator it = e.value.begin(); it != e.value.end(); ++it) {
127
+ SosSerializeVisitor s(generateSourceMap);
128
+ Visit(s, *(*it));
129
+ arr.push(s.get());
130
+ }
131
+
132
+ value_ = arr;
133
+ }
134
+ else {
135
+ sos::Object obj;
136
+
137
+ for (iterator it = e.value.begin(); it != e.value.end(); ++it) {
138
+ SosSerializeCompactVisitor sv(generateSourceMap);
139
+ VisitBy(*(*it), sv);
140
+ obj.set(sv.key(), sv.value());
141
+ }
142
+
143
+ value_ = obj;
144
+ }
145
+ }
146
+
147
+ void SosSerializeCompactVisitor::operator()(const ExtendElement& e)
148
+ {
149
+ throw NotImplemented("ExtendElement serialization Not Implemented");
150
+ }
151
+
152
+ void SosSerializeCompactVisitor::operator()(const OptionElement& e)
153
+ {
154
+ sos::Array array;
155
+ SerializeValues(array, e.value, generateSourceMap);
156
+ value_ = array;
157
+ }
158
+
159
+ void SosSerializeCompactVisitor::operator()(const SelectElement& e)
160
+ {
161
+ sos::Array array;
162
+ SerializeValues(array, e.value, generateSourceMap);
163
+ value_ = array;
164
+ }
165
+
166
+
167
+ }; // namespace refract
@@ -0,0 +1,56 @@
1
+ //
2
+ // refract/SerializeCompactVisitor.h
3
+ // librefract
4
+ //
5
+ // Created by Jiri Kratochvil on 21/05/15.
6
+ // Copyright (c) 2015 Apiary Inc. All rights reserved.
7
+ //
8
+ #ifndef REFRACT_SERIALIZECOMPACTVISITOR_H
9
+ #define REFRACT_SERIALIZECOMPACTVISITOR_H
10
+
11
+ #include "sos.h"
12
+ #include <string>
13
+
14
+ #include "ElementFwd.h"
15
+
16
+ namespace refract
17
+ {
18
+
19
+ class SosSerializeCompactVisitor
20
+ {
21
+ std::string key_;
22
+ sos::Base value_;
23
+ bool generateSourceMap;
24
+
25
+ public:
26
+ SosSerializeCompactVisitor() : generateSourceMap(true) {}
27
+ SosSerializeCompactVisitor(bool generateSourceMap) : generateSourceMap(generateSourceMap) {}
28
+
29
+ void operator()(const IElement& e);
30
+ void operator()(const NullElement& e);
31
+ void operator()(const StringElement& e);
32
+ void operator()(const NumberElement& e);
33
+ void operator()(const BooleanElement& e);
34
+ void operator()(const ArrayElement& e);
35
+ void operator()(const EnumElement& e);
36
+ void operator()(const MemberElement& e);
37
+ void operator()(const ObjectElement& e);
38
+ void operator()(const ExtendElement& e);
39
+ void operator()(const SelectElement& e);
40
+ void operator()(const OptionElement& e);
41
+
42
+ std::string key()
43
+ {
44
+ return key_;
45
+ }
46
+
47
+ sos::Base value()
48
+ {
49
+ return value_;
50
+ }
51
+
52
+ };
53
+
54
+ }; // namespace refract
55
+
56
+ #endif // #ifndef REFRACT_SERIALIZECOMPACTVISITOR_H