redsnow 0.3.7 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (302) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/Rakefile +4 -4
  4. data/ext/drafter/Makefile +54 -0
  5. data/ext/drafter/appveyor.yml +10 -0
  6. data/ext/drafter/bin/drafter +0 -0
  7. data/ext/{snowcrash → drafter}/build/Makefile +29 -14
  8. data/ext/{snowcrash/build/snowcrash.Makefile → drafter/build/drafter.Makefile} +1 -1
  9. data/ext/{snowcrash/build/snowcrash.target.mk → drafter/build/drafter.target.mk} +25 -23
  10. data/ext/{snowcrash/build → drafter/build/ext/snowcrash}/libmarkdownparser.target.mk +7 -7
  11. data/ext/drafter/build/ext/snowcrash/libsnowcrash.target.mk +152 -0
  12. data/ext/{snowcrash/build → drafter/build/ext/snowcrash}/libsundown.target.mk +13 -13
  13. data/ext/{snowcrash/build → drafter/build/ext/snowcrash}/perf-libsnowcrash.target.mk +14 -20
  14. data/ext/drafter/build/ext/snowcrash/snowcrash.Makefile +6 -0
  15. data/ext/{snowcrash → drafter}/build/gyp-mac-tool +0 -0
  16. data/ext/{snowcrash/build/libsnowcrash.target.mk → drafter/build/libdrafter.target.mk} +29 -36
  17. data/ext/drafter/build/libsos.target.mk +133 -0
  18. data/ext/drafter/build/out/Release/drafter +0 -0
  19. data/ext/drafter/build/out/Release/libdrafter.dylib +0 -0
  20. data/ext/drafter/build/out/Release/libmarkdownparser.a +0 -0
  21. data/ext/drafter/build/out/Release/libsnowcrash.a +0 -0
  22. data/ext/drafter/build/out/Release/libsos.a +0 -0
  23. data/ext/{snowcrash → drafter}/build/out/Release/libsundown.a +0 -0
  24. data/ext/{snowcrash → drafter}/build/out/Release/linker.lock +0 -0
  25. data/ext/drafter/build/out/Release/obj.target/drafter/src/config.o +0 -0
  26. data/ext/drafter/build/out/Release/obj.target/drafter/src/main.o +0 -0
  27. data/ext/drafter/build/out/Release/obj.target/drafter/src/reporting.o +0 -0
  28. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/Serialize.o +0 -0
  29. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/SerializeAST.o +0 -0
  30. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/SerializeResult.o +0 -0
  31. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/SerializeSourcemap.o +0 -0
  32. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/cdrafter.o +0 -0
  33. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/drafter.o +0 -0
  34. data/ext/drafter/build/out/Release/obj.target/libmarkdownparser/ext/snowcrash/ext/markdown-parser/src/ByteBuffer.o +0 -0
  35. data/ext/drafter/build/out/Release/obj.target/libmarkdownparser/ext/snowcrash/ext/markdown-parser/src/MarkdownNode.o +0 -0
  36. data/ext/drafter/build/out/Release/obj.target/libmarkdownparser/ext/snowcrash/ext/markdown-parser/src/MarkdownParser.o +0 -0
  37. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/Blueprint.o +0 -0
  38. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/BlueprintSourcemap.o +0 -0
  39. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/HTTP.o +0 -0
  40. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/HeadersParser.o +0 -0
  41. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/MSON.o +0 -0
  42. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/MSONOneOfParser.o +0 -0
  43. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/MSONSourcemap.o +0 -0
  44. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/MSONTypeSectionParser.o +0 -0
  45. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/MSONValueMemberParser.o +0 -0
  46. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/Section.o +0 -0
  47. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/Signature.o +0 -0
  48. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/UriTemplateParser.o +0 -0
  49. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/posix/RegexMatch.o +0 -0
  50. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/snowcrash.o +0 -0
  51. data/ext/drafter/build/out/Release/obj.target/libsos/ext/sos/src/sos.o +0 -0
  52. data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/html/houdini_href_e.o +0 -0
  53. data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/html/houdini_html_e.o +0 -0
  54. data/ext/{snowcrash/build/out/Release/obj.target/libsundown → drafter/build/out/Release/obj.target/libsundown/ext/snowcrash}/ext/markdown-parser/ext/sundown/html/html.o +0 -0
  55. data/ext/{snowcrash/build/out/Release/obj.target/libsundown → drafter/build/out/Release/obj.target/libsundown/ext/snowcrash}/ext/markdown-parser/ext/sundown/html/html_smartypants.o +0 -0
  56. data/ext/{snowcrash/build/out/Release/obj.target/libsundown → drafter/build/out/Release/obj.target/libsundown/ext/snowcrash}/ext/markdown-parser/ext/sundown/src/autolink.o +0 -0
  57. data/ext/{snowcrash/build/out/Release/obj.target/libsundown → drafter/build/out/Release/obj.target/libsundown/ext/snowcrash}/ext/markdown-parser/ext/sundown/src/buffer.o +0 -0
  58. data/ext/{snowcrash/build/out/Release/obj.target/libsundown → drafter/build/out/Release/obj.target/libsundown/ext/snowcrash}/ext/markdown-parser/ext/sundown/src/markdown.o +0 -0
  59. data/ext/{snowcrash/build/out/Release/obj.target/libsundown → drafter/build/out/Release/obj.target/libsundown/ext/snowcrash}/ext/markdown-parser/ext/sundown/src/src_map.o +0 -0
  60. data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/src/stack.o +0 -0
  61. data/ext/drafter/circle.yml +12 -0
  62. data/ext/{snowcrash → drafter}/config.gypi +1 -1
  63. data/ext/{snowcrash → drafter}/config.mk +0 -0
  64. data/ext/{snowcrash → drafter}/configure +16 -5
  65. data/ext/drafter/drafter.gyp +118 -0
  66. data/ext/{snowcrash → drafter/ext/snowcrash}/Makefile +4 -12
  67. data/ext/{snowcrash → drafter/ext/snowcrash}/Vagrantfile +14 -4
  68. data/ext/drafter/ext/snowcrash/appveyor.yml +7 -0
  69. data/ext/{snowcrash → drafter/ext/snowcrash}/common.gypi +0 -0
  70. data/ext/drafter/ext/snowcrash/configure +197 -0
  71. data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/Makefile +0 -0
  72. data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/CONTRIBUTING.md +0 -0
  73. data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/Makefile +0 -0
  74. data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/Makefile.win +0 -0
  75. data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/examples/smartypants.c +0 -0
  76. data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/examples/sundown.c +0 -0
  77. data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/html/houdini.h +0 -0
  78. data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/html/houdini_href_e.c +0 -0
  79. data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/html/houdini_html_e.c +0 -0
  80. data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/html/html.c +0 -0
  81. data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/html/html.h +0 -0
  82. data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/html/html_smartypants.c +0 -0
  83. data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/html_block_names.txt +0 -0
  84. data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/src/autolink.c +0 -0
  85. data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/src/autolink.h +0 -0
  86. data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/src/buffer.c +0 -0
  87. data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/src/buffer.h +0 -0
  88. data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/src/html_blocks.h +0 -0
  89. data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/src/markdown.c +0 -0
  90. data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/src/markdown.h +0 -0
  91. data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/src/src_map.c +0 -0
  92. data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/src/src_map.h +0 -0
  93. data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/src/stack.c +0 -0
  94. data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/src/stack.h +0 -0
  95. data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/sundown.def +0 -0
  96. data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/msvc/markdown/markdown.vcproj +0 -0
  97. data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/msvc/msvc.sln +0 -0
  98. data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/msvc/sundown/sundown.vcproj +0 -0
  99. data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/src/ByteBuffer.cc +0 -0
  100. data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/src/ByteBuffer.h +0 -0
  101. data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/src/MarkdownNode.cc +0 -0
  102. data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/src/MarkdownNode.h +0 -0
  103. data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/src/MarkdownParser.cc +0 -0
  104. data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/src/MarkdownParser.h +10 -2
  105. data/ext/{snowcrash → drafter/ext/snowcrash}/provisioning.sh +0 -0
  106. data/ext/{snowcrash → drafter/ext/snowcrash}/snowcrash.gyp +41 -39
  107. data/ext/{snowcrash → drafter/ext/snowcrash}/snowcrash.xcworkspace/contents.xcworkspacedata +0 -0
  108. data/ext/{snowcrash → drafter/ext/snowcrash}/src/ActionParser.h +50 -6
  109. data/ext/{snowcrash → drafter/ext/snowcrash}/src/AssetParser.h +1 -12
  110. data/ext/drafter/ext/snowcrash/src/AttributesParser.h +121 -0
  111. data/ext/drafter/ext/snowcrash/src/Blueprint.cc +90 -0
  112. data/ext/{snowcrash → drafter/ext/snowcrash}/src/Blueprint.h +169 -33
  113. data/ext/{snowcrash → drafter/ext/snowcrash}/src/BlueprintParser.h +305 -48
  114. data/ext/drafter/ext/snowcrash/src/BlueprintSourcemap.cc +81 -0
  115. data/ext/{snowcrash → drafter/ext/snowcrash}/src/BlueprintSourcemap.h +130 -39
  116. data/ext/{snowcrash → drafter/ext/snowcrash}/src/BlueprintUtility.h +10 -4
  117. data/ext/{snowcrash → drafter/ext/snowcrash}/src/CodeBlockUtility.h +1 -1
  118. data/ext/drafter/ext/snowcrash/src/DataStructureGroupParser.h +154 -0
  119. data/ext/{snowcrash → drafter/ext/snowcrash}/src/HTTP.cc +0 -0
  120. data/ext/{snowcrash → drafter/ext/snowcrash}/src/HTTP.h +0 -0
  121. data/ext/drafter/ext/snowcrash/src/HeadersParser.cc +110 -0
  122. data/ext/{snowcrash → drafter/ext/snowcrash}/src/HeadersParser.h +123 -54
  123. data/ext/drafter/ext/snowcrash/src/MSON.cc +272 -0
  124. data/ext/drafter/ext/snowcrash/src/MSON.h +399 -0
  125. data/ext/drafter/ext/snowcrash/src/MSONMixinParser.h +95 -0
  126. data/ext/drafter/ext/snowcrash/src/MSONNamedTypeParser.h +108 -0
  127. data/ext/drafter/ext/snowcrash/src/MSONOneOfParser.cc +132 -0
  128. data/ext/drafter/ext/snowcrash/src/MSONOneOfParser.h +80 -0
  129. data/ext/drafter/ext/snowcrash/src/MSONParameterParser.h +232 -0
  130. data/ext/drafter/ext/snowcrash/src/MSONPropertyMemberParser.h +91 -0
  131. data/ext/drafter/ext/snowcrash/src/MSONSourcemap.cc +141 -0
  132. data/ext/drafter/ext/snowcrash/src/MSONSourcemap.h +181 -0
  133. data/ext/drafter/ext/snowcrash/src/MSONTypeSectionParser.cc +209 -0
  134. data/ext/drafter/ext/snowcrash/src/MSONTypeSectionParser.h +213 -0
  135. data/ext/drafter/ext/snowcrash/src/MSONUtility.h +423 -0
  136. data/ext/drafter/ext/snowcrash/src/MSONValueMemberParser.cc +179 -0
  137. data/ext/drafter/ext/snowcrash/src/MSONValueMemberParser.h +346 -0
  138. data/ext/drafter/ext/snowcrash/src/ModelTable.h +87 -0
  139. data/ext/{snowcrash → drafter/ext/snowcrash}/src/ParameterParser.h +120 -61
  140. data/ext/{snowcrash → drafter/ext/snowcrash}/src/ParametersParser.h +17 -18
  141. data/ext/{snowcrash → drafter/ext/snowcrash}/src/PayloadParser.h +36 -18
  142. data/ext/{snowcrash → drafter/ext/snowcrash}/src/Platform.h +0 -0
  143. data/ext/{snowcrash → drafter/ext/snowcrash}/src/RegexMatch.h +0 -0
  144. data/ext/drafter/ext/snowcrash/src/RelationParser.h +75 -0
  145. data/ext/{snowcrash → drafter/ext/snowcrash}/src/ResourceGroupParser.h +127 -33
  146. data/ext/{snowcrash → drafter/ext/snowcrash}/src/ResourceParser.h +126 -33
  147. data/ext/{snowcrash → drafter/ext/snowcrash}/src/Section.cc +6 -0
  148. data/ext/{snowcrash → drafter/ext/snowcrash}/src/Section.h +15 -2
  149. data/ext/{snowcrash → drafter/ext/snowcrash}/src/SectionParser.h +3 -1
  150. data/ext/{snowcrash → drafter/ext/snowcrash}/src/SectionParserData.h +15 -5
  151. data/ext/{snowcrash → drafter/ext/snowcrash}/src/SectionProcessor.h +24 -0
  152. data/ext/{snowcrash → drafter/ext/snowcrash}/src/Signature.cc +14 -0
  153. data/ext/drafter/ext/snowcrash/src/Signature.h +80 -0
  154. data/ext/drafter/ext/snowcrash/src/SignatureSectionProcessor.h +439 -0
  155. data/ext/{snowcrash → drafter/ext/snowcrash}/src/SourceAnnotation.h +3 -2
  156. data/ext/{snowcrash → drafter/ext/snowcrash}/src/StringUtility.h +103 -6
  157. data/ext/{snowcrash → drafter/ext/snowcrash}/src/UriTemplateParser.cc +0 -0
  158. data/ext/{snowcrash → drafter/ext/snowcrash}/src/UriTemplateParser.h +0 -0
  159. data/ext/{snowcrash → drafter/ext/snowcrash}/src/ValuesParser.h +1 -13
  160. data/ext/{snowcrash → drafter/ext/snowcrash}/src/posix/RegexMatch.cc +0 -0
  161. data/ext/{snowcrash → drafter/ext/snowcrash}/src/snowcrash.cc +0 -0
  162. data/ext/{snowcrash → drafter/ext/snowcrash}/src/snowcrash.h +0 -0
  163. data/ext/{snowcrash → drafter/ext/snowcrash}/src/win/RegexMatch.cc +0 -0
  164. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/AUTHORS +0 -0
  165. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/DEPS +0 -0
  166. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/OWNERS +0 -0
  167. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/PRESUBMIT.py +0 -0
  168. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/buildbot/buildbot_run.py +0 -0
  169. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/codereview.settings +0 -0
  170. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/data/win/large-pdb-shim.cc +0 -0
  171. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/gyp +0 -0
  172. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/gyp.bat +0 -0
  173. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/gyp_main.py +0 -0
  174. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/MSVSNew.py +0 -0
  175. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/MSVSProject.py +0 -0
  176. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/MSVSSettings.py +0 -0
  177. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/MSVSToolFile.py +0 -0
  178. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/MSVSUserFile.py +0 -0
  179. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/MSVSUtil.py +0 -0
  180. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/MSVSVersion.py +0 -0
  181. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/__init__.py +0 -0
  182. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/__init__.pyc +0 -0
  183. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/common.py +0 -0
  184. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/common.pyc +0 -0
  185. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/easy_xml.py +0 -0
  186. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/flock_tool.py +0 -0
  187. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/generator/__init__.py +0 -0
  188. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/__init__.pyc +0 -0
  189. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/generator/android.py +0 -0
  190. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/generator/cmake.py +0 -0
  191. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/generator/dump_dependency_json.py +0 -0
  192. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/generator/eclipse.py +0 -0
  193. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/generator/gypd.py +0 -0
  194. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/generator/gypsh.py +0 -0
  195. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/generator/make.py +0 -0
  196. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/generator/make.pyc +0 -0
  197. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/generator/msvs.py +0 -0
  198. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/generator/ninja.py +0 -0
  199. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/generator/xcode.py +0 -0
  200. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/generator/xcode.pyc +0 -0
  201. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/input.py +0 -0
  202. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/input.pyc +0 -0
  203. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/mac_tool.py +0 -0
  204. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/msvs_emulation.py +0 -0
  205. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/ninja_syntax.py +0 -0
  206. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/ordered_dict.py +0 -0
  207. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/win_tool.py +0 -0
  208. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/xcode_emulation.py +0 -0
  209. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/xcode_emulation.pyc +0 -0
  210. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/xcodeproj_file.py +0 -0
  211. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/xcodeproj_file.pyc +0 -0
  212. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/xml_fix.py +0 -0
  213. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylintrc +0 -0
  214. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/samples/samples +0 -0
  215. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/samples/samples.bat +0 -0
  216. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/setup.py +0 -0
  217. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/tools/Xcode/Specifications/gyp.pbfilespec +0 -0
  218. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/tools/Xcode/Specifications/gyp.xclangspec +0 -0
  219. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/tools/emacs/gyp.el +0 -0
  220. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/tools/graphviz.py +0 -0
  221. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/tools/pretty_gyp.py +0 -0
  222. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/tools/pretty_sln.py +0 -0
  223. data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/tools/pretty_vcproj.py +0 -0
  224. data/ext/drafter/ext/snowcrash/vcbuild.bat +139 -0
  225. data/ext/drafter/ext/sos/Makefile +57 -0
  226. data/ext/drafter/ext/sos/src/sos.cc +200 -0
  227. data/ext/drafter/ext/sos/src/sos.h +179 -0
  228. data/ext/drafter/ext/sos/src/sosJSON.h +105 -0
  229. data/ext/drafter/ext/sos/src/sosYAML.h +104 -0
  230. data/ext/{snowcrash → drafter}/src/Serialize.cc +30 -15
  231. data/ext/drafter/src/Serialize.h +135 -0
  232. data/ext/drafter/src/SerializeAST.cc +775 -0
  233. data/ext/drafter/src/SerializeAST.h +19 -0
  234. data/ext/drafter/src/SerializeResult.cc +67 -0
  235. data/ext/drafter/src/SerializeResult.h +26 -0
  236. data/ext/drafter/src/SerializeSourcemap.cc +446 -0
  237. data/ext/drafter/src/SerializeSourcemap.h +19 -0
  238. data/ext/drafter/src/Version.h +38 -0
  239. data/ext/drafter/src/cdrafter.cc +44 -0
  240. data/ext/drafter/src/cdrafter.h +55 -0
  241. data/ext/drafter/src/config.cc +80 -0
  242. data/ext/drafter/src/config.h +35 -0
  243. data/ext/drafter/src/drafter.cc +22 -0
  244. data/ext/drafter/src/drafter.h +38 -0
  245. data/ext/drafter/src/main.cc +91 -0
  246. data/ext/drafter/src/reporting.cc +162 -0
  247. data/ext/drafter/src/reporting.h +28 -0
  248. data/ext/drafter/src/stream.h +146 -0
  249. data/ext/drafter/tools/homebrew/drafter.rb +12 -0
  250. data/ext/{snowcrash → drafter}/vcbuild.bat +3 -3
  251. data/lib/redsnow.rb +6 -11
  252. data/lib/redsnow/binding.rb +11 -201
  253. data/lib/redsnow/blueprint.rb +104 -169
  254. data/lib/redsnow/parseresult.rb +28 -42
  255. data/lib/redsnow/sourcemap.rb +92 -177
  256. data/lib/redsnow/version.rb +1 -1
  257. data/redsnow.gemspec +1 -1
  258. metadata +249 -197
  259. data/ext/snowcrash/bin/snowcrash +0 -0
  260. data/ext/snowcrash/build/out/Release/libmarkdownparser.a +0 -0
  261. data/ext/snowcrash/build/out/Release/libsnowcrash.dylib +0 -0
  262. data/ext/snowcrash/build/out/Release/obj.target/libmarkdownparser/ext/markdown-parser/src/ByteBuffer.o +0 -0
  263. data/ext/snowcrash/build/out/Release/obj.target/libmarkdownparser/ext/markdown-parser/src/MarkdownNode.o +0 -0
  264. data/ext/snowcrash/build/out/Release/obj.target/libmarkdownparser/ext/markdown-parser/src/MarkdownParser.o +0 -0
  265. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/CBlueprint.o +0 -0
  266. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/CBlueprintSourcemap.o +0 -0
  267. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/CSourceAnnotation.o +0 -0
  268. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/HTTP.o +0 -0
  269. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/Section.o +0 -0
  270. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/Serialize.o +0 -0
  271. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/SerializeJSON.o +0 -0
  272. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/SerializeYAML.o +0 -0
  273. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/Signature.o +0 -0
  274. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/UriTemplateParser.o +0 -0
  275. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/csnowcrash.o +0 -0
  276. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/posix/RegexMatch.o +0 -0
  277. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/snowcrash.o +0 -0
  278. data/ext/snowcrash/build/out/Release/obj.target/libsundown/ext/markdown-parser/ext/sundown/html/houdini_href_e.o +0 -0
  279. data/ext/snowcrash/build/out/Release/obj.target/libsundown/ext/markdown-parser/ext/sundown/html/houdini_html_e.o +0 -0
  280. data/ext/snowcrash/build/out/Release/obj.target/libsundown/ext/markdown-parser/ext/sundown/src/stack.o +0 -0
  281. data/ext/snowcrash/build/out/Release/obj.target/snowcrash/src/snowcrash/snowcrash.o +0 -0
  282. data/ext/snowcrash/build/out/Release/snowcrash +0 -0
  283. data/ext/snowcrash/src/CBlueprint.cc +0 -628
  284. data/ext/snowcrash/src/CBlueprint.h +0 -366
  285. data/ext/snowcrash/src/CBlueprintSourcemap.cc +0 -630
  286. data/ext/snowcrash/src/CBlueprintSourcemap.h +0 -351
  287. data/ext/snowcrash/src/CSourceAnnotation.cc +0 -154
  288. data/ext/snowcrash/src/CSourceAnnotation.h +0 -106
  289. data/ext/snowcrash/src/Serialize.h +0 -71
  290. data/ext/snowcrash/src/SerializeJSON.cc +0 -1221
  291. data/ext/snowcrash/src/SerializeJSON.h +0 -24
  292. data/ext/snowcrash/src/SerializeYAML.cc +0 -702
  293. data/ext/snowcrash/src/SerializeYAML.h +0 -24
  294. data/ext/snowcrash/src/Signature.h +0 -32
  295. data/ext/snowcrash/src/SymbolTable.h +0 -94
  296. data/ext/snowcrash/src/Version.h +0 -39
  297. data/ext/snowcrash/src/csnowcrash.cc +0 -29
  298. data/ext/snowcrash/src/csnowcrash.h +0 -40
  299. data/ext/snowcrash/src/snowcrash/snowcrash.cc +0 -200
  300. data/ext/snowcrash/tools/gyp/pylib/gyp/common.pyc +0 -0
  301. data/ext/snowcrash/tools/gyp/pylib/gyp/generator/__init__.pyc +0 -0
  302. data/ext/snowcrash/tools/homebrew/snowcrash.rb +0 -12
@@ -14,7 +14,7 @@ module RedSnow
14
14
  #
15
15
  # @attr id [String] identifier of the reference
16
16
  #
17
- # @abstrac
17
+ # @abstract
18
18
  class ReferenceNode < BlueprintNode
19
19
  attr_accessor :id
20
20
 
@@ -23,7 +23,7 @@ module RedSnow
23
23
  end
24
24
  end
25
25
 
26
- # Blueprint AST node with name and description associated
26
+ # Blueprint AST node with name && description associated
27
27
  #
28
28
  # @attr name [String] name of the node
29
29
  # @attr description [String] description of the node
@@ -40,10 +40,10 @@ module RedSnow
40
40
  def ensure_description_newlines(buffer)
41
41
  return if description.empty?
42
42
 
43
- if description[-1, 1] != "\n"
44
- buffer << "\n\n"
45
- elsif description.length > 1 && description[-2, 1] != "\n"
46
- buffer << "\n"
43
+ if description[-1, 1] != '\n'
44
+ buffer << '\n\n'
45
+ elsif description.length > 1 && description[-2, 1] != '\n'
46
+ buffer << '\n'
47
47
  end
48
48
  end
49
49
  end
@@ -87,19 +87,13 @@ module RedSnow
87
87
  # Metadata collection Blueprint AST node
88
88
  # represents 'metadata section'
89
89
  class Metadata < KeyValueCollection
90
- # Constructor
91
- # @param sc_metadata_collection_handle [FFI::Pointer]
92
- def initialize(sc_metadata_collection_handle)
93
- sc_metadata_collection_size = RedSnow::Binding.sc_metadata_collection_size(sc_metadata_collection_handle)
94
- @collection = []
95
-
96
- return if sc_metadata_collection_size == 0
90
+ # @param metadata [json]
91
+ def initialize(metadata)
92
+ return if metadata.nil?
97
93
 
98
- metadata_size = sc_metadata_collection_size - 1
99
-
100
- (0..metadata_size).each do |index|
101
- sc_metadata_handle = RedSnow::Binding.sc_metadata_handle(sc_metadata_collection_handle, index)
102
- @collection << Hash[name: RedSnow::Binding.sc_metadata_key(sc_metadata_handle), value: RedSnow::Binding.sc_metadata_value(sc_metadata_handle)]
94
+ @collection = []
95
+ metadata.each do |item|
96
+ @collection << Hash[name: item['name'], value: item.fetch('value', nil)]
103
97
  end
104
98
  end
105
99
  end
@@ -116,18 +110,14 @@ module RedSnow
116
110
  (content_type_header.nil?) ? nil : content_type_header[CONTENT_TYPE_HEADER_KEY]
117
111
  end
118
112
 
119
- # @param sc_header_collection_handle_payload [FFI::Pointer]
120
- def initialize(sc_header_collection_handle_payload)
121
- sc_header_collection_size = RedSnow::Binding.sc_header_collection_size(sc_header_collection_handle_payload)
113
+ # @param headers [json]
114
+ def initialize(headers)
122
115
  @collection = []
123
116
 
124
- return if sc_header_collection_size == 0
117
+ return if headers.nil?
125
118
 
126
- headers_size = sc_header_collection_size - 1
127
-
128
- (0..headers_size).each do |index|
129
- sc_header_handle = RedSnow::Binding.sc_header_handle(sc_header_collection_handle_payload, index)
130
- @collection << Hash[name: RedSnow::Binding.sc_header_key(sc_header_handle), value: RedSnow::Binding.sc_header_value(sc_header_handle)]
119
+ headers.each do |item|
120
+ @collection << Hash[name: item['name'], value: item['value']]
131
121
  end
132
122
  end
133
123
  end
@@ -149,27 +139,27 @@ module RedSnow
149
139
  attr_accessor :example_value
150
140
  attr_accessor :values
151
141
 
152
- # @param sc_parameter_handle [FFI::Pointer]
153
- def initialize(sc_parameter_handle)
154
- @name = RedSnow::Binding.sc_parameter_name(sc_parameter_handle)
155
- @description = RedSnow::Binding.sc_parameter_description(sc_parameter_handle)
156
- @type = RedSnow::Binding.sc_parameter_type(sc_parameter_handle)
157
- @use = RedSnow::Binding.sc_parameter_parameter_use(sc_parameter_handle)
158
- @default_value = RedSnow::Binding.sc_parameter_default_value(sc_parameter_handle)
159
- @example_value = RedSnow::Binding.sc_parameter_example_value(sc_parameter_handle)
160
-
161
- @values = []
162
-
163
- sc_value_collection_handle = RedSnow::Binding.sc_value_collection_handle(sc_parameter_handle)
164
- sc_value_collection_size = RedSnow::Binding.sc_value_collection_size(sc_value_collection_handle)
165
-
166
- return if sc_value_collection_size == 0
142
+ # @param parameter [json]
143
+ def initialize(parameter)
144
+ @name = parameter.fetch('name', '')
145
+ @description = parameter.fetch('description', '')
146
+ @type = parameter.fetch('type', '')
147
+
148
+ case parameter['required']
149
+ when true
150
+ @use = :required
151
+ when false
152
+ @use = :optional
153
+ else
154
+ @use = :undefined
155
+ end
167
156
 
168
- values_size = sc_value_collection_size - 1
157
+ @default_value = parameter.fetch('default', nil)
158
+ @example_value = parameter.fetch('example', nil)
169
159
 
170
- (0..values_size).each do |value_index|
171
- sc_value_handle = RedSnow::Binding.sc_value_handle(sc_value_collection_handle, value_index)
172
- @values << RedSnow::Binding.sc_value(sc_value_handle)
160
+ @values = []
161
+ parameter.key?('values') && parameter['values'].each do |value|
162
+ @values << value['value']
173
163
  end
174
164
  end
175
165
  end
@@ -181,18 +171,14 @@ module RedSnow
181
171
  class Parameters < BlueprintNode
182
172
  attr_accessor :collection
183
173
 
184
- # @param sc_parameter_collection_handle [FFI::Pointer]
185
- def initialize(sc_parameter_collection_handle)
186
- sc_parameter_collection_size = RedSnow::Binding.sc_parameter_collection_size(sc_parameter_collection_handle)
174
+ # @param parameters [json]
175
+ def initialize(parameters)
187
176
  @collection = []
188
177
 
189
- return if sc_parameter_collection_size == 0
190
-
191
- parameters_size = sc_parameter_collection_size - 1
178
+ return if parameters.nil?
192
179
 
193
- (0..parameters_size).each do |index|
194
- sc_parameter_handle = RedSnow::Binding.sc_parameter_handle(sc_parameter_collection_handle, index)
195
- @collection << Parameter.new(sc_parameter_handle)
180
+ parameters.each do |item|
181
+ @collection << Parameter.new(item)
196
182
  end
197
183
  end
198
184
  end
@@ -212,22 +198,18 @@ module RedSnow
212
198
  attr_accessor :schema
213
199
  attr_accessor :reference
214
200
 
215
- # @param sc_payload_handle_resource [FFI::Pointer]
216
- def initialize(sc_payload_handle_resource)
217
- @name = RedSnow::Binding.sc_payload_name(sc_payload_handle_resource)
218
- @description = RedSnow::Binding.sc_payload_description(sc_payload_handle_resource)
219
- @body = RedSnow::Binding.sc_payload_body(sc_payload_handle_resource)
220
- @schema = RedSnow::Binding.sc_payload_schema(sc_payload_handle_resource)
201
+ # @param payload [json]
202
+ def initialize(payload)
203
+ @name = payload.fetch('name', '')
204
+ @description = payload.fetch('description', '')
205
+ @body = payload.fetch('body', '')
206
+ @schema = payload.fetch('schema', '')
221
207
 
222
- sc_reference_handle_payload = RedSnow::Binding.sc_reference_handle_payload(sc_payload_handle_resource)
223
- sc_reference_id = RedSnow::Binding.sc_reference_id(sc_reference_handle_payload)
224
-
225
- unless sc_reference_id.empty?
226
- @reference = ReferenceNode.new(sc_reference_id)
208
+ if payload.key?('reference') && payload['reference'].key?('id')
209
+ @reference = ReferenceNode.new(payload['reference']['id'])
227
210
  end
228
211
 
229
- sc_header_collection_handle_payload = RedSnow::Binding.sc_header_collection_handle_payload(sc_payload_handle_resource)
230
- @headers = Headers.new(sc_header_collection_handle_payload)
212
+ @headers = Headers.new(payload.fetch('headers', nil))
231
213
  end
232
214
  end
233
215
 
@@ -239,42 +221,24 @@ module RedSnow
239
221
  attr_accessor :requests
240
222
  attr_accessor :responses
241
223
 
242
- # @param sc_transaction_example_handle [FFI::Pointer]
243
- def initialize(sc_transaction_example_handle)
244
- @name = RedSnow::Binding.sc_transaction_example_name(sc_transaction_example_handle)
245
- @description = RedSnow::Binding.sc_transaction_example_description(sc_transaction_example_handle)
224
+ # @param example [json]
225
+ def initialize(example)
226
+ @name = example.fetch('name', '')
227
+ @description = example.fetch('description', '')
246
228
 
247
- # BP Resource Actions Examples Requests
248
229
  @requests = []
249
- sc_payload_collection_handle_requests = RedSnow::Binding.sc_payload_collection_handle_requests(sc_transaction_example_handle)
250
- sc_payload_collection_size_requests = RedSnow::Binding.sc_payload_collection_size(sc_payload_collection_handle_requests)
251
-
252
- if sc_payload_collection_size_requests > 0
253
- requests_size = sc_payload_collection_size_requests - 1
254
-
255
- (0..requests_size).each do |index|
256
- sc_payload_handle = RedSnow::Binding.sc_payload_handle(sc_payload_collection_handle_requests, index)
257
- @requests << Payload.new(sc_payload_handle).tap do |payload|
258
- example_instance = self
259
- payload.define_singleton_method(:example) { example_instance }
260
- end
230
+ example.key?('requests') && example['requests'].each do |request|
231
+ @requests << Payload.new(request).tap do |inst|
232
+ example_instance = self
233
+ inst.define_singleton_method(:example) { example_instance }
261
234
  end
262
235
  end
263
236
 
264
- # BP Resource Actions Examples Responses
265
237
  @responses = []
266
- sc_payload_collection_handle_responses = RedSnow::Binding.sc_payload_collection_handle_responses(sc_transaction_example_handle)
267
- sc_payload_collection_size_responses = RedSnow::Binding.sc_payload_collection_size(sc_payload_collection_handle_responses)
268
-
269
- return if sc_payload_collection_size_responses == 0
270
-
271
- responses_size = sc_payload_collection_size_responses - 1
272
-
273
- (0..responses_size).each do |index|
274
- sc_payload_handle = RedSnow::Binding.sc_payload_handle(sc_payload_collection_handle_responses, index)
275
- @responses << Payload.new(sc_payload_handle).tap do |payload|
238
+ example.key?('responses') && example['responses'].each do |response|
239
+ @responses << Payload.new(response).tap do |inst|
276
240
  example_instance = self
277
- payload.define_singleton_method(:example) { example_instance }
241
+ inst.define_singleton_method(:example) { example_instance }
278
242
  end
279
243
  end
280
244
  end
@@ -286,33 +250,34 @@ module RedSnow
286
250
  # @attr method [String] HTTP request method or nil
287
251
  # @attr parameters [Parameters] action-specific URI parameters or nil
288
252
  # @attr examples [Array<TransactionExample>] action transaction examples
253
+ # @attr relation [String] action relation attribute
254
+ # @attr uri_template [String] action uri template attribute
289
255
  class Action < NamedBlueprintNode
290
256
  attr_accessor :method
291
257
  attr_accessor :parameters
292
258
  attr_accessor :examples
259
+ attr_accessor :relation
260
+ attr_accessor :uri_template
293
261
 
294
- # @param sc_action_handle [FFI::Pointer]
295
- def initialize(sc_action_handle)
296
- @name = RedSnow::Binding.sc_action_name(sc_action_handle)
297
- @description = RedSnow::Binding.sc_action_description(sc_action_handle)
298
-
299
- @method = RedSnow::Binding.sc_action_httpmethod(sc_action_handle)
300
-
301
- @parameters = Parameters.new(RedSnow::Binding.sc_parameter_collection_handle_action(sc_action_handle))
262
+ # @param action [json]
263
+ def initialize(action)
264
+ @name = action.fetch('name', '')
265
+ @description = action.fetch('description', '')
302
266
 
303
- @examples = []
304
- sc_transaction_example_collection_handle = RedSnow::Binding.sc_transaction_example_collection_handle(sc_action_handle)
305
- sc_transaction_example_collection_size = RedSnow::Binding.sc_transaction_example_collection_size(sc_transaction_example_collection_handle)
267
+ @method = action.fetch('method', '')
306
268
 
307
- return if sc_transaction_example_collection_size == 0
269
+ @parameters = Parameters.new(action.fetch('parameters', nil))
308
270
 
309
- examples_size = sc_transaction_example_collection_size - 1
271
+ if action.key?('attributes')
272
+ @relation = action['attributes'].fetch('relation', '')
273
+ @uri_template = action['attributes'].fetch('uriTemplate', '')
274
+ end
310
275
 
311
- (0..examples_size).each do |index|
312
- sc_transaction_example_handle = RedSnow::Binding.sc_transaction_example_handle(sc_transaction_example_collection_handle, index)
313
- @examples << TransactionExample.new(sc_transaction_example_handle).tap do |example|
276
+ @examples = []
277
+ action.key?('examples') && action['examples'].each do |example|
278
+ @examples << TransactionExample.new(example).tap do |inst|
314
279
  action_instance = self
315
- example.define_singleton_method(:action) { action_instance }
280
+ inst.define_singleton_method(:action) { action_instance }
316
281
  end
317
282
  end
318
283
  end
@@ -331,30 +296,21 @@ module RedSnow
331
296
  attr_accessor :parameters
332
297
  attr_accessor :actions
333
298
 
334
- # @param sc_resource_handle [FFI::Pointer]
335
- def initialize(sc_resource_handle)
336
- @name = RedSnow::Binding.sc_resource_name(sc_resource_handle)
337
- @description = RedSnow::Binding.sc_resource_description(sc_resource_handle)
338
- @uri_template = RedSnow::Binding.sc_resource_uritemplate(sc_resource_handle)
299
+ # @param resource [json]
300
+ def initialize(resource)
301
+ @name = resource.fetch('name', '')
302
+ @description = resource.fetch('description', '')
303
+ @uri_template = resource.fetch('uriTemplate', '')
339
304
 
340
- sc_payload_handle_resource = RedSnow::Binding.sc_payload_handle_resource(sc_resource_handle)
341
- @model = Payload.new(sc_payload_handle_resource)
305
+ @model = Payload.new(resource.fetch('model', nil))
342
306
 
343
- @parameters = Parameters.new(RedSnow::Binding.sc_parameter_collection_handle_resource(sc_resource_handle))
307
+ @parameters = Parameters.new(resource.fetch('parameters', nil))
344
308
 
345
309
  @actions = []
346
- sc_action_collection_handle = RedSnow::Binding.sc_action_collection_handle(sc_resource_handle)
347
- sc_action_collection_size = RedSnow::Binding.sc_action_collection_size(sc_action_collection_handle)
348
-
349
- return if sc_action_collection_size == 0
350
-
351
- action_size = sc_action_collection_size - 1
352
-
353
- (0..action_size).each do |index|
354
- sc_action_handle = RedSnow::Binding.sc_action_handle(sc_action_collection_handle, index)
355
- @actions << Action.new(sc_action_handle).tap do |action|
310
+ resource.key?('actions') && resource['actions'].each do |action|
311
+ @actions << Action.new(action).tap do |inst|
356
312
  resource_instance = self
357
- action.define_singleton_method(:resource) { resource_instance }
313
+ inst.define_singleton_method(:resource) { resource_instance }
358
314
  end
359
315
  end
360
316
  end
@@ -367,24 +323,16 @@ module RedSnow
367
323
  class ResourceGroup < NamedBlueprintNode
368
324
  attr_accessor :resources
369
325
 
370
- # @param sc_resource_group_handle [FFI::Pointer]
371
- def initialize(sc_resource_group_handle)
372
- @name = RedSnow::Binding.sc_resource_group_name(sc_resource_group_handle)
373
- @description = RedSnow::Binding.sc_resource_group_description(sc_resource_group_handle)
326
+ # @param resource_group [json]
327
+ def initialize(resource_group)
328
+ @name = resource_group.fetch('name', '')
329
+ @description = resource_group.fetch('description', '')
374
330
 
375
331
  @resources = []
376
- sc_resource_collection_handle = RedSnow::Binding.sc_resource_collection_handle(sc_resource_group_handle)
377
- sc_resource_collection_size = RedSnow::Binding.sc_resource_collection_size(sc_resource_collection_handle)
378
-
379
- return if sc_resource_collection_size == 0
380
-
381
- resource_size = sc_resource_collection_size - 1
382
-
383
- (0..resource_size).each do |index|
384
- sc_resource_handle = RedSnow::Binding.sc_resource_handle(sc_resource_collection_handle, index)
385
- @resources << Resource.new(sc_resource_handle).tap do |resource|
332
+ resource_group.key?('resources') && resource_group['resources'].each do |resource|
333
+ @resources << Resource.new(resource).tap do |inst|
386
334
  resource_group_instance = self
387
- resource.define_singleton_method(:resource_group) { resource_group_instance }
335
+ inst.define_singleton_method(:resource_group) { resource_group_instance }
388
336
  end
389
337
  end
390
338
  end
@@ -403,30 +351,17 @@ module RedSnow
403
351
  VERSION_KEY = :_version
404
352
 
405
353
  # Supported version of Api Blueprint
406
- SUPPORTED_VERSIONS = ['2.1']
354
+ SUPPORTED_VERSIONS = ['3.0']
407
355
 
408
- # @param handle [FFI:Pointer]
409
- def initialize(handle)
410
- # BP name, desc
411
- @name = RedSnow::Binding.sc_blueprint_name(handle)
412
- @description = RedSnow::Binding.sc_blueprint_description(handle)
356
+ # @param ast [json]
357
+ def initialize(ast)
358
+ @name = ast.fetch('name', '')
359
+ @description = ast.fetch('description', '')
360
+ @metadata = Metadata.new(ast.fetch('metadata', nil))
413
361
 
414
- # BP metadata
415
- sc_metadata_collection_handle = RedSnow::Binding.sc_metadata_collection_handle(handle)
416
- @metadata = Metadata.new(sc_metadata_collection_handle)
417
-
418
- # BP Resource Groups
419
- sc_resource_group_collection_handle = RedSnow::Binding.sc_resource_group_collection_handle(handle)
420
- sc_resource_group_collection_size = RedSnow::Binding.sc_resource_group_collection_size(sc_resource_group_collection_handle)
421
362
  @resource_groups = []
422
-
423
- return if sc_resource_group_collection_size == 0
424
-
425
- group_size = sc_resource_group_collection_size - 1
426
-
427
- (0..group_size).each do |index|
428
- sc_resource_group_handle = RedSnow::Binding.sc_resource_group_handle(sc_resource_group_collection_handle, index)
429
- @resource_groups << ResourceGroup.new(sc_resource_group_handle)
363
+ ast.key?('resourceGroups') && ast['resourceGroups'].each do |resource_group|
364
+ @resource_groups << ResourceGroup.new(resource_group)
430
365
  end
431
366
  end
432
367
  end
@@ -1,8 +1,10 @@
1
+ require 'json'
2
+
1
3
  module RedSnow
2
4
  # Parse Result
3
5
  # @see https://github.com/apiaryio/api-blueprint-ast/blob/master/Parse%20Result.md
4
6
  # @param ast [Blueprint]
5
- # @param error [Hash] Description of a parsing error as occurred during parsing. If this field is present and code different from 0 then the content of ast field should be ignored.
7
+ # @param error [Hash] Description of a parsing error as occurred during parsing. If this field is present && code different from 0 then the content of ast field should be ignored.
6
8
  # @param warnings [Array<Hash>] Ordered array of parser warnings as occurred during the parsing.
7
9
  # @param sourcemap [BlueprintSourcemap]
8
10
  class ParseResult
@@ -17,51 +19,36 @@ module RedSnow
17
19
  # Supported version of Api Blueprint
18
20
  SUPPORTED_VERSIONS = ['2.1']
19
21
 
20
- # @param report_handle [FFI::Pointer]
21
- def initialize(report_handle, blueprint_handle, sourcemap_handle)
22
- @ast = Blueprint.new(blueprint_handle)
23
- @sourcemap = RedSnow::Sourcemap::Blueprint.new(sourcemap_handle)
22
+ # @param parse_result [ string or nil ]
23
+ def initialize(parse_result)
24
+ parse_result = JSON.parse(parse_result)
24
25
 
25
- warnings = RedSnow::Binding.sc_warnings_handler(report_handle)
26
- warnings_size = RedSnow::Binding.sc_warnings_size(warnings)
26
+ @ast = Blueprint.new(parse_result['ast'])
27
+ @sourcemap = RedSnow::Sourcemap::Blueprint.new(parse_result['sourcemap'])
27
28
 
28
29
  @warnings = []
29
-
30
- (0..(warnings_size - 1)).each do |index|
31
- sc_warning_handler = RedSnow::Binding.sc_warning_handler(warnings, index)
32
-
33
- warning = {}
34
- warning[:message] = RedSnow::Binding.sc_warning_message(sc_warning_handler)
35
- warning[:code] = RedSnow::Binding.sc_warning_code(sc_warning_handler)
36
- warning[:ok] = RedSnow::Binding.sc_warning_ok(sc_warning_handler)
37
-
38
- sc_location_handler = RedSnow::Binding.sc_location_handler(sc_warning_handler)
39
- sc_location_size = RedSnow::Binding.sc_location_size(sc_location_handler)
40
- warning[:location] = []
41
-
42
- if sc_location_size > 0
43
- (0..(sc_location_size - 1)).each do |index_size|
44
- warning[:location] << Location.new(sc_location_handler, index_size)
45
- end
46
- end
47
- @warnings << warning
30
+ parse_result.key?('warnings') && parse_result['warnings'].each do |warning|
31
+ @warnings << source_annotation(warning)
48
32
  end
49
33
 
50
- error_handler = RedSnow::Binding.sc_error_handler(report_handle)
51
- @error = {}
52
- @error[:message] = RedSnow::Binding.sc_error_message(error_handler)
53
- @error[:code] = RedSnow::Binding.sc_error_code(error_handler)
54
- @error[:ok] = RedSnow::Binding.sc_error_ok(error_handler)
34
+ @error = source_annotation(parse_result['error'])
35
+ end
36
+
37
+ protected
55
38
 
56
- sc_location_handler = RedSnow::Binding.sc_location_handler(error_handler)
57
- sc_location_size = RedSnow::Binding.sc_location_size(sc_location_handler)
58
- @error[:location] = []
39
+ def source_annotation(json)
40
+ annotation = {}
59
41
 
60
- return if sc_location_size == 0
42
+ annotation[:message] = json['message']
43
+ annotation[:code] = json['code']
44
+ annotation[:ok] = json.fetch('code', 0)
61
45
 
62
- (0..(sc_location_size - 1)).each do |index|
63
- @error[:location] << Location.new(sc_location_handler, index)
46
+ annotation[:location] = []
47
+ json.key?('location') && json['location'].each do |location|
48
+ annotation[:location] << Location.new(location)
64
49
  end
50
+
51
+ annotation
65
52
  end
66
53
  end
67
54
 
@@ -72,11 +59,10 @@ module RedSnow
72
59
  attr_accessor :index
73
60
  attr_accessor :length
74
61
 
75
- # @param location_hander [FFI:Pointer]
76
- # @param index [Number]
77
- def initialize(location_hander, index)
78
- @length = RedSnow::Binding.sc_location_length(location_hander, index)
79
- @index = RedSnow::Binding.sc_location_location(location_hander, index)
62
+ # @param location [json]
63
+ def initialize(location)
64
+ @length = location['length']
65
+ @index = location['index']
80
66
  end
81
67
  end
82
68