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,255 @@
|
|
|
1
|
+
//
|
|
2
|
+
// refract/RenderJSONVisitor.cc
|
|
3
|
+
// librefract
|
|
4
|
+
//
|
|
5
|
+
// Created by Pavan Kumar Sunkara on 17/06/15.
|
|
6
|
+
// Copyright (c) 2015 Apiary Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
#include "VisitorUtils.h"
|
|
10
|
+
#include "sosJSON.h"
|
|
11
|
+
#include <sstream>
|
|
12
|
+
#include "SerializeCompactVisitor.h"
|
|
13
|
+
|
|
14
|
+
#include "RenderJSONVisitor.h"
|
|
15
|
+
|
|
16
|
+
namespace refract
|
|
17
|
+
{
|
|
18
|
+
|
|
19
|
+
namespace {
|
|
20
|
+
|
|
21
|
+
IElement* getEnumValue(const ExtendElement& extend)
|
|
22
|
+
{
|
|
23
|
+
if (extend.empty()) {
|
|
24
|
+
return NULL;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
for (ExtendElement::ValueType::const_reverse_iterator it = extend.value.rbegin();
|
|
28
|
+
it != extend.value.rend();
|
|
29
|
+
++it) {
|
|
30
|
+
|
|
31
|
+
const EnumElement* element = TypeQueryVisitor::as<EnumElement>(*it);
|
|
32
|
+
|
|
33
|
+
if (!element) {
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const ArrayElement::ValueType* items = GetValue<EnumElement>(*element);
|
|
38
|
+
|
|
39
|
+
if (!items->empty()) {
|
|
40
|
+
return *items->begin();
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return NULL;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
template <typename T>
|
|
48
|
+
void FetchMembers(const T& element, typename T::ValueType& members)
|
|
49
|
+
{
|
|
50
|
+
const typename T::ValueType* val = GetValue<T>(element);
|
|
51
|
+
|
|
52
|
+
if (!val) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
for (typename T::ValueType::const_iterator it = val->begin();
|
|
57
|
+
it != val->end();
|
|
58
|
+
++it) {
|
|
59
|
+
|
|
60
|
+
if (!(*it) || (*it)->empty()) {
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if ((*it)->element() == "ref") {
|
|
65
|
+
HandleRefWhenFetchingMembers<T>(*it, members, FetchMembers<T>);
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
else if (SelectElement* select = TypeQueryVisitor::as<SelectElement>(*it)) {
|
|
69
|
+
if (select->value.empty() || !(*select->value.begin())) {
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
FetchMembers(*(*select->value.begin()), members);
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
RenderJSONVisitor renderer;
|
|
78
|
+
Visit(renderer, *(*it));
|
|
79
|
+
IElement* e = renderer.getOwnership();
|
|
80
|
+
|
|
81
|
+
if (!e) {
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
e->renderType(IElement::rCompact);
|
|
86
|
+
members.push_back(e);
|
|
87
|
+
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
RenderJSONVisitor::RenderJSONVisitor() : result(NULL), enumValue(NULL) {}
|
|
94
|
+
|
|
95
|
+
RenderJSONVisitor::~RenderJSONVisitor() {
|
|
96
|
+
if (result) {
|
|
97
|
+
delete result;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
if (enumValue) {
|
|
101
|
+
delete enumValue;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
void RenderJSONVisitor::operator()(const IElement& e) {
|
|
106
|
+
VisitBy(e, *this);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
void RenderJSONVisitor::operator()(const MemberElement& e) {
|
|
110
|
+
|
|
111
|
+
std::string key = GetKeyAsString(e);
|
|
112
|
+
|
|
113
|
+
if (key.empty()) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
RenderJSONVisitor renderer;
|
|
118
|
+
|
|
119
|
+
if (e.value.second) {
|
|
120
|
+
if (IsTypeAttribute(e, "nullable") && e.value.second->empty()) {
|
|
121
|
+
renderer.result = new NullElement;
|
|
122
|
+
}
|
|
123
|
+
else if (IsTypeAttribute(e, "optional") && e.value.second->empty()) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
Visit(renderer, *e.value.second);
|
|
128
|
+
if (!renderer.result) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
result = new MemberElement(key,
|
|
135
|
+
renderer.result ? renderer.getOwnership() : new StringElement,
|
|
136
|
+
IElement::rCompact);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
void RenderJSONVisitor::operator()(const ObjectElement& e) {
|
|
140
|
+
ObjectElement::ValueType members;
|
|
141
|
+
FetchMembers(e, members);
|
|
142
|
+
ObjectElement* o = new ObjectElement;
|
|
143
|
+
o->set(members);
|
|
144
|
+
o->renderType(IElement::rCompact);
|
|
145
|
+
result = o;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
void RenderJSONVisitor::operator()(const EnumElement& e) {
|
|
149
|
+
|
|
150
|
+
if (!enumValue) { // there is no enumValue injected from ExtendElement,try to pick value directly
|
|
151
|
+
|
|
152
|
+
const EnumElement::ValueType* val = GetEnumValue(e);
|
|
153
|
+
if (val && !val->empty()) {
|
|
154
|
+
enumValue = val->front()->clone();
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
enumValue = new StringElement;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
RenderJSONVisitor renderer;
|
|
162
|
+
VisitBy(*enumValue, renderer);
|
|
163
|
+
result = renderer.getOwnership();
|
|
164
|
+
|
|
165
|
+
delete enumValue;
|
|
166
|
+
enumValue = NULL;
|
|
167
|
+
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
void RenderJSONVisitor::operator()(const ArrayElement& e) {
|
|
171
|
+
ArrayElement::ValueType members;
|
|
172
|
+
FetchMembers(e, members);
|
|
173
|
+
ArrayElement* a = new ArrayElement;
|
|
174
|
+
a->set(members);
|
|
175
|
+
a->renderType(IElement::rCompact);
|
|
176
|
+
result = a;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
void RenderJSONVisitor::operator()(const NullElement& e) {
|
|
180
|
+
result = new NullElement;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
template <typename T>
|
|
184
|
+
IElement* getResult(const T& e)
|
|
185
|
+
{
|
|
186
|
+
const typename T::ValueType* v = GetValue<T>(e);
|
|
187
|
+
|
|
188
|
+
if (!v) {
|
|
189
|
+
return NULL;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
T* result = IElement::Create(*v);
|
|
193
|
+
result->renderType(IElement::rCompact);
|
|
194
|
+
|
|
195
|
+
return result;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
void RenderJSONVisitor::operator()(const StringElement& e) {
|
|
199
|
+
result = getResult(e);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
void RenderJSONVisitor::operator()(const NumberElement& e) {
|
|
203
|
+
result = getResult(e);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
void RenderJSONVisitor::operator()(const BooleanElement& e) {
|
|
207
|
+
result = getResult(e);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
void RenderJSONVisitor::operator()(const ExtendElement& e) {
|
|
211
|
+
|
|
212
|
+
RenderJSONVisitor renderer;
|
|
213
|
+
IElement* merged = e.merge();
|
|
214
|
+
|
|
215
|
+
if (!merged) {
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
if (TypeQueryVisitor::as<EnumElement>(merged)) {
|
|
220
|
+
renderer.enumValue = getEnumValue(e);
|
|
221
|
+
if (renderer.enumValue) {
|
|
222
|
+
renderer.enumValue = renderer.enumValue->clone();
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
Visit(renderer, *merged);
|
|
227
|
+
result = renderer.getOwnership();
|
|
228
|
+
|
|
229
|
+
delete merged;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
IElement* RenderJSONVisitor::getOwnership() {
|
|
233
|
+
IElement* ret = result;
|
|
234
|
+
result = NULL;
|
|
235
|
+
return ret;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
std::string RenderJSONVisitor::getString() const {
|
|
239
|
+
std::string out;
|
|
240
|
+
|
|
241
|
+
if (result) {
|
|
242
|
+
sos::SerializeJSON serializer;
|
|
243
|
+
std::stringstream ss;
|
|
244
|
+
|
|
245
|
+
// FIXME: remove SosSerializeCompactVisitor dependency
|
|
246
|
+
SosSerializeCompactVisitor s;
|
|
247
|
+
VisitBy(*result, s);
|
|
248
|
+
serializer.process(s.value(), ss);
|
|
249
|
+
|
|
250
|
+
return ss.str();
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
return out;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
//
|
|
2
|
+
// refract/RenderJSONVisitor.h
|
|
3
|
+
// librefract
|
|
4
|
+
//
|
|
5
|
+
// Created by Pavan Kumar Sunkara on 17/06/15.
|
|
6
|
+
// Copyright (c) 2015 Apiary Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
#ifndef REFRACT_RENDERJSONVISITOR_H
|
|
10
|
+
#define REFRACT_RENDERJSONVISITOR_H
|
|
11
|
+
|
|
12
|
+
#include "sos.h"
|
|
13
|
+
#include <string>
|
|
14
|
+
|
|
15
|
+
#include "ElementFwd.h"
|
|
16
|
+
|
|
17
|
+
namespace refract
|
|
18
|
+
{
|
|
19
|
+
|
|
20
|
+
class RenderJSONVisitor
|
|
21
|
+
{
|
|
22
|
+
IElement* result;
|
|
23
|
+
IElement* enumValue;
|
|
24
|
+
public:
|
|
25
|
+
|
|
26
|
+
RenderJSONVisitor();
|
|
27
|
+
virtual ~RenderJSONVisitor();
|
|
28
|
+
|
|
29
|
+
void operator()(const IElement& e);
|
|
30
|
+
void operator()(const MemberElement& e);
|
|
31
|
+
void operator()(const ObjectElement& e);
|
|
32
|
+
void operator()(const ArrayElement& e);
|
|
33
|
+
void operator()(const EnumElement& e);
|
|
34
|
+
|
|
35
|
+
void operator()(const NullElement& e);
|
|
36
|
+
void operator()(const StringElement& e);
|
|
37
|
+
void operator()(const NumberElement& e);
|
|
38
|
+
void operator()(const BooleanElement& e);
|
|
39
|
+
void operator()(const ExtendElement& e);
|
|
40
|
+
|
|
41
|
+
// FIXME: throwning - not implemented
|
|
42
|
+
// need to resolve in ApplyVisitor
|
|
43
|
+
//void operator()(const OptionElement& e);
|
|
44
|
+
//void operator()(const SelectElement& e);
|
|
45
|
+
|
|
46
|
+
std::string getString() const;
|
|
47
|
+
IElement* getOwnership();
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
#endif
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
//
|
|
2
|
+
// refract/SerializeCompactVisitor.cc
|
|
3
|
+
// librefract
|
|
4
|
+
//
|
|
5
|
+
// Created by Jiri Kratochvil on 21/05/15.
|
|
6
|
+
// Copyright (c) 2015 Apiary Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
#include "Element.h"
|
|
9
|
+
|
|
10
|
+
#include "SerializeVisitor.h"
|
|
11
|
+
#include "SerializeCompactVisitor.h"
|
|
12
|
+
|
|
13
|
+
namespace refract
|
|
14
|
+
{
|
|
15
|
+
|
|
16
|
+
struct IsFullRender {
|
|
17
|
+
typedef const IElement* first_argument_type;
|
|
18
|
+
typedef const bool second_argument_type;
|
|
19
|
+
typedef const bool result_type;
|
|
20
|
+
|
|
21
|
+
bool operator()(const IElement* element, const bool generateSourceMap) const {
|
|
22
|
+
|
|
23
|
+
if (generateSourceMap) {
|
|
24
|
+
IElement::MemberElementCollection::const_iterator it = element->attributes.find("sourceMap");
|
|
25
|
+
// there is sourceMap in attributes
|
|
26
|
+
if (it != element->attributes.end()) {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
return element && (element->renderType() == IElement::rFull || element->renderType() == IElement::rCompactContent);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
void SosSerializeCompactVisitor::operator()(const IElement& e)
|
|
36
|
+
{
|
|
37
|
+
throw NotImplemented("NI: IElement Compact Serialization");
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
void SosSerializeCompactVisitor::operator()(const NullElement& e)
|
|
41
|
+
{
|
|
42
|
+
value_ = sos::Null();
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
void SosSerializeCompactVisitor::operator()(const StringElement& e)
|
|
46
|
+
{
|
|
47
|
+
value_ = sos::String(e.value);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
void SosSerializeCompactVisitor::operator()(const NumberElement& e)
|
|
51
|
+
{
|
|
52
|
+
value_ = sos::Number(e.value);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
void SosSerializeCompactVisitor::operator()(const BooleanElement& e)
|
|
56
|
+
{
|
|
57
|
+
value_ = sos::Boolean(e.value);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
namespace {
|
|
61
|
+
|
|
62
|
+
template <typename Values>
|
|
63
|
+
void SerializeValues(sos::Array& array, const Values& values, bool generateSourceMap)
|
|
64
|
+
{
|
|
65
|
+
|
|
66
|
+
for (typename Values::const_iterator it = values.begin(); it != values.end(); ++it) {
|
|
67
|
+
if (IsFullRender()((*it), generateSourceMap)) {
|
|
68
|
+
SosSerializeVisitor s(generateSourceMap);
|
|
69
|
+
Visit(s, *(*it));
|
|
70
|
+
array.push(s.get());
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
SosSerializeCompactVisitor s(generateSourceMap);
|
|
74
|
+
VisitBy(*(*it), s);
|
|
75
|
+
array.push(s.value());
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
void SosSerializeCompactVisitor::operator()(const EnumElement& e)
|
|
82
|
+
{
|
|
83
|
+
sos::Array array;
|
|
84
|
+
SerializeValues(array, e.value, generateSourceMap);
|
|
85
|
+
value_ = array;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
void SosSerializeCompactVisitor::operator()(const ArrayElement& e)
|
|
89
|
+
{
|
|
90
|
+
sos::Array array;
|
|
91
|
+
SerializeValues(array, e.value, generateSourceMap);
|
|
92
|
+
value_ = array;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
void SosSerializeCompactVisitor::operator()(const MemberElement& e)
|
|
96
|
+
{
|
|
97
|
+
if (e.value.first) {
|
|
98
|
+
SosSerializeCompactVisitor s(generateSourceMap);
|
|
99
|
+
VisitBy(*e.value.first, s);
|
|
100
|
+
key_ = s.value().str;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
if (e.value.second) {
|
|
104
|
+
if (!IsFullRender()(e.value.second, generateSourceMap)) {
|
|
105
|
+
VisitBy(*e.value.second, *this);
|
|
106
|
+
}
|
|
107
|
+
else { // value has request to be serialized in Expanded form
|
|
108
|
+
SosSerializeVisitor s(generateSourceMap);
|
|
109
|
+
Visit(s, *e.value.second);
|
|
110
|
+
value_ = s.get();
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
void SosSerializeCompactVisitor::operator()(const ObjectElement& e)
|
|
116
|
+
{
|
|
117
|
+
|
|
118
|
+
typedef ObjectElement::ValueType::const_iterator iterator;
|
|
119
|
+
iterator it = find_if(e.value.begin(), e.value.end(), std::bind(IsFullRender(), std::placeholders::_1, generateSourceMap));
|
|
120
|
+
|
|
121
|
+
// if there is ANY element required to be serialized in Full
|
|
122
|
+
// we must use array to serialize
|
|
123
|
+
if (it != e.value.end()) {
|
|
124
|
+
sos::Array arr;
|
|
125
|
+
|
|
126
|
+
for (iterator it = e.value.begin(); it != e.value.end(); ++it) {
|
|
127
|
+
SosSerializeVisitor s(generateSourceMap);
|
|
128
|
+
Visit(s, *(*it));
|
|
129
|
+
arr.push(s.get());
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
value_ = arr;
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
sos::Object obj;
|
|
136
|
+
|
|
137
|
+
for (iterator it = e.value.begin(); it != e.value.end(); ++it) {
|
|
138
|
+
SosSerializeCompactVisitor sv(generateSourceMap);
|
|
139
|
+
VisitBy(*(*it), sv);
|
|
140
|
+
obj.set(sv.key(), sv.value());
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
value_ = obj;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
void SosSerializeCompactVisitor::operator()(const ExtendElement& e)
|
|
148
|
+
{
|
|
149
|
+
throw NotImplemented("ExtendElement serialization Not Implemented");
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
void SosSerializeCompactVisitor::operator()(const OptionElement& e)
|
|
153
|
+
{
|
|
154
|
+
sos::Array array;
|
|
155
|
+
SerializeValues(array, e.value, generateSourceMap);
|
|
156
|
+
value_ = array;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
void SosSerializeCompactVisitor::operator()(const SelectElement& e)
|
|
160
|
+
{
|
|
161
|
+
sos::Array array;
|
|
162
|
+
SerializeValues(array, e.value, generateSourceMap);
|
|
163
|
+
value_ = array;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
}; // namespace refract
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
//
|
|
2
|
+
// refract/SerializeCompactVisitor.h
|
|
3
|
+
// librefract
|
|
4
|
+
//
|
|
5
|
+
// Created by Jiri Kratochvil on 21/05/15.
|
|
6
|
+
// Copyright (c) 2015 Apiary Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
#ifndef REFRACT_SERIALIZECOMPACTVISITOR_H
|
|
9
|
+
#define REFRACT_SERIALIZECOMPACTVISITOR_H
|
|
10
|
+
|
|
11
|
+
#include "sos.h"
|
|
12
|
+
#include <string>
|
|
13
|
+
|
|
14
|
+
#include "ElementFwd.h"
|
|
15
|
+
|
|
16
|
+
namespace refract
|
|
17
|
+
{
|
|
18
|
+
|
|
19
|
+
class SosSerializeCompactVisitor
|
|
20
|
+
{
|
|
21
|
+
std::string key_;
|
|
22
|
+
sos::Base value_;
|
|
23
|
+
bool generateSourceMap;
|
|
24
|
+
|
|
25
|
+
public:
|
|
26
|
+
SosSerializeCompactVisitor() : generateSourceMap(true) {}
|
|
27
|
+
SosSerializeCompactVisitor(bool generateSourceMap) : generateSourceMap(generateSourceMap) {}
|
|
28
|
+
|
|
29
|
+
void operator()(const IElement& e);
|
|
30
|
+
void operator()(const NullElement& e);
|
|
31
|
+
void operator()(const StringElement& e);
|
|
32
|
+
void operator()(const NumberElement& e);
|
|
33
|
+
void operator()(const BooleanElement& e);
|
|
34
|
+
void operator()(const ArrayElement& e);
|
|
35
|
+
void operator()(const EnumElement& e);
|
|
36
|
+
void operator()(const MemberElement& e);
|
|
37
|
+
void operator()(const ObjectElement& e);
|
|
38
|
+
void operator()(const ExtendElement& e);
|
|
39
|
+
void operator()(const SelectElement& e);
|
|
40
|
+
void operator()(const OptionElement& e);
|
|
41
|
+
|
|
42
|
+
std::string key()
|
|
43
|
+
{
|
|
44
|
+
return key_;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
sos::Base value()
|
|
48
|
+
{
|
|
49
|
+
return value_;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
}; // namespace refract
|
|
55
|
+
|
|
56
|
+
#endif // #ifndef REFRACT_SERIALIZECOMPACTVISITOR_H
|