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,139 @@
|
|
|
1
|
+
@echo off
|
|
2
|
+
|
|
3
|
+
@rem Attribution Notice
|
|
4
|
+
@rem ------------------
|
|
5
|
+
@rem This file uses parts of Node.js `vcbuild.bat`.
|
|
6
|
+
@rem Please refer to https://github.com/joyent/node.
|
|
7
|
+
|
|
8
|
+
cd %~dp0
|
|
9
|
+
|
|
10
|
+
if /i "%1"=="help" goto help
|
|
11
|
+
if /i "%1"=="--help" goto help
|
|
12
|
+
if /i "%1"=="-help" goto help
|
|
13
|
+
if /i "%1"=="/help" goto help
|
|
14
|
+
if /i "%1"=="?" goto help
|
|
15
|
+
if /i "%1"=="-?" goto help
|
|
16
|
+
if /i "%1"=="--?" goto help
|
|
17
|
+
if /i "%1"=="/?" goto help
|
|
18
|
+
|
|
19
|
+
@rem Process arguments.
|
|
20
|
+
set config=Release
|
|
21
|
+
set target=Build
|
|
22
|
+
set target_arch=ia32
|
|
23
|
+
set noprojgen=
|
|
24
|
+
set nobuild=
|
|
25
|
+
set test=
|
|
26
|
+
|
|
27
|
+
:next-arg
|
|
28
|
+
if "%1"=="" goto args-done
|
|
29
|
+
if /i "%1"=="debug" set config=Debug&goto arg-ok
|
|
30
|
+
if /i "%1"=="release" set config=Release&goto arg-ok
|
|
31
|
+
if /i "%1"=="clean" set target=Clean&goto arg-ok
|
|
32
|
+
if /i "%1"=="ia32" set target_arch=ia32&goto arg-ok
|
|
33
|
+
if /i "%1"=="x86" set target_arch=ia32&goto arg-ok
|
|
34
|
+
if /i "%1"=="x64" set target_arch=x64&goto arg-ok
|
|
35
|
+
if /i "%1"=="noprojgen" set noprojgen=1&goto arg-ok
|
|
36
|
+
if /i "%1"=="nobuild" set nobuild=1&goto arg-ok
|
|
37
|
+
if /i "%1"=="test" set test=test&goto arg-ok
|
|
38
|
+
if /i "%1"=="MSVC2013" set GYP_MSVS_VERSION=2013&goto arg-ok
|
|
39
|
+
if /i "%1"=="MSVC2012" set GYP_MSVS_VERSION=2012&goto arg-ok
|
|
40
|
+
if /i "%1"=="MSVC2010" set GYP_MSVS_VERSION=2010&goto arg-ok
|
|
41
|
+
if /i "%1"=="MSVC2008" set GYP_MSVS_VERSION=2008&goto arg-ok
|
|
42
|
+
|
|
43
|
+
echo Warning: ignoring invalid command line option `%1`.
|
|
44
|
+
|
|
45
|
+
:arg-ok
|
|
46
|
+
shift
|
|
47
|
+
goto next-arg
|
|
48
|
+
|
|
49
|
+
:args-done
|
|
50
|
+
if "%config%"=="Debug" set debug_arg=--debug
|
|
51
|
+
|
|
52
|
+
:project-gen
|
|
53
|
+
@rem Skip project generation if requested.
|
|
54
|
+
if defined noprojgen goto msbuild
|
|
55
|
+
if "%GYP_MSVS_VERSION%"=="" set GYP_MSVS_VERSION=2012
|
|
56
|
+
|
|
57
|
+
@rem Generate the VS project.
|
|
58
|
+
SETLOCAL
|
|
59
|
+
if defined VS120COMNTOOLS call "%VS120COMNTOOLS%\VCVarsQueryRegistry.bat"
|
|
60
|
+
if not defined inttest python configure %debug_arg% --dest-cpu=%target_arch%
|
|
61
|
+
if errorlevel 1 goto create-msvs-files-failed
|
|
62
|
+
if not exist build/snowcrash.sln goto create-msvs-files-failed
|
|
63
|
+
echo Project files generated.
|
|
64
|
+
ENDLOCAL
|
|
65
|
+
|
|
66
|
+
@rem Skip to the end for now
|
|
67
|
+
@rem goto exit
|
|
68
|
+
|
|
69
|
+
:msbuild
|
|
70
|
+
@rem Skip project generation if requested.
|
|
71
|
+
if defined nobuild goto exit
|
|
72
|
+
if "%GYP_MSVS_VERSION%"=="2012" goto vc-set-2012
|
|
73
|
+
if "%GYP_MSVS_VERSION%"=="2010" goto vc-set-2010
|
|
74
|
+
if "%GYP_MSVS_VERSION%"=="2008" goto vc-set-2008
|
|
75
|
+
|
|
76
|
+
@rem Look for Visual Studio 2013
|
|
77
|
+
if not defined VS120COMNTOOLS goto vc-set-2012
|
|
78
|
+
if not exist "%VS120COMNTOOLS%\..\..\vc\vcvarsall.bat" goto vc-set-2012
|
|
79
|
+
call "%VS120COMNTOOLS%\..\..\vc\vcvarsall.bat"
|
|
80
|
+
if not defined VCINSTALLDIR goto msbuild-not-found
|
|
81
|
+
goto msbuild-found
|
|
82
|
+
|
|
83
|
+
:vc-set-2012
|
|
84
|
+
if not defined VS110COMNTOOLS goto vc-set-2010
|
|
85
|
+
if not exist "%VS110COMNTOOLS%\..\..\vc\vcvarsall.bat" goto vc-set-2010
|
|
86
|
+
call "%VS110COMNTOOLS%\..\..\vc\vcvarsall.bat"
|
|
87
|
+
if not defined VCINSTALLDIR goto msbuild-not-found
|
|
88
|
+
goto msbuild-found
|
|
89
|
+
|
|
90
|
+
:vc-set-2010
|
|
91
|
+
if not defined VS100COMNTOOLS goto vc-set-2008
|
|
92
|
+
if not exist "%VS100COMNTOOLS%\..\..\vc\vcvarsall.bat" goto vc-set-2008
|
|
93
|
+
call "%VS100COMNTOOLS%\..\..\vc\vcvarsall.bat"
|
|
94
|
+
if not defined VCINSTALLDIR goto msbuild-not-found
|
|
95
|
+
goto msbuild-found
|
|
96
|
+
|
|
97
|
+
:vc-set-2008
|
|
98
|
+
if not defined VS90COMNTOOLS goto msbuild-not-found
|
|
99
|
+
if not exist "%VS90COMNTOOLS%\..\..\vc\vcvarsall.bat" goto msbuild-not-found
|
|
100
|
+
call "%VS90COMNTOOLS%\..\..\vc\vcvarsall.bat"
|
|
101
|
+
if not defined VCINSTALLDIR goto msbuild-not-found
|
|
102
|
+
goto msbuild-found
|
|
103
|
+
|
|
104
|
+
:msbuild-not-found
|
|
105
|
+
echo Build skipped. To build, this file needs to run from VS cmd prompt.
|
|
106
|
+
goto exit
|
|
107
|
+
|
|
108
|
+
:msbuild-found
|
|
109
|
+
@rem Build the sln with msbuild.
|
|
110
|
+
@rem Refer to http://msdn.microsoft.com/en-us/library/ms164311.aspx
|
|
111
|
+
echo Building Snow Crash...
|
|
112
|
+
msbuild build/snowcrash.sln /m /clp:NoSummary;NoItemAndPropertyList;Verbosity=normal /nologo /property:Configuration=%config%
|
|
113
|
+
if errorlevel 1 goto exit
|
|
114
|
+
|
|
115
|
+
:run
|
|
116
|
+
@rem Run tests if requested.
|
|
117
|
+
echo Running tests...
|
|
118
|
+
.\build\%config%\test-libsnowcrash.exe
|
|
119
|
+
|
|
120
|
+
@rem All Done
|
|
121
|
+
goto exit
|
|
122
|
+
|
|
123
|
+
:create-msvs-files-failed
|
|
124
|
+
echo Failed to create vc project files.
|
|
125
|
+
goto exit
|
|
126
|
+
|
|
127
|
+
:help
|
|
128
|
+
echo vcbuild.bat [debug/release] [test] [clean] [noprojgen] [nobuild] [x86/x64] [inttest] [MSVC2012/MSVC2013]
|
|
129
|
+
echo Examples:
|
|
130
|
+
echo vcbuild.bat : builds release build
|
|
131
|
+
echo vcbuild.bat nobuild : generate MSVS project files only
|
|
132
|
+
echo vcbuild.bat debug : builds debug build
|
|
133
|
+
echo vcbuild.bat test : builds debug build and runs tests
|
|
134
|
+
echo vcbuild.bat inttest : include integration tests
|
|
135
|
+
echo vcbuild.bat MSVC2013 : indicate target solution's version, could also define as MSVC2012, MSVC2013
|
|
136
|
+
goto exit
|
|
137
|
+
|
|
138
|
+
:exit
|
|
139
|
+
goto :EOF
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Default Shell
|
|
2
|
+
SHELL = /bin/bash
|
|
3
|
+
|
|
4
|
+
# Default build path
|
|
5
|
+
BUILD_PATH = build
|
|
6
|
+
|
|
7
|
+
# Flags
|
|
8
|
+
CXXFLAGS = -g -O3 -fPIC -Wall -Werror -Wsign-compare -std=c++11
|
|
9
|
+
LDFLAGS = -g -O3 -Wall -Werror
|
|
10
|
+
|
|
11
|
+
# SOS source directory
|
|
12
|
+
SRC_PATH = src
|
|
13
|
+
|
|
14
|
+
# SOS test source directory
|
|
15
|
+
TEST_SRC_PATH = test
|
|
16
|
+
|
|
17
|
+
# SOS include paths
|
|
18
|
+
INCLUDES = -I$(SRC_PATH)
|
|
19
|
+
|
|
20
|
+
# Test include paths
|
|
21
|
+
TEST_INCLUDES = $(INCLUDES) -I$(TEST_SRC_PATH) -Itest/ext/Catch/single_include
|
|
22
|
+
|
|
23
|
+
# SOS objects
|
|
24
|
+
LIB_SRC = $(SRC_PATH)/sos.cc
|
|
25
|
+
LIB_OBJ = $(BUILD_PATH)/sos.o
|
|
26
|
+
|
|
27
|
+
# SOS tests object
|
|
28
|
+
TEST_SRC = $(TEST_SRC_PATH)/test-libsos.cc
|
|
29
|
+
TEST_OBJ = $(BUILD_PATH)/test-libsos.o
|
|
30
|
+
|
|
31
|
+
OBJECTS = $(LIB_OBJ) $(TEST_OBJ)
|
|
32
|
+
DEPENDS = $(OBJECTS:.o=.d)
|
|
33
|
+
|
|
34
|
+
.PHONY: all
|
|
35
|
+
all: libsos.a test-libsos
|
|
36
|
+
|
|
37
|
+
libsos.a: $(LIB_OBJ)
|
|
38
|
+
$(AR) rcs $(BUILD_PATH)/libsos.a $^
|
|
39
|
+
|
|
40
|
+
test-libsos: libsos.a $(TEST_OBJ)
|
|
41
|
+
$(CXX) $(TEST_OBJ) $(BUILD_PATH)/libsos.a $(LDFLAGS) -o $(BUILD_PATH)/$@
|
|
42
|
+
|
|
43
|
+
.PHONY: test
|
|
44
|
+
test: test-libsos
|
|
45
|
+
$(BUILD_PATH)/test-libsos
|
|
46
|
+
|
|
47
|
+
.PHONY: clean
|
|
48
|
+
clean:
|
|
49
|
+
$(RM) -r build
|
|
50
|
+
|
|
51
|
+
$(BUILD_PATH)/%.o: $(SRC_PATH)/%.cc
|
|
52
|
+
$(CXX) $(CXXFLAGS) $(INCLUDES) -MP -MMD -c $< -o $@
|
|
53
|
+
|
|
54
|
+
$(BUILD_PATH)/%.o: $(TEST_SRC_PATH)/%.cc
|
|
55
|
+
$(CXX) $(CXXFLAGS) $(TEST_INCLUDES) -MP -MMD -c $< -o $@
|
|
56
|
+
|
|
57
|
+
$(LIB_OBJ): | $(BUILD_PATH)
|
|
58
|
+
|
|
59
|
+
$(BUILD_PATH):
|
|
60
|
+
mkdir -p $(BUILD_PATH)
|
|
61
|
+
|
|
62
|
+
-include $(DEPENDS)
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
//
|
|
2
|
+
// sos.cc
|
|
3
|
+
// sos
|
|
4
|
+
//
|
|
5
|
+
// Created by Pavan Kumar Sunkara on 20/01/15.
|
|
6
|
+
// Copyright (c) 2015 Apiary Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
#include "sos.h"
|
|
10
|
+
|
|
11
|
+
sos::Base::Base(Base::Type type_)
|
|
12
|
+
: type(type_)
|
|
13
|
+
{
|
|
14
|
+
m_object.reset(::new KeyValues);
|
|
15
|
+
m_array.reset(::new Bases);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
sos::Base::Base(const sos::Base& rhs)
|
|
19
|
+
{
|
|
20
|
+
this->type = rhs.type;
|
|
21
|
+
this->str = rhs.str;
|
|
22
|
+
this->number = rhs.number;
|
|
23
|
+
this->boolean = rhs.boolean;
|
|
24
|
+
this->keys = rhs.keys;
|
|
25
|
+
|
|
26
|
+
this->m_object.reset(::new KeyValues(*rhs.m_object.get()));
|
|
27
|
+
this->m_array.reset(::new Bases(*rhs.m_array.get()));
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
sos::Base& sos::Base::operator=(const sos::Base &rhs)
|
|
31
|
+
{
|
|
32
|
+
this->type = rhs.type;
|
|
33
|
+
this->str = rhs.str;
|
|
34
|
+
this->number = rhs.number;
|
|
35
|
+
this->boolean = rhs.boolean;
|
|
36
|
+
this->keys = rhs.keys;
|
|
37
|
+
|
|
38
|
+
this->m_object.reset(::new KeyValues(*rhs.m_object.get()));
|
|
39
|
+
this->m_array.reset(::new Bases(*rhs.m_array.get()));
|
|
40
|
+
|
|
41
|
+
return *this;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
sos::KeyValues& sos::Base::object()
|
|
45
|
+
{
|
|
46
|
+
if (!m_object.get())
|
|
47
|
+
throw std::logic_error("no object key-values set");
|
|
48
|
+
|
|
49
|
+
return *m_object;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const sos::KeyValues& sos::Base::object() const
|
|
53
|
+
{
|
|
54
|
+
if (!m_object.get())
|
|
55
|
+
throw std::logic_error("no object key-values set");
|
|
56
|
+
|
|
57
|
+
return *m_object;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
sos::Bases& sos::Base::array()
|
|
61
|
+
{
|
|
62
|
+
if (!m_array.get())
|
|
63
|
+
throw std::logic_error("no array values set");
|
|
64
|
+
|
|
65
|
+
return *m_array;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const sos::Bases& sos::Base::array() const
|
|
69
|
+
{
|
|
70
|
+
if (!m_array.get())
|
|
71
|
+
throw std::logic_error("no array values set");
|
|
72
|
+
|
|
73
|
+
return *m_array;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
sos::Null::Null()
|
|
77
|
+
: Base(NullType)
|
|
78
|
+
{}
|
|
79
|
+
|
|
80
|
+
sos::String::String(std::string str_)
|
|
81
|
+
{
|
|
82
|
+
type = StringType;
|
|
83
|
+
str = str_;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
sos::Number::Number(double number_)
|
|
87
|
+
{
|
|
88
|
+
type = NumberType;
|
|
89
|
+
number = number_;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
sos::Boolean::Boolean(bool boolean_)
|
|
93
|
+
{
|
|
94
|
+
type = BooleanType;
|
|
95
|
+
boolean = boolean_;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
sos::Array::Array()
|
|
99
|
+
: Base(ArrayType)
|
|
100
|
+
{}
|
|
101
|
+
|
|
102
|
+
void sos::Array::push(const sos::Base& value)
|
|
103
|
+
{
|
|
104
|
+
array().push_back(value);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
void sos::Array::set(const size_t index, const sos::Base& value)
|
|
108
|
+
{
|
|
109
|
+
if (array().size() <= index)
|
|
110
|
+
throw std::logic_error("not enough array values set");
|
|
111
|
+
|
|
112
|
+
array().at(index) = value;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
bool sos::Array::empty()
|
|
116
|
+
{
|
|
117
|
+
return array().empty();
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
sos::Object::Object()
|
|
121
|
+
: Base(ObjectType)
|
|
122
|
+
{}
|
|
123
|
+
|
|
124
|
+
void sos::Object::set(const std::string& key, const sos::Base& value, bool doNotOverride)
|
|
125
|
+
{
|
|
126
|
+
sos::Keys::iterator it = std::find(keys.begin(), keys.end(), key);
|
|
127
|
+
|
|
128
|
+
if (it != keys.end()) {
|
|
129
|
+
if (doNotOverride) {
|
|
130
|
+
throw std::logic_error("key already present in the object");
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
keys.erase(it);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
keys.push_back(key);
|
|
138
|
+
object().operator[](key) = value;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
void sos::Object::unset(const std::string &key)
|
|
142
|
+
{
|
|
143
|
+
sos::Keys::iterator it = std::find(keys.begin(), keys.end(), key);
|
|
144
|
+
|
|
145
|
+
if (it == keys.end()) {
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
sos::KeyValues::iterator valueIt = object().find(key);
|
|
150
|
+
|
|
151
|
+
keys.erase(it);
|
|
152
|
+
object().erase(valueIt);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
bool sos::Object::empty()
|
|
156
|
+
{
|
|
157
|
+
return keys.empty();
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
sos::Serialize::Serialize()
|
|
161
|
+
{}
|
|
162
|
+
|
|
163
|
+
void sos::Serialize::process(const Base& root, std::ostream& os, size_t level)
|
|
164
|
+
{
|
|
165
|
+
sos::Base::Type type = root.type;
|
|
166
|
+
|
|
167
|
+
switch (type) {
|
|
168
|
+
|
|
169
|
+
case Base::NullType:
|
|
170
|
+
null(os);
|
|
171
|
+
break;
|
|
172
|
+
|
|
173
|
+
case Base::StringType:
|
|
174
|
+
string(root.str, os);
|
|
175
|
+
break;
|
|
176
|
+
|
|
177
|
+
case Base::NumberType:
|
|
178
|
+
number(root.number, os);
|
|
179
|
+
break;
|
|
180
|
+
|
|
181
|
+
case Base::BooleanType:
|
|
182
|
+
boolean(root.boolean, os);
|
|
183
|
+
break;
|
|
184
|
+
|
|
185
|
+
case Base::ArrayType:
|
|
186
|
+
array(root, os, level);
|
|
187
|
+
break;
|
|
188
|
+
|
|
189
|
+
case Base::ObjectType:
|
|
190
|
+
object(root, os, level);
|
|
191
|
+
break;
|
|
192
|
+
|
|
193
|
+
default:
|
|
194
|
+
break;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
std::string sos::escapeNewlines(const std::string &input)
|
|
199
|
+
{
|
|
200
|
+
size_t pos = 0;
|
|
201
|
+
std::string target(input);
|
|
202
|
+
|
|
203
|
+
while ((pos = target.find("\n", pos)) != std::string::npos) {
|
|
204
|
+
target.replace(pos, 1, "\\n");
|
|
205
|
+
pos += 2;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
return target;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
std::string sos::escapeDoubleQuotes(const std::string &input)
|
|
212
|
+
{
|
|
213
|
+
size_t pos = 0;
|
|
214
|
+
std::string target(input);
|
|
215
|
+
|
|
216
|
+
while ((pos = target.find("\"", pos)) != std::string::npos) {
|
|
217
|
+
target.replace(pos, 1, "\\\"");
|
|
218
|
+
pos += 2;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
return target;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
std::string sos::escapeBackslashes(const std::string &input)
|
|
225
|
+
{
|
|
226
|
+
size_t pos = 0;
|
|
227
|
+
std::string target(input);
|
|
228
|
+
|
|
229
|
+
while ((pos = target.find("\\", pos)) != std::string::npos) {
|
|
230
|
+
target.replace(pos, 1, "\\\\");
|
|
231
|
+
pos += 2;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
return target;
|
|
235
|
+
}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
//
|
|
2
|
+
// sos.h
|
|
3
|
+
// sos
|
|
4
|
+
//
|
|
5
|
+
// Created by Pavan Kumar Sunkara on 10/01/15.
|
|
6
|
+
// Copyright (c) 2015 Apiary Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
#ifndef SOS_H
|
|
10
|
+
#define SOS_H
|
|
11
|
+
|
|
12
|
+
#include <string>
|
|
13
|
+
#include <vector>
|
|
14
|
+
#include <map>
|
|
15
|
+
#include <ostream>
|
|
16
|
+
#include <algorithm>
|
|
17
|
+
#include <memory>
|
|
18
|
+
#include <stdexcept>
|
|
19
|
+
|
|
20
|
+
namespace sos {
|
|
21
|
+
|
|
22
|
+
/** Forward Declaration */
|
|
23
|
+
class Base;
|
|
24
|
+
|
|
25
|
+
/** Key-value pairs (object) */
|
|
26
|
+
typedef std::map<std::string, Base> KeyValues;
|
|
27
|
+
|
|
28
|
+
/** List of keys for object (for deterministic output) */
|
|
29
|
+
typedef std::vector<std::string> Keys;
|
|
30
|
+
|
|
31
|
+
/** Array of values */
|
|
32
|
+
typedef std::vector<Base> Bases;
|
|
33
|
+
|
|
34
|
+
/** Base class for values */
|
|
35
|
+
class Base {
|
|
36
|
+
public:
|
|
37
|
+
|
|
38
|
+
/** Enum for Type of the value */
|
|
39
|
+
enum Type {
|
|
40
|
+
UndefinedType = 0,
|
|
41
|
+
NullType, // Null
|
|
42
|
+
StringType, // A string
|
|
43
|
+
NumberType, // A number
|
|
44
|
+
BooleanType, // A boolean value
|
|
45
|
+
ArrayType, // An array
|
|
46
|
+
ObjectType // An object
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
/** Type of the value */
|
|
50
|
+
Type type;
|
|
51
|
+
|
|
52
|
+
/** String value */
|
|
53
|
+
std::string str;
|
|
54
|
+
|
|
55
|
+
/** Number value */
|
|
56
|
+
double number;
|
|
57
|
+
|
|
58
|
+
/** Boolean value */
|
|
59
|
+
bool boolean;
|
|
60
|
+
|
|
61
|
+
/** Object value */
|
|
62
|
+
KeyValues& object();
|
|
63
|
+
const KeyValues& object() const;
|
|
64
|
+
|
|
65
|
+
Keys keys;
|
|
66
|
+
|
|
67
|
+
/** Array value */
|
|
68
|
+
Bases& array();
|
|
69
|
+
const Bases& array() const;
|
|
70
|
+
|
|
71
|
+
/** Constructor */
|
|
72
|
+
Base(Type type_ = UndefinedType);
|
|
73
|
+
|
|
74
|
+
/** Copy constructor */
|
|
75
|
+
Base(const Base& rhs);
|
|
76
|
+
|
|
77
|
+
/** Assignment operator */
|
|
78
|
+
Base& operator=(const Base& rhs);
|
|
79
|
+
|
|
80
|
+
/** Destructor */
|
|
81
|
+
~Base() {};
|
|
82
|
+
|
|
83
|
+
private:
|
|
84
|
+
std::unique_ptr<KeyValues> m_object;
|
|
85
|
+
std::unique_ptr<Bases> m_array;
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
class Null : public Base {
|
|
89
|
+
public:
|
|
90
|
+
|
|
91
|
+
/** Constructor */
|
|
92
|
+
Null();
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
class String : public Base {
|
|
96
|
+
public:
|
|
97
|
+
|
|
98
|
+
/** Constructor */
|
|
99
|
+
String(std::string string_ = "");
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
class Number : public Base {
|
|
103
|
+
public:
|
|
104
|
+
|
|
105
|
+
/** Constructor */
|
|
106
|
+
Number(double number_ = 0);
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
class Boolean : public Base {
|
|
110
|
+
public:
|
|
111
|
+
|
|
112
|
+
/** Constructor */
|
|
113
|
+
Boolean(bool boolean_ = false);
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
class Array : public Base {
|
|
117
|
+
public:
|
|
118
|
+
|
|
119
|
+
/** Constructor */
|
|
120
|
+
Array();
|
|
121
|
+
|
|
122
|
+
void push(const Base& value);
|
|
123
|
+
void set(const size_t index, const Base& value);
|
|
124
|
+
|
|
125
|
+
/** Check if empty */
|
|
126
|
+
bool empty();
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
class Object : public Base {
|
|
130
|
+
public:
|
|
131
|
+
|
|
132
|
+
/** Constructor */
|
|
133
|
+
Object();
|
|
134
|
+
|
|
135
|
+
void set(const std::string& key, const Base& value, bool doNotOverride = false);
|
|
136
|
+
void unset(const std::string& key);
|
|
137
|
+
|
|
138
|
+
/** Check if empty */
|
|
139
|
+
bool empty();
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
/** Base class for serializers */
|
|
143
|
+
struct Serialize {
|
|
144
|
+
|
|
145
|
+
/** Constructor */
|
|
146
|
+
Serialize();
|
|
147
|
+
|
|
148
|
+
/** Destructor */
|
|
149
|
+
virtual ~Serialize() {};
|
|
150
|
+
|
|
151
|
+
/** Process the given value with the serializer logic */
|
|
152
|
+
void process(const Base& value, std::ostream& os, size_t level = 0);
|
|
153
|
+
|
|
154
|
+
virtual void null(std::ostream& os) = 0;
|
|
155
|
+
virtual void string(const std::string& value, std::ostream& os) = 0;
|
|
156
|
+
virtual void number(double value, std::ostream& os) = 0;
|
|
157
|
+
virtual void boolean(bool value, std::ostream& os) = 0;
|
|
158
|
+
virtual void array(const Base& value, std::ostream& os, size_t level) = 0;
|
|
159
|
+
virtual void object(const Base& value, std::ostream& os, size_t level) = 0;
|
|
160
|
+
|
|
161
|
+
virtual void indent(size_t level, std::ostream& os) = 0;
|
|
162
|
+
};
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* \brief Escape every backslash in input string.
|
|
166
|
+
* \param input A string to escape its backslashes.
|
|
167
|
+
* \return A new string with backslashes escaped.
|
|
168
|
+
*/
|
|
169
|
+
std::string escapeBackslashes(const std::string& input);
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* \brief Escape every double quote in input string.
|
|
173
|
+
* \param input A string to escape its double quotes.
|
|
174
|
+
* \return A new string with double quotes escaped.
|
|
175
|
+
*/
|
|
176
|
+
std::string escapeDoubleQuotes(const std::string& input);
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* \brief Escape new lines in input string.
|
|
180
|
+
* \param input A string to escape its new lines.
|
|
181
|
+
* \return A new string with lines escaped.
|
|
182
|
+
*
|
|
183
|
+
* This function replaces all occurences of "\n" with "\\n".
|
|
184
|
+
*/
|
|
185
|
+
std::string escapeNewlines(const std::string& input);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
#endif
|