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.
- checksums.yaml +7 -0
- data/.gitignore +11 -0
- data/.gitmodules +3 -0
- data/.rspec +2 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +4 -0
- data/Guardfile +33 -0
- data/LICENSE.txt +21 -0
- data/README.md +50 -0
- data/Rakefile +43 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/circle.yml +14 -0
- data/ext/drafter/CHANGELOG.md +278 -0
- data/ext/drafter/Dockerfile +17 -0
- data/ext/drafter/Makefile +62 -0
- data/ext/drafter/appveyor.yml +17 -0
- data/ext/drafter/bin/drafter +0 -0
- data/ext/drafter/build/Makefile +387 -0
- data/ext/drafter/build/drafter.Makefile +6 -0
- data/ext/drafter/build/drafter.target.mk +159 -0
- data/ext/drafter/build/ext/snowcrash/libmarkdownparser.target.mk +141 -0
- data/ext/drafter/build/ext/snowcrash/libsnowcrash.target.mk +154 -0
- data/ext/drafter/build/ext/snowcrash/libsundown.target.mk +149 -0
- data/ext/drafter/build/ext/snowcrash/perf-libsnowcrash.target.mk +147 -0
- data/ext/drafter/build/ext/snowcrash/snowcrash.Makefile +6 -0
- data/ext/drafter/build/gyp-mac-tool +606 -0
- data/ext/drafter/build/libdrafter.target.mk +186 -0
- data/ext/drafter/build/libsos.target.mk +137 -0
- data/ext/drafter/build/out/Release/drafter +0 -0
- data/ext/drafter/build/out/Release/libdrafter.dylib +0 -0
- data/ext/drafter/build/out/Release/libmarkdownparser.a +0 -0
- data/ext/drafter/build/out/Release/libsnowcrash.a +0 -0
- data/ext/drafter/build/out/Release/libsos.a +0 -0
- data/ext/drafter/build/out/Release/libsundown.a +0 -0
- data/ext/drafter/build/out/Release/obj.target/drafter/src/config.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/drafter/src/main.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/drafter/src/reporting.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/ConversionContext.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/NamedTypesRegistry.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/RefractAPI.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/RefractDataStructure.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/RefractElementFactory.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/RefractSourceMap.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/Render.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/Serialize.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/SerializeAST.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/SerializeResult.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/SerializeSourcemap.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/drafter.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/drafter_private.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/ComparableVisitor.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/Element.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/ExpandVisitor.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/IsExpandableVisitor.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/JSONSchemaVisitor.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/PrintVisitor.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/Query.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/Registry.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/RenderJSONVisitor.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/SerializeCompactVisitor.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/SerializeVisitor.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/TypeQueryVisitor.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/VisitorUtils.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libmarkdownparser/ext/snowcrash/ext/markdown-parser/src/ByteBuffer.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libmarkdownparser/ext/snowcrash/ext/markdown-parser/src/MarkdownNode.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libmarkdownparser/ext/snowcrash/ext/markdown-parser/src/MarkdownParser.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/Blueprint.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/BlueprintSourcemap.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/HTTP.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/HeadersParser.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/MSON.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/MSONOneOfParser.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/MSONSourcemap.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/MSONTypeSectionParser.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/MSONValueMemberParser.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/Section.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/Signature.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/UriTemplateParser.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/posix/RegexMatch.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/snowcrash.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsos/ext/sos/src/sos.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/html/houdini_href_e.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/html/houdini_html_e.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/html/html.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/html/html_smartypants.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/src/autolink.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/src/buffer.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/src/markdown.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/src/src_map.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/src/stack.o +0 -0
- data/ext/drafter/circle.yml +32 -0
- data/ext/drafter/config.gypi +10 -0
- data/ext/drafter/config.mk +5 -0
- data/ext/drafter/configure +224 -0
- data/ext/drafter/drafter.gyp +189 -0
- data/ext/drafter/drafter.xcworkspace/contents.xcworkspacedata +13 -0
- data/ext/drafter/ext/snowcrash/Makefile +58 -0
- data/ext/drafter/ext/snowcrash/appveyor.yml +7 -0
- data/ext/drafter/ext/snowcrash/common.gypi +165 -0
- data/ext/drafter/ext/snowcrash/configure +197 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/Makefile +90 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/CONTRIBUTING.md +10 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/Makefile +84 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/Makefile.win +33 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/examples/smartypants.c +72 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/examples/sundown.c +80 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/html/houdini.h +37 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/html/houdini_href_e.c +108 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/html/houdini_html_e.c +84 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/html/html.c +647 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/html/html.h +77 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/html/html_smartypants.c +389 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/html_block_names.txt +25 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/autolink.c +297 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/autolink.h +51 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/buffer.c +225 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/buffer.h +96 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/html_blocks.h +206 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/markdown.c +2726 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/markdown.h +147 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/src_map.c +204 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/src_map.h +58 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/stack.c +81 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/stack.h +29 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/sundown.def +20 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/msvc/markdown/markdown.vcproj +188 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/msvc/msvc.sln +38 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/msvc/sundown/sundown.vcproj +206 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/src/ByteBuffer.cc +160 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/src/ByteBuffer.h +90 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/src/MarkdownNode.cc +152 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/src/MarkdownNode.h +103 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/src/MarkdownParser.cc +388 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/src/MarkdownParser.h +106 -0
- data/ext/drafter/ext/snowcrash/snowcrash.gyp +196 -0
- data/ext/drafter/ext/snowcrash/src/ActionParser.h +560 -0
- data/ext/drafter/ext/snowcrash/src/AssetParser.h +123 -0
- data/ext/drafter/ext/snowcrash/src/AttributesParser.h +123 -0
- data/ext/drafter/ext/snowcrash/src/Blueprint.cc +90 -0
- data/ext/drafter/ext/snowcrash/src/Blueprint.h +489 -0
- data/ext/drafter/ext/snowcrash/src/BlueprintParser.h +845 -0
- data/ext/drafter/ext/snowcrash/src/BlueprintSourcemap.cc +81 -0
- data/ext/drafter/ext/snowcrash/src/BlueprintSourcemap.h +345 -0
- data/ext/drafter/ext/snowcrash/src/BlueprintUtility.h +111 -0
- data/ext/drafter/ext/snowcrash/src/CodeBlockUtility.h +276 -0
- data/ext/drafter/ext/snowcrash/src/DataStructureGroupParser.h +157 -0
- data/ext/drafter/ext/snowcrash/src/HTTP.cc +49 -0
- data/ext/drafter/ext/snowcrash/src/HTTP.h +108 -0
- data/ext/drafter/ext/snowcrash/src/HeadersParser.cc +117 -0
- data/ext/drafter/ext/snowcrash/src/HeadersParser.h +377 -0
- data/ext/drafter/ext/snowcrash/src/MSON.cc +272 -0
- data/ext/drafter/ext/snowcrash/src/MSON.h +405 -0
- data/ext/drafter/ext/snowcrash/src/MSONMixinParser.h +103 -0
- data/ext/drafter/ext/snowcrash/src/MSONNamedTypeParser.h +135 -0
- data/ext/drafter/ext/snowcrash/src/MSONOneOfParser.cc +132 -0
- data/ext/drafter/ext/snowcrash/src/MSONOneOfParser.h +80 -0
- data/ext/drafter/ext/snowcrash/src/MSONParameterParser.h +166 -0
- data/ext/drafter/ext/snowcrash/src/MSONPropertyMemberParser.h +106 -0
- data/ext/drafter/ext/snowcrash/src/MSONSourcemap.cc +141 -0
- data/ext/drafter/ext/snowcrash/src/MSONSourcemap.h +181 -0
- data/ext/drafter/ext/snowcrash/src/MSONTypeSectionParser.cc +209 -0
- data/ext/drafter/ext/snowcrash/src/MSONTypeSectionParser.h +213 -0
- data/ext/drafter/ext/snowcrash/src/MSONUtility.h +506 -0
- data/ext/drafter/ext/snowcrash/src/MSONValueMemberParser.cc +214 -0
- data/ext/drafter/ext/snowcrash/src/MSONValueMemberParser.h +390 -0
- data/ext/drafter/ext/snowcrash/src/ModelTable.h +87 -0
- data/ext/drafter/ext/snowcrash/src/ParameterParser.h +516 -0
- data/ext/drafter/ext/snowcrash/src/ParametersParser.h +222 -0
- data/ext/drafter/ext/snowcrash/src/PayloadParser.h +733 -0
- data/ext/drafter/ext/snowcrash/src/Platform.h +33 -0
- data/ext/drafter/ext/snowcrash/src/RegexMatch.h +32 -0
- data/ext/drafter/ext/snowcrash/src/RelationParser.h +87 -0
- data/ext/drafter/ext/snowcrash/src/ResourceGroupParser.h +297 -0
- data/ext/drafter/ext/snowcrash/src/ResourceParser.h +536 -0
- data/ext/drafter/ext/snowcrash/src/Section.cc +48 -0
- data/ext/drafter/ext/snowcrash/src/Section.h +60 -0
- data/ext/drafter/ext/snowcrash/src/SectionParser.h +246 -0
- data/ext/drafter/ext/snowcrash/src/SectionParserData.h +109 -0
- data/ext/drafter/ext/snowcrash/src/SectionProcessor.h +299 -0
- data/ext/drafter/ext/snowcrash/src/Signature.cc +75 -0
- data/ext/drafter/ext/snowcrash/src/Signature.h +103 -0
- data/ext/drafter/ext/snowcrash/src/SignatureSectionProcessor.h +442 -0
- data/ext/drafter/ext/snowcrash/src/SourceAnnotation.h +166 -0
- data/ext/drafter/ext/snowcrash/src/StringUtility.h +323 -0
- data/ext/drafter/ext/snowcrash/src/UriTemplateParser.cc +195 -0
- data/ext/drafter/ext/snowcrash/src/UriTemplateParser.h +240 -0
- data/ext/drafter/ext/snowcrash/src/ValuesParser.h +111 -0
- data/ext/drafter/ext/snowcrash/src/posix/RegexMatch.cc +99 -0
- data/ext/drafter/ext/snowcrash/src/snowcrash.cc +90 -0
- data/ext/drafter/ext/snowcrash/src/snowcrash.h +44 -0
- data/ext/drafter/ext/snowcrash/src/win/RegexMatch.cc +78 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/AUTHORS +12 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/DEPS +23 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/OWNERS +1 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/PRESUBMIT.py +137 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/buildbot/buildbot_run.py +136 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/buildbot/commit_queue/OWNERS +6 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/buildbot/commit_queue/cq_config.json +15 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/codereview.settings +10 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/data/win/large-pdb-shim.cc +12 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/gyp +8 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/gyp.bat +5 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/gyp_main.py +16 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSNew.py +340 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSProject.py +208 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSSettings.py +1096 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSToolFile.py +58 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSUserFile.py +147 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSUtil.py +270 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSUtil.pyc +0 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSVersion.py +445 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSVersion.pyc +0 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/__init__.py +548 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/__init__.pyc +0 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/common.py +608 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/common.pyc +0 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/easy_xml.py +157 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/flock_tool.py +54 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/__init__.py +0 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/__init__.pyc +0 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/analyzer.py +741 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/android.py +1069 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/cmake.py +1248 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/dump_dependency_json.py +99 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/eclipse.py +425 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/gypd.py +94 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/gypsh.py +56 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/make.py +2218 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/make.pyc +0 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/msvs.py +3467 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/ninja.py +2427 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/ninja.pyc +0 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/xcode.py +1300 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/xcode.pyc +0 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/input.py +2899 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/input.pyc +0 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/mac_tool.py +605 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/msvs_emulation.py +1093 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/msvs_emulation.pyc +0 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/ninja_syntax.py +160 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/ninja_syntax.pyc +0 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/ordered_dict.py +289 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/simple_copy.py +46 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/simple_copy.pyc +0 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/win_tool.py +314 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/xcode_emulation.py +1664 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/xcode_emulation.pyc +0 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/xcode_ninja.py +276 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/xcode_ninja.pyc +0 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/xcodeproj_file.py +2927 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/xcodeproj_file.pyc +0 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/xml_fix.py +69 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylintrc +307 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/samples/samples +81 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/samples/samples.bat +5 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/setup.py +19 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/tools/Xcode/Specifications/gyp.pbfilespec +27 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/tools/Xcode/Specifications/gyp.xclangspec +226 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/tools/emacs/gyp.el +275 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/tools/graphviz.py +100 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/tools/pretty_gyp.py +155 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/tools/pretty_sln.py +169 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/tools/pretty_vcproj.py +329 -0
- data/ext/drafter/ext/snowcrash/vcbuild.bat +139 -0
- data/ext/drafter/ext/sos/Makefile +62 -0
- data/ext/drafter/ext/sos/src/sos.cc +235 -0
- data/ext/drafter/ext/sos/src/sos.h +188 -0
- data/ext/drafter/ext/sos/src/sosJSON.h +121 -0
- data/ext/drafter/ext/sos/src/sosYAML.h +105 -0
- data/ext/drafter/src/ConversionContext.cc +39 -0
- data/ext/drafter/src/ConversionContext.h +34 -0
- data/ext/drafter/src/NamedTypesRegistry.cc +405 -0
- data/ext/drafter/src/NamedTypesRegistry.h +28 -0
- data/ext/drafter/src/NodeInfo.h +143 -0
- data/ext/drafter/src/RefractAPI.cc +579 -0
- data/ext/drafter/src/RefractAPI.h +28 -0
- data/ext/drafter/src/RefractDataStructure.cc +1199 -0
- data/ext/drafter/src/RefractDataStructure.h +26 -0
- data/ext/drafter/src/RefractElementFactory.cc +107 -0
- data/ext/drafter/src/RefractElementFactory.h +67 -0
- data/ext/drafter/src/RefractSourceMap.cc +29 -0
- data/ext/drafter/src/RefractSourceMap.h +57 -0
- data/ext/drafter/src/Render.cc +157 -0
- data/ext/drafter/src/Render.h +40 -0
- data/ext/drafter/src/Serialize.cc +160 -0
- data/ext/drafter/src/Serialize.h +289 -0
- data/ext/drafter/src/SerializeAST.cc +507 -0
- data/ext/drafter/src/SerializeAST.h +29 -0
- data/ext/drafter/src/SerializeResult.cc +170 -0
- data/ext/drafter/src/SerializeResult.h +34 -0
- data/ext/drafter/src/SerializeSourcemap.cc +331 -0
- data/ext/drafter/src/SerializeSourcemap.h +21 -0
- data/ext/drafter/src/Version.h +40 -0
- data/ext/drafter/src/config.cc +91 -0
- data/ext/drafter/src/config.h +38 -0
- data/ext/drafter/src/drafter.cc +137 -0
- data/ext/drafter/src/drafter.h +102 -0
- data/ext/drafter/src/drafter_private.cc +85 -0
- data/ext/drafter/src/drafter_private.h +34 -0
- data/ext/drafter/src/main.cc +137 -0
- data/ext/drafter/src/refract/AppendDecorator.h +58 -0
- data/ext/drafter/src/refract/Build.h +67 -0
- data/ext/drafter/src/refract/ComparableVisitor.cc +43 -0
- data/ext/drafter/src/refract/ComparableVisitor.h +62 -0
- data/ext/drafter/src/refract/Element.cc +409 -0
- data/ext/drafter/src/refract/Element.h +656 -0
- data/ext/drafter/src/refract/ElementFwd.h +37 -0
- data/ext/drafter/src/refract/ElementInserter.h +59 -0
- data/ext/drafter/src/refract/Exception.h +31 -0
- data/ext/drafter/src/refract/ExpandVisitor.cc +359 -0
- data/ext/drafter/src/refract/ExpandVisitor.h +58 -0
- data/ext/drafter/src/refract/FilterVisitor.h +52 -0
- data/ext/drafter/src/refract/IsExpandableVisitor.cc +140 -0
- data/ext/drafter/src/refract/IsExpandableVisitor.h +31 -0
- data/ext/drafter/src/refract/Iterate.h +160 -0
- data/ext/drafter/src/refract/JSONSchemaVisitor.cc +675 -0
- data/ext/drafter/src/refract/JSONSchemaVisitor.h +73 -0
- data/ext/drafter/src/refract/PrintVisitor.cc +164 -0
- data/ext/drafter/src/refract/PrintVisitor.h +50 -0
- data/ext/drafter/src/refract/Query.cc +13 -0
- data/ext/drafter/src/refract/Query.h +38 -0
- data/ext/drafter/src/refract/Registry.cc +114 -0
- data/ext/drafter/src/refract/Registry.h +43 -0
- data/ext/drafter/src/refract/RenderJSONVisitor.cc +255 -0
- data/ext/drafter/src/refract/RenderJSONVisitor.h +51 -0
- data/ext/drafter/src/refract/SerializeCompactVisitor.cc +167 -0
- data/ext/drafter/src/refract/SerializeCompactVisitor.h +56 -0
- data/ext/drafter/src/refract/SerializeVisitor.cc +214 -0
- data/ext/drafter/src/refract/SerializeVisitor.h +55 -0
- data/ext/drafter/src/refract/TypeQueryVisitor.cc +46 -0
- data/ext/drafter/src/refract/TypeQueryVisitor.h +110 -0
- data/ext/drafter/src/refract/Visitor.h +126 -0
- data/ext/drafter/src/refract/VisitorUtils.cc +63 -0
- data/ext/drafter/src/refract/VisitorUtils.h +231 -0
- data/ext/drafter/src/reporting.cc +263 -0
- data/ext/drafter/src/reporting.h +39 -0
- data/ext/drafter/src/stream.h +148 -0
- data/ext/drafter/tools/homebrew/drafter.rb +18 -0
- data/ext/drafter/tools/make-tarball.sh +39 -0
- data/ext/drafter/tools/refract-filter.py +96 -0
- data/ext/drafter/tools/release.sh +17 -0
- data/ext/drafter/vcbuild.bat +203 -0
- data/lib/lounge_lizard/binding.rb +29 -0
- data/lib/lounge_lizard/version.rb +3 -0
- data/lib/lounge_lizard.rb +18 -0
- data/lounge_lizard.gemspec +37 -0
- metadata +547 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Platform.h
|
|
3
|
+
// snowcrash
|
|
4
|
+
//
|
|
5
|
+
// Created by Zdenek Nemec on 7/2/13.
|
|
6
|
+
// Copyright (c) 2013 Apiary Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
#ifndef SNOWCRASH_PLATFORM_H
|
|
10
|
+
#define SNOWCRASH_PLATFORM_H
|
|
11
|
+
|
|
12
|
+
#define AS_TYPE(Type, Obj) reinterpret_cast<Type *>(Obj)
|
|
13
|
+
#define AS_CTYPE(Type, Obj) reinterpret_cast<const Type *>(Obj)
|
|
14
|
+
|
|
15
|
+
#if defined(BUILDING_SNOWCRASH)
|
|
16
|
+
# define DEPRECATED
|
|
17
|
+
#endif
|
|
18
|
+
|
|
19
|
+
#if defined(_MSC_VER)
|
|
20
|
+
# if !defined(DEPRECATED)
|
|
21
|
+
# define DEPRECATED __declspec(deprecated)
|
|
22
|
+
# endif
|
|
23
|
+
#elif defined(__clang__) || defined(__GNUC__)
|
|
24
|
+
# if !defined(DEPRECATED)
|
|
25
|
+
# define DEPRECATED __attribute__((deprecated))
|
|
26
|
+
# endif
|
|
27
|
+
#else
|
|
28
|
+
# if !defined(DEPRECATED)
|
|
29
|
+
# define DEPRECATED
|
|
30
|
+
# endif
|
|
31
|
+
#endif
|
|
32
|
+
|
|
33
|
+
#endif
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
//
|
|
2
|
+
// RegexMatch.h
|
|
3
|
+
// snowcrash
|
|
4
|
+
//
|
|
5
|
+
// Created by Zdenek Nemec on 5/2/13.
|
|
6
|
+
// Copyright (c) 2013 Apiary Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
#ifndef SNOWCRASH_REGEXMATCH_H
|
|
10
|
+
#define SNOWCRASH_REGEXMATCH_H
|
|
11
|
+
|
|
12
|
+
#include <string>
|
|
13
|
+
#include <vector>
|
|
14
|
+
|
|
15
|
+
namespace snowcrash {
|
|
16
|
+
|
|
17
|
+
// Perform snowcrash-specific regex evaluation
|
|
18
|
+
// returns true if target string matches given expression, false otherwise
|
|
19
|
+
bool RegexMatch(const std::string& target, const std::string& expression);
|
|
20
|
+
|
|
21
|
+
// Performs posix-regex and returns first captured group (excluding whole target)
|
|
22
|
+
std::string RegexCaptureFirst(const std::string& target, const std::string& expression);
|
|
23
|
+
|
|
24
|
+
// Array of capture groups
|
|
25
|
+
typedef std::vector<std::string> CaptureGroups;
|
|
26
|
+
|
|
27
|
+
// Performs posix-regex
|
|
28
|
+
// returns true if target string matches given expression, false otherwise
|
|
29
|
+
bool RegexCapture(const std::string& target, const std::string& expression, CaptureGroups& captureGroups, size_t groupSize = 8);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
#endif
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
//
|
|
2
|
+
// RelationParser.h
|
|
3
|
+
// snowcrash
|
|
4
|
+
//
|
|
5
|
+
// Created by Pavan Kumar Sunkara on 04/03/15.
|
|
6
|
+
// Copyright (c) 2015 Apiary Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
#ifndef SNOWCRASH_RELATIONPARSER_H
|
|
10
|
+
#define SNOWCRASH_RELATIONPARSER_H
|
|
11
|
+
|
|
12
|
+
#include "SectionParser.h"
|
|
13
|
+
#include "RegexMatch.h"
|
|
14
|
+
|
|
15
|
+
/** Macro for relation regex */
|
|
16
|
+
#define RELATION_REGEX "^[[:blank:]]*[Rr]elation[[:blank:]]*:"
|
|
17
|
+
|
|
18
|
+
namespace snowcrash {
|
|
19
|
+
|
|
20
|
+
/** Link Relation matching regex */
|
|
21
|
+
const char* const RelationRegex = RELATION_REGEX;
|
|
22
|
+
|
|
23
|
+
const char* const RelationIdentifierRegex = RELATION_REGEX "[[:blank:]]*([a-z][a-z0-9.-]*)?[[:blank:]]*$";
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Relation Section Processor
|
|
27
|
+
*/
|
|
28
|
+
template<>
|
|
29
|
+
struct SectionProcessor<Relation> : public SectionProcessorBase<Relation> {
|
|
30
|
+
|
|
31
|
+
static MarkdownNodeIterator processSignature(const MarkdownNodeIterator& node,
|
|
32
|
+
const MarkdownNodes& siblings,
|
|
33
|
+
SectionParserData& pd,
|
|
34
|
+
SectionLayout& layout,
|
|
35
|
+
const ParseResultRef<Relation>& out) {
|
|
36
|
+
|
|
37
|
+
mdp::ByteBuffer signature, remainingContent;
|
|
38
|
+
CaptureGroups captureGroups;
|
|
39
|
+
|
|
40
|
+
signature = GetFirstLine(node->text, remainingContent);
|
|
41
|
+
TrimString(signature);
|
|
42
|
+
|
|
43
|
+
if (RegexCapture(signature, RelationIdentifierRegex, captureGroups, 3)) {
|
|
44
|
+
out.node.str = captureGroups[1];
|
|
45
|
+
TrimString(out.node.str);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
// WARN: Relation identifier contains illegal characters
|
|
49
|
+
mdp::CharactersRangeSet sourceMap = mdp::BytesRangeSetToCharactersRangeSet(node->sourceMap, pd.sourceCharacterIndex);
|
|
50
|
+
out.report.warnings.push_back(Warning("relation identifier contains illegal characters (only lower case letters, numbers, '-' and '.' allowed)",
|
|
51
|
+
FormattingWarning,
|
|
52
|
+
sourceMap));
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
if (pd.exportSourceMap() && !out.node.str.empty()) {
|
|
56
|
+
out.sourceMap.sourceMap.append(node->sourceMap);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return ++MarkdownNodeIterator(node);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
NO_SECTION_DESCRIPTION(Relation)
|
|
63
|
+
|
|
64
|
+
static SectionType sectionType(const MarkdownNodeIterator& node) {
|
|
65
|
+
|
|
66
|
+
if (node->type == mdp::ListItemMarkdownNodeType
|
|
67
|
+
&& !node->children().empty()) {
|
|
68
|
+
|
|
69
|
+
mdp::ByteBuffer remaining, subject = node->children().front().text;
|
|
70
|
+
|
|
71
|
+
subject = GetFirstLine(subject, remaining);
|
|
72
|
+
TrimString(subject);
|
|
73
|
+
|
|
74
|
+
if (RegexMatch(subject, RelationRegex)) {
|
|
75
|
+
return RelationSectionType;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return UndefinedSectionType;
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
/** Relation Section Parser */
|
|
84
|
+
typedef SectionParser<Relation, ListSectionAdapter> RelationParser;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
#endif
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
//
|
|
2
|
+
// ResourceGroupParser.h
|
|
3
|
+
// snowcrash
|
|
4
|
+
//
|
|
5
|
+
// Created by Zdenek Nemec on 5/4/13.
|
|
6
|
+
// Copyright (c) 2013 Apiary Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
#ifndef SNOWCRASH_RESOURCEGROUPPARSER_H
|
|
10
|
+
#define SNOWCRASH_RESOURCEGROUPPARSER_H
|
|
11
|
+
|
|
12
|
+
#include "SectionParser.h"
|
|
13
|
+
#include "ResourceParser.h"
|
|
14
|
+
#include "RegexMatch.h"
|
|
15
|
+
|
|
16
|
+
namespace snowcrash {
|
|
17
|
+
|
|
18
|
+
const char* const GroupHeaderRegex = "^[[:blank:]]*[Gg]roup[[:blank:]]+" SYMBOL_IDENTIFIER "[[:blank:]]*$";
|
|
19
|
+
|
|
20
|
+
/** Internal type alias for Collection iterator of Resource */
|
|
21
|
+
typedef Collection<ResourceGroup>::const_iterator ResourceGroupIterator;
|
|
22
|
+
|
|
23
|
+
/** Resource iterator pair: its containment group and resource iterator itself */
|
|
24
|
+
typedef std::pair<ResourceGroupIterator, ResourceIterator> ResourceIteratorPair;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* ResourceGroup Section processor
|
|
28
|
+
*/
|
|
29
|
+
template<>
|
|
30
|
+
struct SectionProcessor<ResourceGroup> : public SectionProcessorBase<ResourceGroup> {
|
|
31
|
+
|
|
32
|
+
static MarkdownNodeIterator processSignature(const MarkdownNodeIterator& node,
|
|
33
|
+
const MarkdownNodes& siblings,
|
|
34
|
+
SectionParserData& pd,
|
|
35
|
+
SectionLayout& layout,
|
|
36
|
+
const ParseResultRef<ResourceGroup>& out) {
|
|
37
|
+
|
|
38
|
+
MarkdownNodeIterator cur = node;
|
|
39
|
+
SectionType nestedType = nestedSectionType(cur);
|
|
40
|
+
|
|
41
|
+
// Resources only, parse as exclusive nested sections
|
|
42
|
+
if (nestedType != UndefinedSectionType) {
|
|
43
|
+
layout = ExclusiveNestedSectionLayout;
|
|
44
|
+
return cur;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
CaptureGroups captureGroups;
|
|
48
|
+
|
|
49
|
+
if (RegexCapture(node->text, GroupHeaderRegex, captureGroups, 3)) {
|
|
50
|
+
out.node.attributes.name = captureGroups[1];
|
|
51
|
+
TrimString(out.node.attributes.name);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
if (pd.exportSourceMap() && !out.node.attributes.name.empty()) {
|
|
55
|
+
out.sourceMap.attributes.name.sourceMap = node->sourceMap;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return ++MarkdownNodeIterator(node);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
static MarkdownNodeIterator processDescription(const MarkdownNodeIterator& node,
|
|
62
|
+
const MarkdownNodes& siblings,
|
|
63
|
+
SectionParserData& pd,
|
|
64
|
+
const ParseResultRef<ResourceGroup>& out) {
|
|
65
|
+
|
|
66
|
+
// Check for a description child element
|
|
67
|
+
if (out.node.content.elements().empty() ||
|
|
68
|
+
(!out.node.content.elements().empty() &&
|
|
69
|
+
out.node.content.elements().back().element != Element::CopyElement)) {
|
|
70
|
+
|
|
71
|
+
Element description(Element::CopyElement);
|
|
72
|
+
out.node.content.elements().push_back(description);
|
|
73
|
+
|
|
74
|
+
if (pd.exportSourceMap()) {
|
|
75
|
+
|
|
76
|
+
SourceMap<Element> descriptionSM(Element::CopyElement);
|
|
77
|
+
out.sourceMap.content.elements().collection.push_back(descriptionSM);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
if (!out.node.content.elements().back().content.copy.empty()) {
|
|
82
|
+
TwoNewLines(out.node.content.elements().back().content.copy);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
mdp::ByteBuffer content = mdp::MapBytesRangeSet(node->sourceMap, pd.sourceData);
|
|
86
|
+
TrimString(content);
|
|
87
|
+
|
|
88
|
+
if (pd.exportSourceMap() && !content.empty()) {
|
|
89
|
+
out.sourceMap.content.elements().collection.back().content.copy.sourceMap.append(node->sourceMap);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
out.node.content.elements().back().content.copy += content;
|
|
93
|
+
|
|
94
|
+
return ++MarkdownNodeIterator(node);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
static MarkdownNodeIterator processNestedSection(const MarkdownNodeIterator& node,
|
|
98
|
+
const MarkdownNodes& siblings,
|
|
99
|
+
SectionParserData& pd,
|
|
100
|
+
const ParseResultRef<ResourceGroup>& out) {
|
|
101
|
+
|
|
102
|
+
MarkdownNodeIterator cur = node;
|
|
103
|
+
|
|
104
|
+
if (pd.sectionContext() == ResourceSectionType) {
|
|
105
|
+
|
|
106
|
+
IntermediateParseResult<Resource> resource(out.report);
|
|
107
|
+
cur = ResourceParser::parse(node, siblings, pd, resource);
|
|
108
|
+
|
|
109
|
+
bool duplicate = SectionProcessor<Resource>::isResourceDuplicate(out.node.content.elements(), resource.node.uriTemplate);
|
|
110
|
+
bool globalDuplicate;
|
|
111
|
+
|
|
112
|
+
if (!duplicate) {
|
|
113
|
+
globalDuplicate = isResourceDuplicate(pd.blueprint, resource.node.uriTemplate);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
if (duplicate || globalDuplicate) {
|
|
117
|
+
|
|
118
|
+
// WARN: Duplicate resource
|
|
119
|
+
mdp::CharactersRangeSet sourceMap = mdp::BytesRangeSetToCharactersRangeSet(node->sourceMap, pd.sourceCharacterIndex);
|
|
120
|
+
out.report.warnings.push_back(Warning("the resource '" + resource.node.uriTemplate + "' is already defined",
|
|
121
|
+
DuplicateWarning,
|
|
122
|
+
sourceMap));
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
Element resourceElement(Element::ResourceElement);
|
|
126
|
+
resourceElement.content.resource = resource.node;
|
|
127
|
+
|
|
128
|
+
out.node.content.elements().push_back(resourceElement);
|
|
129
|
+
|
|
130
|
+
if (pd.exportSourceMap()) {
|
|
131
|
+
|
|
132
|
+
SourceMap<Element> resourceElementSM(Element::ResourceElement);
|
|
133
|
+
resourceElementSM.content.resource = resource.sourceMap;
|
|
134
|
+
|
|
135
|
+
out.sourceMap.content.elements().collection.push_back(resourceElementSM);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
return cur;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
static MarkdownNodeIterator processUnexpectedNode(const MarkdownNodeIterator& node,
|
|
143
|
+
const MarkdownNodes& siblings,
|
|
144
|
+
SectionParserData& pd,
|
|
145
|
+
SectionType& lastSectionType,
|
|
146
|
+
const ParseResultRef<ResourceGroup>& out) {
|
|
147
|
+
|
|
148
|
+
if (SectionProcessor<Action>::actionType(node) == DependentActionType &&
|
|
149
|
+
isResourcePresent(out.node.content.elements())) {
|
|
150
|
+
|
|
151
|
+
mdp::ByteBuffer method, name, uriTemplate;
|
|
152
|
+
|
|
153
|
+
SectionProcessor<Action>::actionHTTPMethodAndName(node, method, name, uriTemplate);
|
|
154
|
+
mdp::CharactersRangeSet sourceMap = mdp::BytesRangeSetToCharactersRangeSet(node->sourceMap, pd.sourceCharacterIndex);
|
|
155
|
+
|
|
156
|
+
// WARN: Unexpected action
|
|
157
|
+
std::stringstream ss;
|
|
158
|
+
ss << "unexpected action '" << method << "', to define multiple actions for the '" << lastResource(out.node.content.elements()).uriTemplate;
|
|
159
|
+
ss << "' resource omit the HTTP method in its definition, e.g. '# /resource'";
|
|
160
|
+
|
|
161
|
+
out.report.warnings.push_back(Warning(ss.str(),
|
|
162
|
+
IgnoringWarning,
|
|
163
|
+
sourceMap));
|
|
164
|
+
|
|
165
|
+
return ++MarkdownNodeIterator(node);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
return SectionProcessorBase<ResourceGroup>::processUnexpectedNode(node, siblings, pd, lastSectionType, out);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
static void finalize(const MarkdownNodeIterator& node,
|
|
172
|
+
SectionParserData& pd,
|
|
173
|
+
const ParseResultRef<ResourceGroup>& out) {
|
|
174
|
+
|
|
175
|
+
out.node.element = Element::CategoryElement;
|
|
176
|
+
out.node.category = Element::ResourceGroupCategory;
|
|
177
|
+
|
|
178
|
+
if (pd.exportSourceMap()) {
|
|
179
|
+
|
|
180
|
+
out.sourceMap.element = out.node.element;
|
|
181
|
+
out.sourceMap.category = out.node.category;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
static SectionType sectionType(const MarkdownNodeIterator& node) {
|
|
186
|
+
|
|
187
|
+
if (node->type == mdp::HeaderMarkdownNodeType
|
|
188
|
+
&& !node->text.empty()) {
|
|
189
|
+
|
|
190
|
+
mdp::ByteBuffer subject = node->text;
|
|
191
|
+
TrimString(subject);
|
|
192
|
+
|
|
193
|
+
if (RegexMatch(subject, GroupHeaderRegex)) {
|
|
194
|
+
return ResourceGroupSectionType;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
return UndefinedSectionType;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
static SectionType nestedSectionType(const MarkdownNodeIterator& node) {
|
|
202
|
+
|
|
203
|
+
// Return ResourceSectionType or UndefinedSectionType
|
|
204
|
+
return SectionProcessor<Resource>::sectionType(node);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
static SectionTypes upperSectionTypes() {
|
|
208
|
+
return {ResourceGroupSectionType, DataStructureGroupSectionType};
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
static bool isDescriptionNode(const MarkdownNodeIterator& node,
|
|
212
|
+
SectionType sectionType) {
|
|
213
|
+
|
|
214
|
+
mdp::ByteBuffer method;
|
|
215
|
+
|
|
216
|
+
if (SectionProcessor<Action>::actionType(node) == CompleteActionType) {
|
|
217
|
+
return false;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
return SectionProcessorBase<ResourceGroup>::isDescriptionNode(node, sectionType);
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
static bool isUnexpectedNode(const MarkdownNodeIterator& node,
|
|
224
|
+
SectionType sectionType) {
|
|
225
|
+
|
|
226
|
+
if (SectionProcessor<Action>::actionType(node) == DependentActionType) {
|
|
227
|
+
return true;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
return SectionProcessorBase<ResourceGroup>::isUnexpectedNode(node, sectionType);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* \brief Given a blueprint, Check if a resource already exists with the given uri template
|
|
235
|
+
*
|
|
236
|
+
* \param blueprint The blueprint which is formed until now
|
|
237
|
+
* \param uri The resource uri template to be checked
|
|
238
|
+
*/
|
|
239
|
+
static bool isResourceDuplicate(const Blueprint& blueprint,
|
|
240
|
+
const URITemplate& uri) {
|
|
241
|
+
|
|
242
|
+
for (Elements::const_iterator it = blueprint.content.elements().begin();
|
|
243
|
+
it != blueprint.content.elements().end();
|
|
244
|
+
++it) {
|
|
245
|
+
|
|
246
|
+
if (it->element == Element::CategoryElement &&
|
|
247
|
+
SectionProcessor<Resource>::isResourceDuplicate(it->content.elements(), uri)) {
|
|
248
|
+
|
|
249
|
+
return true;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
return false;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
/**
|
|
257
|
+
* \brief Given list of elements, return true if none of them is a resource element
|
|
258
|
+
*
|
|
259
|
+
* \param elements Collection of elements
|
|
260
|
+
*/
|
|
261
|
+
static bool isResourcePresent(const Elements& elements) {
|
|
262
|
+
|
|
263
|
+
for (Elements::const_iterator it = elements.begin(); it != elements.end(); ++it) {
|
|
264
|
+
|
|
265
|
+
if (it->element == Element::ResourceElement) {
|
|
266
|
+
return false;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
return true;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
/**
|
|
274
|
+
* \brief Given list of elements, get the last resource
|
|
275
|
+
*
|
|
276
|
+
* \param elements Collection fo elements
|
|
277
|
+
*/
|
|
278
|
+
static Resource lastResource(const Elements& elements) {
|
|
279
|
+
|
|
280
|
+
Resource last;
|
|
281
|
+
|
|
282
|
+
for (Elements::const_iterator it = elements.begin(); it != elements.end(); ++it) {
|
|
283
|
+
|
|
284
|
+
if (it->element == Element::ResourceElement) {
|
|
285
|
+
last = it->content.resource;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
return last;
|
|
290
|
+
}
|
|
291
|
+
};
|
|
292
|
+
|
|
293
|
+
/** ResourceGroup Section Parser */
|
|
294
|
+
typedef SectionParser<ResourceGroup, HeaderSectionAdapter> ResourceGroupParser;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
#endif
|