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,117 @@
1
+ #include "HeadersParser.h"
2
+
3
+ using namespace snowcrash;
4
+
5
+ /** Finds a header in its containment group by its key (first) */
6
+ static HeaderIterator findHeader(const Headers& headers,
7
+ const Header& header) {
8
+
9
+ return std::find_if(headers.begin(),
10
+ headers.end(),
11
+ std::bind2nd(MatchFirsts<Header, IEqual<Header::first_type> >(), header));
12
+ }
13
+
14
+ typedef std::vector<std::string> HeadersKeyCollection;
15
+
16
+ /** Get collection of allowed keywords - workarround due to C++98 restriction - static initialization of vector */
17
+ static const HeadersKeyCollection& getAllowedMultipleDefinitions() {
18
+
19
+ static std::string keys[] = {
20
+ HTTPHeaderName::SetCookie,
21
+ HTTPHeaderName::Link,
22
+ };
23
+
24
+ static const HeadersKeyCollection allowedMultipleDefinitions(keys, keys + (sizeof(keys)/sizeof(keys[0])));
25
+
26
+ return allowedMultipleDefinitions;
27
+ }
28
+
29
+ /** Check if Header name has allowed multiple definitions */
30
+ static bool isAllowedMultipleDefinition(const Header& header) {
31
+
32
+ const HeadersKeyCollection& keys = getAllowedMultipleDefinitions();
33
+
34
+ return std::find_if(keys.begin(),
35
+ keys.end(),
36
+ std::bind1st(MatchFirstWith<Header, std::string, IEqual<std::string> >(), header)) != keys.end();
37
+ }
38
+
39
+ static bool isNotValidTokenChar(const std::string::value_type& c) {
40
+ static const std::string validChars("-#$%&'*+.^_`|~");
41
+
42
+ return !(std::isalnum(c) || (validChars.find(c) != std::string::npos));
43
+ }
44
+
45
+ static std::string::const_iterator findNonValidCharInHeaderName(const std::string& token) {
46
+
47
+ return std::find_if(token.begin(), token.end(), isNotValidTokenChar);
48
+ }
49
+
50
+ bool HeaderNameTokenChecker::operator()() const {
51
+
52
+ return findNonValidCharInHeaderName(headerName) == headerName.end();
53
+ }
54
+
55
+ std::string HeaderNameTokenChecker::getMessage() const {
56
+
57
+ const char invalidChar = *findNonValidCharInHeaderName(headerName);
58
+ std::stringstream ss;
59
+ ss << "HTTP header name '" << headerName << "' contains illegal character '"
60
+ << invalidChar << "' (0x" << std::hex << static_cast<int16_t>(invalidChar)
61
+ << ") skipping the header";
62
+
63
+ return ss.str();
64
+ }
65
+
66
+ bool ColonPresentedChecker::operator()() const {
67
+
68
+ return captures[3].size() >= 1 && (captures[3].find(':') != std::string::npos);
69
+ }
70
+
71
+ std::string ColonPresentedChecker::getMessage() const {
72
+
73
+ std::stringstream ss;
74
+ ss << "missing colon after header name '" << captures[1] << "'";
75
+
76
+ return ss.str();
77
+ }
78
+
79
+ bool HeadersDuplicateChecker::operator()() const {
80
+
81
+ return findHeader(headers, header) == headers.end() ||
82
+ isAllowedMultipleDefinition(header);
83
+ }
84
+
85
+ std::string HeadersDuplicateChecker::getMessage() const {
86
+
87
+ std::stringstream ss;
88
+ ss << "duplicate definition of '" << header.first << "' header";
89
+
90
+ return ss.str();
91
+ }
92
+
93
+ bool HeaderValuePresentedChecker::operator()() const {
94
+
95
+ return !header.second.empty();
96
+ }
97
+
98
+ std::string HeaderValuePresentedChecker::getMessage() const {
99
+
100
+ std::stringstream ss;
101
+ ss << "HTTP header '"<< header.first << "' has no value";
102
+
103
+ return ss.str();
104
+ }
105
+
106
+ bool HeaderParserValidator::operator()(const ValidateFunctorBase& rule) {
107
+ bool rc = rule();
108
+
109
+ if(!rc) {
110
+ out.report.warnings.push_back(Warning(rule.getMessage(),
111
+ HTTPWarning,
112
+ sourceMap));
113
+ }
114
+
115
+ return rc;
116
+ }
117
+
@@ -0,0 +1,377 @@
1
+ //
2
+ // HeaderParser.h
3
+ // snowcrash
4
+ //
5
+ // Created by Zdenek Nemec on 5/22/13.
6
+ // Copyright (c) 2013 Apiary Inc. All rights reserved.
7
+ //
8
+
9
+ #ifndef SNOWCRASH_HEADERPARSER_H
10
+ #define SNOWCRASH_HEADERPARSER_H
11
+
12
+ #include "SectionParser.h"
13
+ #include "RegexMatch.h"
14
+ #include "CodeBlockUtility.h"
15
+ #include "StringUtility.h"
16
+ #include "BlueprintUtility.h"
17
+ #include "RegexMatch.h"
18
+
19
+ #include <string.h>
20
+
21
+ namespace snowcrash {
22
+
23
+ /** Headers matching regex */
24
+ const char* const HeadersRegex = "^[[:blank:]]*[Hh]eaders?[[:blank:]]*$";
25
+
26
+ /** Header Iterator in its containment group */
27
+ typedef Collection<Header>::const_iterator HeaderIterator;
28
+
29
+ /** Base class for functor to check validity of parsed header */
30
+ struct ValidateFunctorBase {
31
+
32
+ /** intended to generate warning mesage */
33
+ virtual std::string getMessage() const = 0;
34
+
35
+ /**
36
+ * intended to invoke validation
37
+ * \return true if validation is ok
38
+ *
39
+ * data for validation you can inject into functor via c-tor
40
+ */
41
+ virtual bool operator()() const = 0;
42
+
43
+ };
44
+
45
+ /** Functor implementation for check header name is valid token according to specification \see http://tools.ietf.org/html/rfc7230#section-3.2.6 */
46
+ struct HeaderNameTokenChecker : public ValidateFunctorBase {
47
+
48
+ const std::string& headerName;
49
+
50
+ explicit HeaderNameTokenChecker(const std::string& headerName) : headerName(headerName) {}
51
+
52
+ virtual bool operator()() const;
53
+ virtual std::string getMessage() const;
54
+ };
55
+
56
+ /** Functor implementation for check header contains colon character between name and value */
57
+ struct ColonPresentedChecker : public ValidateFunctorBase {
58
+
59
+ const CaptureGroups& captures;
60
+
61
+ explicit ColonPresentedChecker(const CaptureGroups& captures) : captures(captures) {}
62
+
63
+ virtual bool operator()() const;
64
+ virtual std::string getMessage() const;
65
+
66
+ };
67
+
68
+ /** Functor implementation to check Headers duplicity */
69
+ struct HeadersDuplicateChecker : public ValidateFunctorBase {
70
+
71
+ const Header& header;
72
+ const Headers& headers;
73
+
74
+ explicit HeadersDuplicateChecker(const Header& header,
75
+ const Headers& headers)
76
+ : header(header), headers(headers) {}
77
+
78
+ virtual bool operator()() const;
79
+ virtual std::string getMessage() const;
80
+
81
+ };
82
+
83
+ /** Functor implementation to check Headers duplicity */
84
+ struct HeaderValuePresentedChecker : public ValidateFunctorBase {
85
+
86
+ const Header& header;
87
+
88
+ explicit HeaderValuePresentedChecker(const Header& header)
89
+ : header(header) {}
90
+
91
+ virtual bool operator()() const;
92
+ virtual std::string getMessage() const;
93
+
94
+ };
95
+
96
+ /** Functor receive and invoke individual Validators and conditionaly push reports */
97
+ struct HeaderParserValidator {
98
+
99
+ const ParseResultRef<Headers>& out;
100
+ mdp::CharactersRangeSet sourceMap;
101
+
102
+ HeaderParserValidator(const ParseResultRef<Headers>& out,
103
+ mdp::CharactersRangeSet sourceMap)
104
+ : out(out), sourceMap(sourceMap) {}
105
+
106
+ bool operator()(const ValidateFunctorBase& rule);
107
+ };
108
+
109
+
110
+ /**
111
+ * Headers Section Processor
112
+ */
113
+ template<>
114
+ struct SectionProcessor<Headers> : public SectionProcessorBase<Headers> {
115
+
116
+ static MarkdownNodeIterator processSignature(const MarkdownNodeIterator& node,
117
+ const MarkdownNodes& siblings,
118
+ SectionParserData& pd,
119
+ SectionLayout& layout,
120
+ const ParseResultRef<Headers>& out) {
121
+
122
+ mdp::ByteBuffer content;
123
+ CodeBlockUtility::signatureContentAsCodeBlock(node, pd, out.report, content);
124
+
125
+ // drop first line (it contain " + Headers")
126
+ // we need just "content"
127
+ mdp::BytesRangeSet::const_iterator begin = node->sourceMap.begin();
128
+ begin++;
129
+
130
+ headersFromContent(node, begin, node->sourceMap.end(), pd, out);
131
+
132
+ return ++MarkdownNodeIterator(node);
133
+ }
134
+
135
+ NO_SECTION_DESCRIPTION(Headers)
136
+
137
+ static MarkdownNodeIterator processContent(const MarkdownNodeIterator& node,
138
+ const MarkdownNodes& siblings,
139
+ SectionParserData& pd,
140
+ const ParseResultRef<Headers>& out) {
141
+
142
+ mdp::ByteBuffer content;
143
+ CodeBlockUtility::contentAsCodeBlock(node, pd, out.report, content);
144
+
145
+ headersFromContent(node, node->sourceMap.begin(), node->sourceMap.end(), pd, out);
146
+
147
+ return ++MarkdownNodeIterator(node);
148
+ }
149
+
150
+ static bool isContentNode(const MarkdownNodeIterator& node,
151
+ SectionType sectionType) {
152
+
153
+ return (SectionKeywordSignature(node) == UndefinedSectionType);
154
+ }
155
+
156
+ static SectionType sectionType(const MarkdownNodeIterator& node) {
157
+
158
+ if (node->type == mdp::ListItemMarkdownNodeType
159
+ && !node->children().empty()) {
160
+
161
+ mdp::ByteBuffer subject = node->children().front().text;
162
+ mdp::ByteBuffer signature;
163
+ mdp::ByteBuffer remainingContent;
164
+
165
+ signature = GetFirstLine(subject, remainingContent);
166
+ TrimString(signature);
167
+
168
+ if (RegexMatch(signature, HeadersRegex))
169
+ return HeadersSectionType;
170
+ }
171
+
172
+ return UndefinedSectionType;
173
+ }
174
+
175
+ static void finalize(const MarkdownNodeIterator& node,
176
+ SectionParserData& pd,
177
+ const ParseResultRef<Headers>& out) {
178
+
179
+ if (out.node.empty()) {
180
+
181
+ // WARN: No valid headers defined
182
+ mdp::CharactersRangeSet sourceMap = mdp::BytesRangeSetToCharactersRangeSet(node->sourceMap, pd.sourceCharacterIndex);
183
+ out.report.warnings.push_back(Warning("no valid headers specified",
184
+ FormattingWarning,
185
+ sourceMap));
186
+ }
187
+ }
188
+
189
+ /**
190
+ * Parse individual line of header
191
+ * \return true if valid header definition
192
+ *
193
+ * Header name is checked against token definition
194
+ *
195
+ * \param line - contains individual line with header definition
196
+ * \param header - is filled by name and value if definition is valid
197
+ * \param out - "report" member can receive warning while checking validity
198
+ * \param sourceMap - just contain source mapping for warning report
199
+ */
200
+ static bool parseHeaderLine(const mdp::ByteBuffer& line,
201
+ Header& header,
202
+ const ParseResultRef<Headers>& out,
203
+ const mdp::CharactersRangeSet sourceMap) {
204
+
205
+ std::string re = "^ *([^:[:blank:]]+)(( *:? *)(.*)?)$";
206
+
207
+ CaptureGroups parts;
208
+ bool matched = RegexCapture(line, re, parts, 5);
209
+
210
+ if (!matched) {
211
+ // WARN: unable to parse header
212
+ out.report.warnings.push_back(
213
+ Warning("unable to parse HTTP header, expected '<header name> : <header value>', one header per line", FormattingWarning, sourceMap));
214
+ return false;
215
+ }
216
+
217
+ header = std::make_pair(parts[1], parts[4]);
218
+ TrimString(header.second);
219
+
220
+ HeaderParserValidator validate(out, sourceMap);
221
+
222
+ if (!validate(HeaderNameTokenChecker(header.first))) {
223
+ return false;
224
+ }
225
+
226
+ validate(ColonPresentedChecker(parts));
227
+ validate(HeadersDuplicateChecker(header, out.node));
228
+ validate(HeaderValuePresentedChecker(header));
229
+
230
+ return !header.first.empty();
231
+ }
232
+
233
+ static bool fetchLine(const std::string& input,
234
+ mdp::BytesRange& map,
235
+ std::string& line) {
236
+
237
+ if (input.length() < (map.location + map.length)) {
238
+ return false;
239
+ }
240
+
241
+ TrimRange trim = GetTrimInfo(input.begin() + map.location, input.begin() + map.location + map.length);
242
+
243
+ map.length = std::get<1>(trim);
244
+
245
+ if (map.length <= 0) {
246
+ return false;
247
+ }
248
+
249
+ map.location += std::get<0>(trim);
250
+
251
+ line = input.substr(map.location, map.length);
252
+
253
+ return true;
254
+ }
255
+
256
+ static bool isCodeFence(const std::string& line) {
257
+ return (!memcmp(line.c_str(), "```", 3) || !memcmp(line.c_str(), "~~~", 3));
258
+ }
259
+
260
+ /** Retrieve headers from content */
261
+ static void headersFromContent(const MarkdownNodeIterator& node,
262
+ mdp::BytesRangeSet::const_iterator from,
263
+ mdp::BytesRangeSet::const_iterator to,
264
+ const SectionParserData& pd,
265
+ const ParseResultRef<Headers>& out) {
266
+
267
+ bool inCodeFence = false;
268
+
269
+ for (mdp::BytesRangeSet::const_iterator it = from ; it != to ; it++) {
270
+
271
+ mdp::BytesRange map(*it);
272
+ std::string line;
273
+
274
+ if (!fetchLine(pd.sourceData, map, line)) {
275
+ continue;
276
+ }
277
+
278
+ if (it == from) {
279
+ inCodeFence = isCodeFence(line);
280
+ };
281
+
282
+ if (inCodeFence && isCodeFence(line)) {
283
+ continue;
284
+ }
285
+
286
+ Header header;
287
+
288
+ mdp::BytesRangeSet byteMap;
289
+ byteMap.push_back(map);
290
+ mdp::CharactersRangeSet sourceMap = mdp::BytesRangeSetToCharactersRangeSet(byteMap, pd.sourceCharacterIndex);
291
+
292
+ if (parseHeaderLine(line, header, out, sourceMap)) {
293
+ out.node.push_back(header);
294
+
295
+ if (pd.exportSourceMap()) {
296
+ SourceMap<Header> headerSM;
297
+ headerSM.sourceMap = sourceMap;
298
+ out.sourceMap.collection.push_back(headerSM);
299
+ }
300
+ }
301
+ }
302
+
303
+ }
304
+
305
+ /** Inject headers into transaction examples requests and responses */
306
+ static void injectDeprecatedHeaders(SectionParserData& pd,
307
+ const Headers& headers,
308
+ const SourceMap<Headers>& headersSM,
309
+ TransactionExamples& examples,
310
+ SourceMap<TransactionExamples>& examplesSM) {
311
+
312
+ Collection<TransactionExample>::iterator exampleIt = examples.begin();
313
+ Collection<SourceMap<TransactionExample> >::iterator exampleSourceMapIt;
314
+
315
+ if (pd.exportSourceMap()) {
316
+ exampleSourceMapIt = examplesSM.collection.begin();
317
+ }
318
+
319
+ while (exampleIt != examples.end()) {
320
+
321
+ Collection<Request>::iterator requestIt = exampleIt->requests.begin();
322
+ Collection<SourceMap<Request> >::iterator requestSourceMapIt;
323
+
324
+ if (pd.exportSourceMap()) {
325
+ requestSourceMapIt = exampleSourceMapIt->requests.collection.begin();
326
+ }
327
+
328
+ // Requests
329
+ while (requestIt != exampleIt->requests.end()) {
330
+
331
+ requestIt->headers.insert(requestIt->headers.begin(), headers.begin(), headers.end());
332
+ ++requestIt;
333
+
334
+ if (pd.exportSourceMap()) {
335
+ requestSourceMapIt->headers.collection.insert(requestSourceMapIt->headers.collection.begin(),
336
+ headersSM.collection.begin(),
337
+ headersSM.collection.end());
338
+ ++requestSourceMapIt;
339
+ }
340
+ }
341
+
342
+ Collection<Response>::iterator responseIt = exampleIt->responses.begin();
343
+ Collection<SourceMap<Response> >::iterator responseSourceMapIt;
344
+
345
+ if (pd.exportSourceMap()) {
346
+ responseSourceMapIt = exampleSourceMapIt->responses.collection.begin();
347
+ }
348
+
349
+ // Responses
350
+ while(responseIt != exampleIt->responses.end()) {
351
+
352
+ responseIt->headers.insert(responseIt->headers.begin(), headers.begin(), headers.end());
353
+ ++responseIt;
354
+
355
+ if (pd.exportSourceMap()) {
356
+ responseSourceMapIt->headers.collection.insert(responseSourceMapIt->headers.collection.begin(),
357
+ headersSM.collection.begin(),
358
+ headersSM.collection.end());
359
+ ++responseSourceMapIt;
360
+ }
361
+ }
362
+
363
+ ++exampleIt;
364
+
365
+ if (pd.exportSourceMap()) {
366
+ ++exampleSourceMapIt;
367
+ }
368
+ }
369
+ }
370
+
371
+ };
372
+
373
+ /** Headers Section Parser */
374
+ typedef SectionParser<Headers, ListSectionAdapter> HeadersParser;
375
+ }
376
+
377
+ #endif