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,214 @@
|
|
|
1
|
+
//
|
|
2
|
+
// refract/SerializeVisitor.cc
|
|
3
|
+
// librefract
|
|
4
|
+
//
|
|
5
|
+
// Created by Jiri Kratochvil on 18/05/15.
|
|
6
|
+
// Copyright (c) 2015 Apiary Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
#include "Element.h"
|
|
9
|
+
|
|
10
|
+
#include "SerializeCompactVisitor.h"
|
|
11
|
+
#include "SerializeVisitor.h"
|
|
12
|
+
#include "TypeQueryVisitor.h"
|
|
13
|
+
|
|
14
|
+
namespace refract
|
|
15
|
+
{
|
|
16
|
+
|
|
17
|
+
namespace
|
|
18
|
+
{
|
|
19
|
+
sos::Object SerializeElementCollection(const IElement::MemberElementCollection& collection, bool generateSourceMap)
|
|
20
|
+
{
|
|
21
|
+
typedef IElement::MemberElementCollection::const_iterator iterator;
|
|
22
|
+
|
|
23
|
+
sos::Object result;
|
|
24
|
+
|
|
25
|
+
for (iterator it = collection.begin(); it != collection.end(); ++it) {
|
|
26
|
+
|
|
27
|
+
if (!generateSourceMap) {
|
|
28
|
+
StringElement* str = TypeQueryVisitor::as<StringElement>((*it)->value.first);
|
|
29
|
+
if (str && str->value == "sourceMap"){
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
SosSerializeCompactVisitor s(generateSourceMap);
|
|
35
|
+
Visit(s, *(*it));
|
|
36
|
+
result.set(s.key(), s.value());
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return result;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
sos::Object ElementToObject(const IElement* e, bool generateSourceMap)
|
|
43
|
+
{
|
|
44
|
+
SosSerializeVisitor s(generateSourceMap);
|
|
45
|
+
Visit(s, *e);
|
|
46
|
+
return s.get();
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
template <typename T>
|
|
50
|
+
sos::Array SerializeValueList(const T& e, bool generateSourceMap) {
|
|
51
|
+
sos::Array array;
|
|
52
|
+
typedef typename T::ValueType::const_iterator iterator;
|
|
53
|
+
|
|
54
|
+
for (iterator it = e.value.begin(); it != e.value.end(); ++it) {
|
|
55
|
+
array.push(ElementToObject(*it, generateSourceMap));
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return array;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
IElement::renderFlags SelectSerializationType(const IElement& e, bool generateSourceMap) {
|
|
62
|
+
|
|
63
|
+
if (generateSourceMap) {
|
|
64
|
+
IElement::MemberElementCollection::const_iterator it = e.attributes.find("sourceMap");
|
|
65
|
+
// there is sourceMap in attributes
|
|
66
|
+
if (it != e.attributes.end()) {
|
|
67
|
+
return IElement::rFull;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
if (e.renderType() == IElement::rCompact || e.renderType() == IElement::rCompactContent) {
|
|
72
|
+
return IElement::rCompact;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
return IElement::rFull;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
} // end of anonymous namespace
|
|
79
|
+
|
|
80
|
+
void SosSerializeVisitor::operator()(const IElement& e)
|
|
81
|
+
{
|
|
82
|
+
result.set("element", sos::String(e.element()));
|
|
83
|
+
bool sourceMap = generateSourceMap;
|
|
84
|
+
|
|
85
|
+
sos::Object meta = SerializeElementCollection(e.meta, sourceMap);
|
|
86
|
+
if (!meta.empty()) {
|
|
87
|
+
result.set("meta", meta);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
if (e.element() == "annotation") {
|
|
91
|
+
sourceMap = true;
|
|
92
|
+
}
|
|
93
|
+
sos::Object attr = SerializeElementCollection(e.attributes, sourceMap);
|
|
94
|
+
if (!attr.empty()) {
|
|
95
|
+
result.set("attributes", attr);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
if (e.empty())
|
|
99
|
+
return;
|
|
100
|
+
|
|
101
|
+
const IElement::renderFlags render = SelectSerializationType(e, generateSourceMap);
|
|
102
|
+
|
|
103
|
+
if (render == IElement::rCompact) {
|
|
104
|
+
SosSerializeCompactVisitor s(generateSourceMap);
|
|
105
|
+
VisitBy(e, s);
|
|
106
|
+
result.set("content", s.value());
|
|
107
|
+
} else {
|
|
108
|
+
VisitBy(e, *this);
|
|
109
|
+
result.set("content", partial);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
void SosSerializeVisitor::SetSerializerValue(SosSerializeVisitor& s, sos::Base& value)
|
|
114
|
+
{
|
|
115
|
+
if (!s.key.empty()) {
|
|
116
|
+
s.result.set(s.key, value);
|
|
117
|
+
s.key.clear();
|
|
118
|
+
} else {
|
|
119
|
+
s.partial = value;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
void SosSerializeVisitor::operator()(const NullElement& e)
|
|
124
|
+
{
|
|
125
|
+
sos::Base value = sos::Null();
|
|
126
|
+
SetSerializerValue(*this, value);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
void SosSerializeVisitor::operator()(const StringElement& e)
|
|
130
|
+
{
|
|
131
|
+
sos::Base value = sos::Null();
|
|
132
|
+
|
|
133
|
+
if (!e.empty()) {
|
|
134
|
+
value = sos::String(e.value);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
SetSerializerValue(*this, value);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
void SosSerializeVisitor::operator()(const NumberElement& e)
|
|
141
|
+
{
|
|
142
|
+
sos::Base value = sos::Null();
|
|
143
|
+
|
|
144
|
+
if (!e.empty()) {
|
|
145
|
+
value = sos::Number(e.value);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
SetSerializerValue(*this, value);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
void SosSerializeVisitor::operator()(const BooleanElement& e)
|
|
152
|
+
{
|
|
153
|
+
sos::Base value = sos::Null();
|
|
154
|
+
|
|
155
|
+
if (!e.empty()) {
|
|
156
|
+
value = sos::Boolean(e.value);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
SetSerializerValue(*this, value);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
void SosSerializeVisitor::operator()(const MemberElement& e)
|
|
164
|
+
{
|
|
165
|
+
sos::Object object;
|
|
166
|
+
|
|
167
|
+
if (e.value.first) {
|
|
168
|
+
object.set("key", ElementToObject(e.value.first, generateSourceMap));
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
if (e.value.second) {
|
|
172
|
+
object.set("value", ElementToObject(e.value.second, generateSourceMap));
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
SetSerializerValue(*this, object);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
void SosSerializeVisitor::operator()(const ArrayElement& e)
|
|
179
|
+
{
|
|
180
|
+
sos::Array array = SerializeValueList(e, generateSourceMap);
|
|
181
|
+
SetSerializerValue(*this, array);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
void SosSerializeVisitor::operator()(const EnumElement& e)
|
|
185
|
+
{
|
|
186
|
+
sos::Array array = SerializeValueList(e, generateSourceMap);
|
|
187
|
+
SetSerializerValue(*this, array);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
void SosSerializeVisitor::operator()(const ObjectElement& e)
|
|
191
|
+
{
|
|
192
|
+
sos::Array array = SerializeValueList(e, generateSourceMap);
|
|
193
|
+
SetSerializerValue(*this, array);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
void SosSerializeVisitor::operator()(const ExtendElement& e)
|
|
197
|
+
{
|
|
198
|
+
sos::Array array = SerializeValueList(e, generateSourceMap);
|
|
199
|
+
SetSerializerValue(*this, array);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
void SosSerializeVisitor::operator()(const OptionElement& e)
|
|
203
|
+
{
|
|
204
|
+
sos::Array array = SerializeValueList(e, generateSourceMap);
|
|
205
|
+
SetSerializerValue(*this, array);
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
void SosSerializeVisitor::operator()(const SelectElement& e)
|
|
209
|
+
{
|
|
210
|
+
sos::Array array = SerializeValueList(e, generateSourceMap);
|
|
211
|
+
SetSerializerValue(*this, array);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
}; // namespace refract
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
//
|
|
2
|
+
// refract/SerializeVisitor.h
|
|
3
|
+
// librefract
|
|
4
|
+
//
|
|
5
|
+
// Created by Jiri Kratochvil on 21/05/15.
|
|
6
|
+
// Copyright (c) 2015 Apiary Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
#ifndef REFRACT_SERIALIZEVISITOR_H
|
|
9
|
+
#define REFRACT_SERIALIZEVISITOR_H
|
|
10
|
+
|
|
11
|
+
#include "sos.h"
|
|
12
|
+
#include <string>
|
|
13
|
+
|
|
14
|
+
#include "ElementFwd.h"
|
|
15
|
+
|
|
16
|
+
namespace refract
|
|
17
|
+
{
|
|
18
|
+
|
|
19
|
+
class SosSerializeVisitor
|
|
20
|
+
{
|
|
21
|
+
|
|
22
|
+
sos::Object result;
|
|
23
|
+
sos::Base partial;
|
|
24
|
+
std::string key;
|
|
25
|
+
bool generateSourceMap;
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
static void SetSerializerValue(SosSerializeVisitor& s, sos::Base& value);
|
|
29
|
+
|
|
30
|
+
public:
|
|
31
|
+
|
|
32
|
+
SosSerializeVisitor(bool generateSourceMap) : partial(sos::Null()), generateSourceMap(generateSourceMap) {}
|
|
33
|
+
|
|
34
|
+
void operator()(const IElement& e);
|
|
35
|
+
void operator()(const NullElement& e);
|
|
36
|
+
void operator()(const StringElement& e);
|
|
37
|
+
void operator()(const NumberElement& e);
|
|
38
|
+
void operator()(const BooleanElement& e);
|
|
39
|
+
void operator()(const ArrayElement& e);
|
|
40
|
+
void operator()(const EnumElement& e);
|
|
41
|
+
void operator()(const MemberElement& e);
|
|
42
|
+
void operator()(const ObjectElement& e);
|
|
43
|
+
void operator()(const ExtendElement& e);
|
|
44
|
+
void operator()(const SelectElement& e);
|
|
45
|
+
void operator()(const OptionElement& e);
|
|
46
|
+
|
|
47
|
+
sos::Object get()
|
|
48
|
+
{
|
|
49
|
+
return result;
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
}; // namespace refract
|
|
54
|
+
|
|
55
|
+
#endif // #ifndef REFRACT_SERIALIZEVISITOR_H
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
//
|
|
2
|
+
// refract/TypeQueryVisitor.cc
|
|
3
|
+
// librefract
|
|
4
|
+
//
|
|
5
|
+
// Created by Jiri Kratochvil on 17/06/15.
|
|
6
|
+
// Copyright (c) 2015 Apiary Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
#include "Element.h"
|
|
9
|
+
#include "TypeQueryVisitor.h"
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
#define VISIT_IMPL( ELEMENT ) void TypeQueryVisitor::operator()(const ELEMENT ## Element& e) { typeInfo = ELEMENT; }
|
|
13
|
+
|
|
14
|
+
namespace refract
|
|
15
|
+
{
|
|
16
|
+
TypeQueryVisitor::TypeQueryVisitor() : typeInfo(Unknown)
|
|
17
|
+
{
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
void TypeQueryVisitor::operator()(const IElement& e)
|
|
21
|
+
{
|
|
22
|
+
TypeQueryVisitor query;
|
|
23
|
+
VisitBy(e, query);
|
|
24
|
+
typeInfo = query.get();
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
VISIT_IMPL(Null)
|
|
29
|
+
VISIT_IMPL(String)
|
|
30
|
+
VISIT_IMPL(Number)
|
|
31
|
+
VISIT_IMPL(Boolean)
|
|
32
|
+
VISIT_IMPL(Array)
|
|
33
|
+
VISIT_IMPL(Enum)
|
|
34
|
+
VISIT_IMPL(Member)
|
|
35
|
+
VISIT_IMPL(Object)
|
|
36
|
+
VISIT_IMPL(Extend)
|
|
37
|
+
VISIT_IMPL(Option)
|
|
38
|
+
VISIT_IMPL(Select)
|
|
39
|
+
|
|
40
|
+
TypeQueryVisitor::ElementType TypeQueryVisitor::get() const {
|
|
41
|
+
return typeInfo;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
}; // namespace refract
|
|
45
|
+
|
|
46
|
+
#undef VISIT_IMPL
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
//
|
|
2
|
+
// refract/TypeQueryVisitor.h
|
|
3
|
+
// librefract
|
|
4
|
+
//
|
|
5
|
+
// Created by Jiri Kratochvil on 17/06/15.
|
|
6
|
+
// Copyright (c) 2015 Apiary Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
#ifndef REFRACT_TYPEQUERYVISITOR_H
|
|
9
|
+
#define REFRACT_TYPEQUERYVISITOR_H
|
|
10
|
+
|
|
11
|
+
#include "ElementFwd.h"
|
|
12
|
+
#include "Visitor.h"
|
|
13
|
+
|
|
14
|
+
namespace refract
|
|
15
|
+
{
|
|
16
|
+
|
|
17
|
+
class TypeQueryVisitor
|
|
18
|
+
{
|
|
19
|
+
|
|
20
|
+
public:
|
|
21
|
+
typedef enum
|
|
22
|
+
{
|
|
23
|
+
Null,
|
|
24
|
+
|
|
25
|
+
String,
|
|
26
|
+
Number,
|
|
27
|
+
Boolean,
|
|
28
|
+
|
|
29
|
+
Array,
|
|
30
|
+
Member,
|
|
31
|
+
Object,
|
|
32
|
+
Enum,
|
|
33
|
+
|
|
34
|
+
Extend,
|
|
35
|
+
|
|
36
|
+
Option,
|
|
37
|
+
Select,
|
|
38
|
+
|
|
39
|
+
Unknown = 0,
|
|
40
|
+
} ElementType;
|
|
41
|
+
|
|
42
|
+
private:
|
|
43
|
+
ElementType typeInfo;
|
|
44
|
+
|
|
45
|
+
public:
|
|
46
|
+
|
|
47
|
+
TypeQueryVisitor();
|
|
48
|
+
|
|
49
|
+
void operator()(const IElement& e);
|
|
50
|
+
void operator()(const NullElement& e);
|
|
51
|
+
void operator()(const StringElement& e);
|
|
52
|
+
void operator()(const NumberElement& e);
|
|
53
|
+
void operator()(const BooleanElement& e);
|
|
54
|
+
void operator()(const ArrayElement& e);
|
|
55
|
+
void operator()(const MemberElement& e);
|
|
56
|
+
void operator()(const ObjectElement& e);
|
|
57
|
+
void operator()(const EnumElement& e);
|
|
58
|
+
void operator()(const ExtendElement& e);
|
|
59
|
+
void operator()(const OptionElement& e);
|
|
60
|
+
void operator()(const SelectElement& e);
|
|
61
|
+
|
|
62
|
+
ElementType get() const;
|
|
63
|
+
|
|
64
|
+
template<typename E>
|
|
65
|
+
static E* as(IElement* e)
|
|
66
|
+
{
|
|
67
|
+
if (!e) {
|
|
68
|
+
return static_cast<E*>(e);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
TypeQueryVisitor tq;
|
|
72
|
+
Visit(tq, *e);
|
|
73
|
+
|
|
74
|
+
E type;
|
|
75
|
+
TypeQueryVisitor eq;
|
|
76
|
+
VisitBy(type, eq);
|
|
77
|
+
|
|
78
|
+
if (eq.typeInfo != tq.typeInfo) {
|
|
79
|
+
return 0;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return static_cast<E*>(e);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
template<typename E>
|
|
86
|
+
static const E* as(const IElement* e)
|
|
87
|
+
{
|
|
88
|
+
if (!e) {
|
|
89
|
+
return static_cast<const E*>(e);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
TypeQueryVisitor tq;
|
|
93
|
+
Visit(tq, *e);
|
|
94
|
+
|
|
95
|
+
E type;
|
|
96
|
+
TypeQueryVisitor eq;
|
|
97
|
+
VisitBy(type, eq);
|
|
98
|
+
|
|
99
|
+
if (eq.typeInfo != tq.typeInfo) {
|
|
100
|
+
return 0;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
return static_cast<const E*>(e);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
}; // namespace refract
|
|
109
|
+
|
|
110
|
+
#endif // #ifndef REFRACT_TYPEQUERYVISITOR_H
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
//
|
|
2
|
+
// refract/Visitor.h
|
|
3
|
+
// librefract
|
|
4
|
+
//
|
|
5
|
+
// Created by Jiri Kratochvil on 17/06/15.
|
|
6
|
+
// Copyright (c) 2015 Apiary Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
#ifndef REFRACT_VISITOR_H
|
|
9
|
+
#define REFRACT_VISITOR_H
|
|
10
|
+
|
|
11
|
+
#include "ElementFwd.h"
|
|
12
|
+
|
|
13
|
+
namespace refract
|
|
14
|
+
{
|
|
15
|
+
|
|
16
|
+
struct IApply {
|
|
17
|
+
virtual void visit(const IElement& e) = 0;
|
|
18
|
+
|
|
19
|
+
virtual void visit(const NullElement& e) = 0;
|
|
20
|
+
virtual void visit(const StringElement& e) = 0;
|
|
21
|
+
virtual void visit(const NumberElement& e) = 0;
|
|
22
|
+
virtual void visit(const BooleanElement& e) = 0;
|
|
23
|
+
virtual void visit(const ArrayElement& e) = 0;
|
|
24
|
+
virtual void visit(const EnumElement& e) = 0;
|
|
25
|
+
virtual void visit(const MemberElement& e) = 0;
|
|
26
|
+
virtual void visit(const ObjectElement& e) = 0;
|
|
27
|
+
virtual void visit(const ExtendElement& e) = 0;
|
|
28
|
+
virtual void visit(const OptionElement& e) = 0;
|
|
29
|
+
virtual void visit(const SelectElement& e) = 0;
|
|
30
|
+
|
|
31
|
+
virtual ~IApply() {}
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
template <typename Impl>
|
|
35
|
+
struct ApplyImpl : public IApply {
|
|
36
|
+
|
|
37
|
+
Impl& impl;
|
|
38
|
+
ApplyImpl(Impl& impl) : impl(impl) {}
|
|
39
|
+
|
|
40
|
+
virtual void visit(const IElement& e) {
|
|
41
|
+
impl(e);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
virtual void visit(const NullElement& e) {
|
|
45
|
+
impl(e);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
virtual void visit(const StringElement& e) {
|
|
49
|
+
impl(e);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
virtual void visit(const NumberElement& e) {
|
|
53
|
+
impl(e);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
virtual void visit(const BooleanElement& e) {
|
|
57
|
+
impl(e);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
virtual void visit(const ArrayElement& e) {
|
|
61
|
+
impl(e);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
virtual void visit(const EnumElement& e) {
|
|
65
|
+
impl(e);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
virtual void visit(const MemberElement& e) {
|
|
69
|
+
impl(e);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
virtual void visit(const ObjectElement& e) {
|
|
73
|
+
impl(e);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
virtual void visit(const ExtendElement& e) {
|
|
77
|
+
impl(e);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
virtual void visit(const OptionElement& e) {
|
|
81
|
+
impl(e);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
virtual void visit(const SelectElement& e) {
|
|
85
|
+
impl(e);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
virtual ~ApplyImpl() {}
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
class Visitor {
|
|
92
|
+
|
|
93
|
+
private:
|
|
94
|
+
|
|
95
|
+
IApply* apply;
|
|
96
|
+
|
|
97
|
+
public:
|
|
98
|
+
|
|
99
|
+
template <typename Functor>
|
|
100
|
+
Visitor(Functor& functor) : apply(new ApplyImpl<Functor>(functor)) {}
|
|
101
|
+
virtual ~Visitor() {
|
|
102
|
+
delete apply;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
template<typename T>
|
|
106
|
+
void visit(const T& e) {
|
|
107
|
+
apply->visit(e);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
template <typename Element, typename Functor>
|
|
113
|
+
void Visit(Functor& functor, const Element& element) {
|
|
114
|
+
Visitor visitor(functor);
|
|
115
|
+
visitor.visit(element);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
template <typename Element, typename Functor>
|
|
119
|
+
void VisitBy(const Element& element, Functor& functor) {
|
|
120
|
+
Visitor visitor(functor);
|
|
121
|
+
element.content(visitor);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
}; // namespace refract
|
|
125
|
+
|
|
126
|
+
#endif // #ifndef REFRACT_VISITOR_H
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
//
|
|
2
|
+
// refract/VisitorUtils.cc
|
|
3
|
+
// librefract
|
|
4
|
+
//
|
|
5
|
+
// Created by Vilibald Wanča on 09/11/15.
|
|
6
|
+
// Copyright (c) 2015 Apiary Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
#include "Element.h"
|
|
9
|
+
#include "VisitorUtils.h"
|
|
10
|
+
|
|
11
|
+
namespace refract
|
|
12
|
+
{
|
|
13
|
+
|
|
14
|
+
StringElement* GetDescription(const IElement& e)
|
|
15
|
+
{
|
|
16
|
+
IElement::MemberElementCollection::const_iterator i = e.meta.find("description");
|
|
17
|
+
|
|
18
|
+
if (i == e.meta.end()) {
|
|
19
|
+
return NULL;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
return TypeQueryVisitor::as<StringElement>((*i)->value.second);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
void SetRenderFlag(RefractElements& elements, const IElement::renderFlags flag) {
|
|
26
|
+
std::for_each(elements.begin(), elements.end(),
|
|
27
|
+
std::bind(static_cast<void (refract::IElement::*)(const refract::IElement::renderFlags)>(&refract::IElement::renderType), std::placeholders::_1, flag));
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
std::string GetKeyAsString(const MemberElement& e)
|
|
31
|
+
{
|
|
32
|
+
|
|
33
|
+
IElement* element = e.value.first;
|
|
34
|
+
|
|
35
|
+
if (StringElement* str = TypeQueryVisitor::as<StringElement>(element)) {
|
|
36
|
+
return str->value;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
if (ExtendElement* ext = TypeQueryVisitor::as<ExtendElement>(element)) {
|
|
40
|
+
IElement* merged = ext->merge();
|
|
41
|
+
|
|
42
|
+
if (StringElement* str = TypeQueryVisitor::as<StringElement>(merged)) {
|
|
43
|
+
|
|
44
|
+
std::string key = str->value;
|
|
45
|
+
if (key.empty()) {
|
|
46
|
+
const std::string* k = GetValue<StringElement>(*str);
|
|
47
|
+
if (k) {
|
|
48
|
+
key = *k;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
delete merged;
|
|
52
|
+
|
|
53
|
+
return key;
|
|
54
|
+
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
delete merged;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return std::string();
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
}
|