redsnow 0.3.7 → 0.4.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 +4 -4
- data/Gemfile.lock +1 -1
- data/Rakefile +4 -4
- data/ext/drafter/Makefile +54 -0
- data/ext/drafter/appveyor.yml +10 -0
- data/ext/drafter/bin/drafter +0 -0
- data/ext/{snowcrash → drafter}/build/Makefile +29 -14
- data/ext/{snowcrash/build/snowcrash.Makefile → drafter/build/drafter.Makefile} +1 -1
- data/ext/{snowcrash/build/snowcrash.target.mk → drafter/build/drafter.target.mk} +25 -23
- data/ext/{snowcrash/build → drafter/build/ext/snowcrash}/libmarkdownparser.target.mk +7 -7
- data/ext/drafter/build/ext/snowcrash/libsnowcrash.target.mk +152 -0
- data/ext/{snowcrash/build → drafter/build/ext/snowcrash}/libsundown.target.mk +13 -13
- data/ext/{snowcrash/build → drafter/build/ext/snowcrash}/perf-libsnowcrash.target.mk +14 -20
- data/ext/drafter/build/ext/snowcrash/snowcrash.Makefile +6 -0
- data/ext/{snowcrash → drafter}/build/gyp-mac-tool +0 -0
- data/ext/{snowcrash/build/libsnowcrash.target.mk → drafter/build/libdrafter.target.mk} +29 -36
- data/ext/drafter/build/libsos.target.mk +133 -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/{snowcrash → drafter}/build/out/Release/libsundown.a +0 -0
- data/ext/{snowcrash → drafter}/build/out/Release/linker.lock +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/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/cdrafter.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/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/{snowcrash/build/out/Release/obj.target/libsundown → drafter/build/out/Release/obj.target/libsundown/ext/snowcrash}/ext/markdown-parser/ext/sundown/html/html.o +0 -0
- data/ext/{snowcrash/build/out/Release/obj.target/libsundown → drafter/build/out/Release/obj.target/libsundown/ext/snowcrash}/ext/markdown-parser/ext/sundown/html/html_smartypants.o +0 -0
- data/ext/{snowcrash/build/out/Release/obj.target/libsundown → drafter/build/out/Release/obj.target/libsundown/ext/snowcrash}/ext/markdown-parser/ext/sundown/src/autolink.o +0 -0
- data/ext/{snowcrash/build/out/Release/obj.target/libsundown → drafter/build/out/Release/obj.target/libsundown/ext/snowcrash}/ext/markdown-parser/ext/sundown/src/buffer.o +0 -0
- data/ext/{snowcrash/build/out/Release/obj.target/libsundown → drafter/build/out/Release/obj.target/libsundown/ext/snowcrash}/ext/markdown-parser/ext/sundown/src/markdown.o +0 -0
- data/ext/{snowcrash/build/out/Release/obj.target/libsundown → 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 +12 -0
- data/ext/{snowcrash → drafter}/config.gypi +1 -1
- data/ext/{snowcrash → drafter}/config.mk +0 -0
- data/ext/{snowcrash → drafter}/configure +16 -5
- data/ext/drafter/drafter.gyp +118 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/Makefile +4 -12
- data/ext/{snowcrash → drafter/ext/snowcrash}/Vagrantfile +14 -4
- data/ext/drafter/ext/snowcrash/appveyor.yml +7 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/common.gypi +0 -0
- data/ext/drafter/ext/snowcrash/configure +197 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/Makefile +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/CONTRIBUTING.md +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/Makefile +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/Makefile.win +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/examples/smartypants.c +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/examples/sundown.c +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/html/houdini.h +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/html/houdini_href_e.c +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/html/houdini_html_e.c +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/html/html.c +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/html/html.h +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/html/html_smartypants.c +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/html_block_names.txt +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/src/autolink.c +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/src/autolink.h +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/src/buffer.c +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/src/buffer.h +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/src/html_blocks.h +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/src/markdown.c +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/src/markdown.h +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/src/src_map.c +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/src/src_map.h +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/src/stack.c +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/src/stack.h +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/ext/sundown/sundown.def +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/msvc/markdown/markdown.vcproj +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/msvc/msvc.sln +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/msvc/sundown/sundown.vcproj +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/src/ByteBuffer.cc +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/src/ByteBuffer.h +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/src/MarkdownNode.cc +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/src/MarkdownNode.h +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/src/MarkdownParser.cc +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/ext/markdown-parser/src/MarkdownParser.h +10 -2
- data/ext/{snowcrash → drafter/ext/snowcrash}/provisioning.sh +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/snowcrash.gyp +41 -39
- data/ext/{snowcrash → drafter/ext/snowcrash}/snowcrash.xcworkspace/contents.xcworkspacedata +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/src/ActionParser.h +50 -6
- data/ext/{snowcrash → drafter/ext/snowcrash}/src/AssetParser.h +1 -12
- data/ext/drafter/ext/snowcrash/src/AttributesParser.h +121 -0
- data/ext/drafter/ext/snowcrash/src/Blueprint.cc +90 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/src/Blueprint.h +169 -33
- data/ext/{snowcrash → drafter/ext/snowcrash}/src/BlueprintParser.h +305 -48
- data/ext/drafter/ext/snowcrash/src/BlueprintSourcemap.cc +81 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/src/BlueprintSourcemap.h +130 -39
- data/ext/{snowcrash → drafter/ext/snowcrash}/src/BlueprintUtility.h +10 -4
- data/ext/{snowcrash → drafter/ext/snowcrash}/src/CodeBlockUtility.h +1 -1
- data/ext/drafter/ext/snowcrash/src/DataStructureGroupParser.h +154 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/src/HTTP.cc +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/src/HTTP.h +0 -0
- data/ext/drafter/ext/snowcrash/src/HeadersParser.cc +110 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/src/HeadersParser.h +123 -54
- data/ext/drafter/ext/snowcrash/src/MSON.cc +272 -0
- data/ext/drafter/ext/snowcrash/src/MSON.h +399 -0
- data/ext/drafter/ext/snowcrash/src/MSONMixinParser.h +95 -0
- data/ext/drafter/ext/snowcrash/src/MSONNamedTypeParser.h +108 -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 +232 -0
- data/ext/drafter/ext/snowcrash/src/MSONPropertyMemberParser.h +91 -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 +423 -0
- data/ext/drafter/ext/snowcrash/src/MSONValueMemberParser.cc +179 -0
- data/ext/drafter/ext/snowcrash/src/MSONValueMemberParser.h +346 -0
- data/ext/drafter/ext/snowcrash/src/ModelTable.h +87 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/src/ParameterParser.h +120 -61
- data/ext/{snowcrash → drafter/ext/snowcrash}/src/ParametersParser.h +17 -18
- data/ext/{snowcrash → drafter/ext/snowcrash}/src/PayloadParser.h +36 -18
- data/ext/{snowcrash → drafter/ext/snowcrash}/src/Platform.h +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/src/RegexMatch.h +0 -0
- data/ext/drafter/ext/snowcrash/src/RelationParser.h +75 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/src/ResourceGroupParser.h +127 -33
- data/ext/{snowcrash → drafter/ext/snowcrash}/src/ResourceParser.h +126 -33
- data/ext/{snowcrash → drafter/ext/snowcrash}/src/Section.cc +6 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/src/Section.h +15 -2
- data/ext/{snowcrash → drafter/ext/snowcrash}/src/SectionParser.h +3 -1
- data/ext/{snowcrash → drafter/ext/snowcrash}/src/SectionParserData.h +15 -5
- data/ext/{snowcrash → drafter/ext/snowcrash}/src/SectionProcessor.h +24 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/src/Signature.cc +14 -0
- data/ext/drafter/ext/snowcrash/src/Signature.h +80 -0
- data/ext/drafter/ext/snowcrash/src/SignatureSectionProcessor.h +439 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/src/SourceAnnotation.h +3 -2
- data/ext/{snowcrash → drafter/ext/snowcrash}/src/StringUtility.h +103 -6
- data/ext/{snowcrash → drafter/ext/snowcrash}/src/UriTemplateParser.cc +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/src/UriTemplateParser.h +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/src/ValuesParser.h +1 -13
- data/ext/{snowcrash → drafter/ext/snowcrash}/src/posix/RegexMatch.cc +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/src/snowcrash.cc +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/src/snowcrash.h +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/src/win/RegexMatch.cc +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/AUTHORS +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/DEPS +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/OWNERS +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/PRESUBMIT.py +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/buildbot/buildbot_run.py +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/codereview.settings +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/data/win/large-pdb-shim.cc +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/gyp +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/gyp.bat +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/gyp_main.py +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/MSVSNew.py +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/MSVSProject.py +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/MSVSSettings.py +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/MSVSToolFile.py +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/MSVSUserFile.py +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/MSVSUtil.py +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/MSVSVersion.py +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/__init__.py +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/__init__.pyc +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/common.py +0 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/common.pyc +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/easy_xml.py +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/flock_tool.py +0 -0
- data/ext/{snowcrash → 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/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/generator/android.py +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/generator/cmake.py +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/generator/dump_dependency_json.py +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/generator/eclipse.py +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/generator/gypd.py +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/generator/gypsh.py +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/generator/make.py +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/generator/make.pyc +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/generator/msvs.py +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/generator/ninja.py +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/generator/xcode.py +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/generator/xcode.pyc +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/input.py +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/input.pyc +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/mac_tool.py +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/msvs_emulation.py +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/ninja_syntax.py +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/ordered_dict.py +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/win_tool.py +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/xcode_emulation.py +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/xcode_emulation.pyc +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/xcodeproj_file.py +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/xcodeproj_file.pyc +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylib/gyp/xml_fix.py +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/pylintrc +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/samples/samples +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/samples/samples.bat +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/setup.py +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/tools/Xcode/Specifications/gyp.pbfilespec +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/tools/Xcode/Specifications/gyp.xclangspec +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/tools/emacs/gyp.el +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/tools/graphviz.py +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/tools/pretty_gyp.py +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/tools/pretty_sln.py +0 -0
- data/ext/{snowcrash → drafter/ext/snowcrash}/tools/gyp/tools/pretty_vcproj.py +0 -0
- data/ext/drafter/ext/snowcrash/vcbuild.bat +139 -0
- data/ext/drafter/ext/sos/Makefile +57 -0
- data/ext/drafter/ext/sos/src/sos.cc +200 -0
- data/ext/drafter/ext/sos/src/sos.h +179 -0
- data/ext/drafter/ext/sos/src/sosJSON.h +105 -0
- data/ext/drafter/ext/sos/src/sosYAML.h +104 -0
- data/ext/{snowcrash → drafter}/src/Serialize.cc +30 -15
- data/ext/drafter/src/Serialize.h +135 -0
- data/ext/drafter/src/SerializeAST.cc +775 -0
- data/ext/drafter/src/SerializeAST.h +19 -0
- data/ext/drafter/src/SerializeResult.cc +67 -0
- data/ext/drafter/src/SerializeResult.h +26 -0
- data/ext/drafter/src/SerializeSourcemap.cc +446 -0
- data/ext/drafter/src/SerializeSourcemap.h +19 -0
- data/ext/drafter/src/Version.h +38 -0
- data/ext/drafter/src/cdrafter.cc +44 -0
- data/ext/drafter/src/cdrafter.h +55 -0
- data/ext/drafter/src/config.cc +80 -0
- data/ext/drafter/src/config.h +35 -0
- data/ext/drafter/src/drafter.cc +22 -0
- data/ext/drafter/src/drafter.h +38 -0
- data/ext/drafter/src/main.cc +91 -0
- data/ext/drafter/src/reporting.cc +162 -0
- data/ext/drafter/src/reporting.h +28 -0
- data/ext/drafter/src/stream.h +146 -0
- data/ext/drafter/tools/homebrew/drafter.rb +12 -0
- data/ext/{snowcrash → drafter}/vcbuild.bat +3 -3
- data/lib/redsnow.rb +6 -11
- data/lib/redsnow/binding.rb +11 -201
- data/lib/redsnow/blueprint.rb +104 -169
- data/lib/redsnow/parseresult.rb +28 -42
- data/lib/redsnow/sourcemap.rb +92 -177
- data/lib/redsnow/version.rb +1 -1
- data/redsnow.gemspec +1 -1
- metadata +249 -197
- data/ext/snowcrash/bin/snowcrash +0 -0
- data/ext/snowcrash/build/out/Release/libmarkdownparser.a +0 -0
- data/ext/snowcrash/build/out/Release/libsnowcrash.dylib +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/libmarkdownparser/ext/markdown-parser/src/ByteBuffer.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/libmarkdownparser/ext/markdown-parser/src/MarkdownNode.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/libmarkdownparser/ext/markdown-parser/src/MarkdownParser.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/CBlueprint.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/CBlueprintSourcemap.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/CSourceAnnotation.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/HTTP.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/Section.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/Serialize.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/SerializeJSON.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/SerializeYAML.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/Signature.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/UriTemplateParser.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/csnowcrash.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/posix/RegexMatch.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/snowcrash.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/libsundown/ext/markdown-parser/ext/sundown/html/houdini_href_e.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/libsundown/ext/markdown-parser/ext/sundown/html/houdini_html_e.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/libsundown/ext/markdown-parser/ext/sundown/src/stack.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/snowcrash/src/snowcrash/snowcrash.o +0 -0
- data/ext/snowcrash/build/out/Release/snowcrash +0 -0
- data/ext/snowcrash/src/CBlueprint.cc +0 -628
- data/ext/snowcrash/src/CBlueprint.h +0 -366
- data/ext/snowcrash/src/CBlueprintSourcemap.cc +0 -630
- data/ext/snowcrash/src/CBlueprintSourcemap.h +0 -351
- data/ext/snowcrash/src/CSourceAnnotation.cc +0 -154
- data/ext/snowcrash/src/CSourceAnnotation.h +0 -106
- data/ext/snowcrash/src/Serialize.h +0 -71
- data/ext/snowcrash/src/SerializeJSON.cc +0 -1221
- data/ext/snowcrash/src/SerializeJSON.h +0 -24
- data/ext/snowcrash/src/SerializeYAML.cc +0 -702
- data/ext/snowcrash/src/SerializeYAML.h +0 -24
- data/ext/snowcrash/src/Signature.h +0 -32
- data/ext/snowcrash/src/SymbolTable.h +0 -94
- data/ext/snowcrash/src/Version.h +0 -39
- data/ext/snowcrash/src/csnowcrash.cc +0 -29
- data/ext/snowcrash/src/csnowcrash.h +0 -40
- data/ext/snowcrash/src/snowcrash/snowcrash.cc +0 -200
- data/ext/snowcrash/tools/gyp/pylib/gyp/common.pyc +0 -0
- data/ext/snowcrash/tools/gyp/pylib/gyp/generator/__init__.pyc +0 -0
- data/ext/snowcrash/tools/homebrew/snowcrash.rb +0 -12
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// CSourceAnnotation.h
|
|
3
|
-
// snowcrash
|
|
4
|
-
// C Implementation of SourceAnnotation.h for binding purposes
|
|
5
|
-
//
|
|
6
|
-
// Created by Ali Khoramshahi on 13/6/14.
|
|
7
|
-
// Copyright (c) 2014 Apiary Inc. All rights reserved.
|
|
8
|
-
//
|
|
9
|
-
|
|
10
|
-
#ifndef SC_C_SOURCEANNOTATION_H
|
|
11
|
-
#define SC_C_SOURCEANNOTATION_H
|
|
12
|
-
|
|
13
|
-
#include "Platform.h"
|
|
14
|
-
#include "stdlib.h"
|
|
15
|
-
|
|
16
|
-
#ifdef __cplusplus
|
|
17
|
-
extern "C" {
|
|
18
|
-
#endif
|
|
19
|
-
|
|
20
|
-
/** Class Report wrapper */
|
|
21
|
-
struct sc_report_s;
|
|
22
|
-
typedef struct sc_report_s sc_report_t;
|
|
23
|
-
|
|
24
|
-
/** Array warnings wrapper */
|
|
25
|
-
struct sc_warnings_s;
|
|
26
|
-
typedef struct sc_warnings_s sc_warnings_t;
|
|
27
|
-
|
|
28
|
-
/** Class warning wrapper */
|
|
29
|
-
struct sc_warning_s;
|
|
30
|
-
typedef struct sc_warning_s sc_warning_t;
|
|
31
|
-
|
|
32
|
-
/** Class error wrapper */
|
|
33
|
-
struct sc_error_s;
|
|
34
|
-
typedef struct sc_error_s sc_error_t;
|
|
35
|
-
|
|
36
|
-
/** Class location wrapper */
|
|
37
|
-
struct sc_location_s;
|
|
38
|
-
typedef struct sc_location_s sc_location_t;
|
|
39
|
-
|
|
40
|
-
/** Class SourceAnnotation wrapper */
|
|
41
|
-
struct sc_source_annotation_s;
|
|
42
|
-
typedef struct sc_source_annotation_s sc_source_annotation_t;
|
|
43
|
-
|
|
44
|
-
/*----------------------------------------------------------------------*/
|
|
45
|
-
|
|
46
|
-
/** \returns pointer to allocated Report*/
|
|
47
|
-
SC_API sc_report_t* sc_report_new();
|
|
48
|
-
|
|
49
|
-
/** \deallocate Report from pointer*/
|
|
50
|
-
SC_API void sc_report_free(sc_report_t* report);
|
|
51
|
-
|
|
52
|
-
/*----------------------------------------------------------------------*/
|
|
53
|
-
|
|
54
|
-
/** \returns location handler*/
|
|
55
|
-
SC_API const sc_location_t* sc_location_handler(const sc_source_annotation_t* source);
|
|
56
|
-
|
|
57
|
-
/** \returns location array size*/
|
|
58
|
-
SC_API size_t sc_location_size(const sc_location_t* location);
|
|
59
|
-
|
|
60
|
-
/** \returns location at `index` length*/
|
|
61
|
-
SC_API size_t sc_location_length(const sc_location_t* location, size_t index);
|
|
62
|
-
|
|
63
|
-
/** \returns location at `index` location*/
|
|
64
|
-
SC_API size_t sc_location_location(const sc_location_t* location, size_t index);
|
|
65
|
-
|
|
66
|
-
/*----------------------------------------------------------------------*/
|
|
67
|
-
|
|
68
|
-
/** \returns error handler*/
|
|
69
|
-
SC_API const sc_error_t* sc_error_handler(const sc_report_t* report);
|
|
70
|
-
|
|
71
|
-
/** \returns error message*/
|
|
72
|
-
SC_API const char* sc_error_message(const sc_error_t* error);
|
|
73
|
-
|
|
74
|
-
/** \returns error code*/
|
|
75
|
-
SC_API int sc_error_code(const sc_error_t* error);
|
|
76
|
-
|
|
77
|
-
/** \returns error OK*/
|
|
78
|
-
SC_API int sc_error_ok(const sc_error_t* error);
|
|
79
|
-
|
|
80
|
-
/*----------------------------------------------------------------------*/
|
|
81
|
-
|
|
82
|
-
/** \returns warnings handler*/
|
|
83
|
-
SC_API const sc_warnings_t* sc_warnings_handler(const sc_report_t* report);
|
|
84
|
-
|
|
85
|
-
/** \returns warnings array size*/
|
|
86
|
-
SC_API size_t sc_warnings_size(const sc_warnings_t* warning);
|
|
87
|
-
|
|
88
|
-
/*----------------------------------------------------------------------*/
|
|
89
|
-
|
|
90
|
-
/** \returns warning at `index` handle*/
|
|
91
|
-
SC_API const sc_warning_t* sc_warning_handler(const sc_warnings_t* warning, size_t index);
|
|
92
|
-
|
|
93
|
-
/** \returns warning message*/
|
|
94
|
-
SC_API const char* sc_warning_message(const sc_warning_t* warning);
|
|
95
|
-
|
|
96
|
-
/** \returns warning code*/
|
|
97
|
-
SC_API int sc_warning_code(const sc_warning_t* warning);
|
|
98
|
-
|
|
99
|
-
/** \returns warning OK*/
|
|
100
|
-
SC_API int sc_warning_ok(const sc_warning_t* warning);
|
|
101
|
-
|
|
102
|
-
#ifdef __cplusplus
|
|
103
|
-
}
|
|
104
|
-
#endif
|
|
105
|
-
|
|
106
|
-
#endif
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Serialize.h
|
|
3
|
-
// snowcrash
|
|
4
|
-
//
|
|
5
|
-
// Created by Zdenek Nemec on 5/3/13.
|
|
6
|
-
// Copyright (c) 2013 Apiary Inc. All rights reserved.
|
|
7
|
-
//
|
|
8
|
-
|
|
9
|
-
#ifndef SNOWCRASH_SERIALIZE_H
|
|
10
|
-
#define SNOWCRASH_SERIALIZE_H
|
|
11
|
-
|
|
12
|
-
#include <string>
|
|
13
|
-
|
|
14
|
-
/** Version of API Blueprint AST serialization */
|
|
15
|
-
#define AST_SERIALIZATION_VERSION "2.1"
|
|
16
|
-
|
|
17
|
-
namespace snowcrash {
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* \brief Escape new lines in input string.
|
|
21
|
-
* \param input A string to escape its new lines.
|
|
22
|
-
* \return A new string with lines escaped.
|
|
23
|
-
*
|
|
24
|
-
* This function replaces all occurences of "\n" with "\\n".
|
|
25
|
-
*/
|
|
26
|
-
std::string EscapeNewlines(const std::string& input);
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* \brief Escape every double quote in input string.
|
|
30
|
-
* \param input A string to escape its double quotes.
|
|
31
|
-
* \return A new string with double quotes escaped.
|
|
32
|
-
*/
|
|
33
|
-
std::string EscapeDoubleQuotes(const std::string& input);
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* AST entities serialization keys
|
|
37
|
-
*/
|
|
38
|
-
struct SerializeKey {
|
|
39
|
-
static const std::string ASTVersion;
|
|
40
|
-
static const std::string Metadata;
|
|
41
|
-
static const std::string Reference;
|
|
42
|
-
static const std::string Id;
|
|
43
|
-
static const std::string Name;
|
|
44
|
-
static const std::string Description;
|
|
45
|
-
static const std::string ResourceGroups;
|
|
46
|
-
static const std::string Resources;
|
|
47
|
-
static const std::string URI;
|
|
48
|
-
static const std::string URITemplate;
|
|
49
|
-
static const std::string Actions;
|
|
50
|
-
static const std::string Action;
|
|
51
|
-
static const std::string Examples;
|
|
52
|
-
static const std::string Transaction;
|
|
53
|
-
static const std::string Method;
|
|
54
|
-
static const std::string Requests;
|
|
55
|
-
static const std::string Responses;
|
|
56
|
-
static const std::string Body;
|
|
57
|
-
static const std::string Schema;
|
|
58
|
-
static const std::string Headers;
|
|
59
|
-
static const std::string Model;
|
|
60
|
-
static const std::string Value;
|
|
61
|
-
static const std::string Parameters;
|
|
62
|
-
static const std::string Type;
|
|
63
|
-
static const std::string Required;
|
|
64
|
-
static const std::string Default;
|
|
65
|
-
static const std::string Example;
|
|
66
|
-
static const std::string Values;
|
|
67
|
-
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
#endif
|
|
@@ -1,1221 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// SerializeJSON.cc
|
|
3
|
-
// snowcrash
|
|
4
|
-
//
|
|
5
|
-
// Created by Zdenek Nemec on 4/27/13.
|
|
6
|
-
// Copyright (c) 2013 Apiary Inc. All rights reserved.
|
|
7
|
-
//
|
|
8
|
-
|
|
9
|
-
#include "SerializeJSON.h"
|
|
10
|
-
#include "Serialize.h"
|
|
11
|
-
|
|
12
|
-
using namespace snowcrash;
|
|
13
|
-
|
|
14
|
-
static const std::string IndentBlock = " ";
|
|
15
|
-
static const std::string NewLineItemBlock = ",\n";
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* \brief Serialize a JSON string.
|
|
19
|
-
* \param value JSON string to serialize
|
|
20
|
-
* \param os An output stream to serialize into
|
|
21
|
-
*/
|
|
22
|
-
static void serialize(const std::string& value, std::ostream &os)
|
|
23
|
-
{
|
|
24
|
-
os << "\"" << value << "\"";
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* \brief Inserts indentation into an output stream.
|
|
29
|
-
* \param level Level of indentation
|
|
30
|
-
* \param os An output stream to serialize into
|
|
31
|
-
*/
|
|
32
|
-
static void indent(size_t level, std::ostream &os)
|
|
33
|
-
{
|
|
34
|
-
for (size_t i = 0; i < level; ++i) {
|
|
35
|
-
os << IndentBlock;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* \brief Serialize key value pair into output stream.
|
|
41
|
-
* \param key Key to serialize
|
|
42
|
-
* \param value Value to serialize
|
|
43
|
-
* \param level Indentation level
|
|
44
|
-
* \param object Flag to indicate whether the pair should be serialized as an object
|
|
45
|
-
* \param os An output stream to serialize into
|
|
46
|
-
*/
|
|
47
|
-
static void serialize(const std::string& key, const std::string& value, size_t level, bool object, std::ostream &os)
|
|
48
|
-
{
|
|
49
|
-
indent(level, os);
|
|
50
|
-
|
|
51
|
-
if (object) {
|
|
52
|
-
os << "{\n";
|
|
53
|
-
indent(level + 1, os);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
serialize(key, os);
|
|
57
|
-
os << ": ";
|
|
58
|
-
|
|
59
|
-
std::string normValue = EscapeDoubleQuotes(value);
|
|
60
|
-
|
|
61
|
-
if (normValue.find("\n") != std::string::npos)
|
|
62
|
-
serialize(EscapeNewlines(normValue), os);
|
|
63
|
-
else
|
|
64
|
-
serialize(normValue, os);
|
|
65
|
-
|
|
66
|
-
if (object) {
|
|
67
|
-
os << "\n";
|
|
68
|
-
indent(level, os);
|
|
69
|
-
os << "}";
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* \brief Serialize key boolean value pair into output stream
|
|
75
|
-
* \param key Key to serialize
|
|
76
|
-
* \param value Value to serialize
|
|
77
|
-
* \param level Indentation level
|
|
78
|
-
* \param os An output stream to serialize into
|
|
79
|
-
*/
|
|
80
|
-
static void serialize(const std::string& key, bool value, size_t level, std::ostream &os)
|
|
81
|
-
{
|
|
82
|
-
indent(level, os);
|
|
83
|
-
serialize(key, os);
|
|
84
|
-
os << ": ";
|
|
85
|
-
os << ((value) ? "true" : "false");
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* \brief Serialize key value pair as an object into output stream
|
|
90
|
-
* \param key Key to serialize
|
|
91
|
-
* \param value Value to serialize
|
|
92
|
-
* \param level Indentation level
|
|
93
|
-
* \param os An output stream to serialize into
|
|
94
|
-
*/
|
|
95
|
-
static void serialize(const std::string& key, const std::string& value, size_t level, std::ostream &os)
|
|
96
|
-
{
|
|
97
|
-
indent(level, os);
|
|
98
|
-
|
|
99
|
-
os << "{\n";
|
|
100
|
-
|
|
101
|
-
serialize(SerializeKey::Name, key, level + 1, false, os);
|
|
102
|
-
os << NewLineItemBlock;
|
|
103
|
-
|
|
104
|
-
serialize(SerializeKey::Value, value, level + 1, false, os);
|
|
105
|
-
os << "\n";
|
|
106
|
-
|
|
107
|
-
indent(level, os);
|
|
108
|
-
os << "}";
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
/**
|
|
112
|
-
* \brief Serialize source map without key into output stream
|
|
113
|
-
* \param set Source map
|
|
114
|
-
* \param level Indentation level
|
|
115
|
-
* \param os An output stream to serialize into
|
|
116
|
-
*/
|
|
117
|
-
static void serialize(const SourceMapBase& set, size_t level, std::ostream &os)
|
|
118
|
-
{
|
|
119
|
-
os << "[";
|
|
120
|
-
|
|
121
|
-
if (!set.sourceMap.empty()) {
|
|
122
|
-
size_t i = 0;
|
|
123
|
-
os << "\n";
|
|
124
|
-
|
|
125
|
-
for (mdp::RangeSet<mdp::BytesRange>::const_iterator it = set.sourceMap.begin(); it != set.sourceMap.end(); ++i, ++it) {
|
|
126
|
-
|
|
127
|
-
if (i > 0 && i < set.sourceMap.size())
|
|
128
|
-
os << NewLineItemBlock;
|
|
129
|
-
|
|
130
|
-
indent(level + 1, os);
|
|
131
|
-
os << "[" << it->location << ", " << it->length << "]";
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
os << std::endl;
|
|
135
|
-
indent(level, os);
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
os << "]";
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
/**
|
|
142
|
-
* \brief Serialize a key and source map value into output stream.
|
|
143
|
-
* \param key Key to serialize
|
|
144
|
-
* \param value Source Map to serialize
|
|
145
|
-
* \param level Indentation level
|
|
146
|
-
* \param object Flag to indicate whether the pair should be serialized as an object
|
|
147
|
-
* \param os An output stream to serialize into
|
|
148
|
-
*/
|
|
149
|
-
static void serialize(const std::string& key, const SourceMapBase& value, size_t level, bool object, std::ostream &os)
|
|
150
|
-
{
|
|
151
|
-
indent(level, os);
|
|
152
|
-
|
|
153
|
-
if (object) {
|
|
154
|
-
os << "{\n";
|
|
155
|
-
indent(level + 1, os);
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
serialize(key, os);
|
|
159
|
-
os << ": ";
|
|
160
|
-
|
|
161
|
-
serialize(value, level, os);
|
|
162
|
-
|
|
163
|
-
if (object) {
|
|
164
|
-
os << "\n";
|
|
165
|
-
indent(level, os);
|
|
166
|
-
os << "}";
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
/**
|
|
171
|
-
* \brief Serialize an array of source maps.
|
|
172
|
-
* \param collection Collection to serialize
|
|
173
|
-
* \param level Level of indentation
|
|
174
|
-
* \param os An output stream to serialize into
|
|
175
|
-
*/
|
|
176
|
-
static void serializeSourceMapCollection(const Collection<SourceMap<KeyValuePair> >::type& collection, size_t level, std::ostream &os)
|
|
177
|
-
{
|
|
178
|
-
os << "[";
|
|
179
|
-
|
|
180
|
-
if (!collection.empty()) {
|
|
181
|
-
os << "\n";
|
|
182
|
-
size_t i = 0;
|
|
183
|
-
|
|
184
|
-
for (Collection<SourceMap<KeyValuePair> >::const_iterator it = collection.begin(); it != collection.end(); ++i, ++it) {
|
|
185
|
-
|
|
186
|
-
if (i > 0 && i < collection.size())
|
|
187
|
-
os << NewLineItemBlock;
|
|
188
|
-
|
|
189
|
-
indent(level + 1, os);
|
|
190
|
-
serialize(*it, level + 1, os);
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
os << "\n";
|
|
194
|
-
indent(level, os);
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
os << "]";
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
/**
|
|
201
|
-
* \brief Serialize an array of key value pairs.
|
|
202
|
-
* \param collection Collection to serialize
|
|
203
|
-
* \param level Level of indentation
|
|
204
|
-
* \param os An output stream to serialize into
|
|
205
|
-
*/
|
|
206
|
-
static void serializeKeyValueCollection(const Collection<KeyValuePair>::type& collection, size_t level, std::ostream &os)
|
|
207
|
-
{
|
|
208
|
-
os << "[";
|
|
209
|
-
|
|
210
|
-
if (!collection.empty()) {
|
|
211
|
-
os << "\n";
|
|
212
|
-
size_t i = 0;
|
|
213
|
-
|
|
214
|
-
for (Collection<KeyValuePair>::const_iterator it = collection.begin(); it != collection.end(); ++i, ++it) {
|
|
215
|
-
|
|
216
|
-
if (i > 0 && i < collection.size())
|
|
217
|
-
os << NewLineItemBlock;
|
|
218
|
-
|
|
219
|
-
serialize(it->first, it->second, level + 1, os);
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
os << "\n";
|
|
223
|
-
indent(level, os);
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
os << "]";
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
/**
|
|
230
|
-
* \brief Serialize Metadata into output stream.
|
|
231
|
-
* \param metadata Metadata to serialize
|
|
232
|
-
* \param os An output stream to serialize into
|
|
233
|
-
*/
|
|
234
|
-
static void serialize(const MetadataCollection& metadata, std::ostream &os)
|
|
235
|
-
{
|
|
236
|
-
indent(1, os);
|
|
237
|
-
serialize(SerializeKey::Metadata, os);
|
|
238
|
-
os << ": ";
|
|
239
|
-
|
|
240
|
-
serializeKeyValueCollection(metadata, 1, os);
|
|
241
|
-
|
|
242
|
-
os << NewLineItemBlock;
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
/**
|
|
246
|
-
* \brief Serialize Metadata source map into output stream.
|
|
247
|
-
* \param metadata Metadata source map to serialize
|
|
248
|
-
* \param os An output stream to serialize into
|
|
249
|
-
*/
|
|
250
|
-
static void serialize(const Collection<SourceMap<Metadata> >::type& metadata, std::ostream &os)
|
|
251
|
-
{
|
|
252
|
-
indent(1, os);
|
|
253
|
-
serialize(SerializeKey::Metadata, os);
|
|
254
|
-
os << ": ";
|
|
255
|
-
|
|
256
|
-
serializeSourceMapCollection(metadata, 1, os);
|
|
257
|
-
|
|
258
|
-
os << NewLineItemBlock;
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
/**
|
|
262
|
-
* \brief Serialize Parameters into output stream.
|
|
263
|
-
* \param prarameters Parameters to serialize.
|
|
264
|
-
* \param level Level of indentation.
|
|
265
|
-
* \param os An output stream to serialize into.
|
|
266
|
-
*/
|
|
267
|
-
static void serialize(const Parameters& parameters, size_t level, std::ostream &os)
|
|
268
|
-
{
|
|
269
|
-
indent(level, os);
|
|
270
|
-
serialize(SerializeKey::Parameters, os);
|
|
271
|
-
os << ": [";
|
|
272
|
-
|
|
273
|
-
if (!parameters.empty()) {
|
|
274
|
-
os << "\n";
|
|
275
|
-
size_t i = 0;
|
|
276
|
-
|
|
277
|
-
for (Collection<Parameter>::const_iterator it = parameters.begin(); it != parameters.end(); ++i, ++it) {
|
|
278
|
-
|
|
279
|
-
if (i > 0 && i < parameters.size())
|
|
280
|
-
os << NewLineItemBlock;
|
|
281
|
-
|
|
282
|
-
indent(level + 1, os);
|
|
283
|
-
os << "{\n";
|
|
284
|
-
|
|
285
|
-
// Name
|
|
286
|
-
serialize(SerializeKey::Name, it->name, level + 2, false, os);
|
|
287
|
-
os << NewLineItemBlock;
|
|
288
|
-
|
|
289
|
-
// Description
|
|
290
|
-
serialize(SerializeKey::Description, it->description, level + 2, false, os);
|
|
291
|
-
os << NewLineItemBlock;
|
|
292
|
-
|
|
293
|
-
// Type
|
|
294
|
-
serialize(SerializeKey::Type, it->type, level + 2, false, os);
|
|
295
|
-
os << NewLineItemBlock;
|
|
296
|
-
|
|
297
|
-
// Requried
|
|
298
|
-
serialize(SerializeKey::Required, (it->use != OptionalParameterUse), level + 2, os);
|
|
299
|
-
os << NewLineItemBlock;
|
|
300
|
-
|
|
301
|
-
// Default
|
|
302
|
-
serialize(SerializeKey::Default, it->defaultValue, level + 2, false, os);
|
|
303
|
-
os << NewLineItemBlock;
|
|
304
|
-
|
|
305
|
-
// Example
|
|
306
|
-
serialize(SerializeKey::Example, it->exampleValue, level + 2, false, os);
|
|
307
|
-
os << NewLineItemBlock;
|
|
308
|
-
|
|
309
|
-
// Values
|
|
310
|
-
indent(level + 2, os);
|
|
311
|
-
serialize(SerializeKey::Values, os);
|
|
312
|
-
os << ": [";
|
|
313
|
-
|
|
314
|
-
if (!it->values.empty()) {
|
|
315
|
-
os << "\n";
|
|
316
|
-
size_t j = 0;
|
|
317
|
-
|
|
318
|
-
for (Collection<Value>::const_iterator val_it = it->values.begin();
|
|
319
|
-
val_it != it->values.end();
|
|
320
|
-
++j, ++val_it) {
|
|
321
|
-
|
|
322
|
-
if (j > 0 && j < it->values.size())
|
|
323
|
-
os << NewLineItemBlock;
|
|
324
|
-
|
|
325
|
-
serialize(SerializeKey::Value, *val_it, level + 3, true, os);
|
|
326
|
-
}
|
|
327
|
-
|
|
328
|
-
os << "\n";
|
|
329
|
-
indent(level + 2, os);
|
|
330
|
-
}
|
|
331
|
-
|
|
332
|
-
// Close Values
|
|
333
|
-
os << "]";
|
|
334
|
-
|
|
335
|
-
// Close Key / name object
|
|
336
|
-
os << "\n";
|
|
337
|
-
indent(level + 1, os);
|
|
338
|
-
os << "}";
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
os << std::endl;
|
|
342
|
-
indent(level, os);
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
os << "]";
|
|
346
|
-
}
|
|
347
|
-
|
|
348
|
-
/**
|
|
349
|
-
* \brief Serialize Parameters source map into output stream.
|
|
350
|
-
* \param prarameters Parameters source map to serialize.
|
|
351
|
-
* \param level Level of indentation.
|
|
352
|
-
* \param os An output stream to serialize into.
|
|
353
|
-
*/
|
|
354
|
-
static void serialize(const Collection<SourceMap<Parameter> >::type& parameters, size_t level, std::ostream &os)
|
|
355
|
-
{
|
|
356
|
-
indent(level, os);
|
|
357
|
-
serialize(SerializeKey::Parameters, os);
|
|
358
|
-
os << ": [";
|
|
359
|
-
|
|
360
|
-
if (!parameters.empty()) {
|
|
361
|
-
os << "\n";
|
|
362
|
-
size_t i = 0;
|
|
363
|
-
|
|
364
|
-
for (Collection<SourceMap<Parameter> >::const_iterator it = parameters.begin(); it != parameters.end(); ++i, ++it) {
|
|
365
|
-
|
|
366
|
-
if (i > 0 && i < parameters.size())
|
|
367
|
-
os << NewLineItemBlock;
|
|
368
|
-
|
|
369
|
-
indent(level + 1, os);
|
|
370
|
-
os << "{\n";
|
|
371
|
-
|
|
372
|
-
// Name
|
|
373
|
-
serialize(SerializeKey::Name, it->name, level + 2, false, os);
|
|
374
|
-
os << NewLineItemBlock;
|
|
375
|
-
|
|
376
|
-
// Description
|
|
377
|
-
serialize(SerializeKey::Description, it->description, level + 2, false, os);
|
|
378
|
-
os << NewLineItemBlock;
|
|
379
|
-
|
|
380
|
-
// Type
|
|
381
|
-
serialize(SerializeKey::Type, it->type, level + 2, false, os);
|
|
382
|
-
os << NewLineItemBlock;
|
|
383
|
-
|
|
384
|
-
// Requried
|
|
385
|
-
serialize(SerializeKey::Required, it->use, level + 2, false, os);
|
|
386
|
-
os << NewLineItemBlock;
|
|
387
|
-
|
|
388
|
-
// Default
|
|
389
|
-
serialize(SerializeKey::Default, it->defaultValue, level + 2, false, os);
|
|
390
|
-
os << NewLineItemBlock;
|
|
391
|
-
|
|
392
|
-
// Example
|
|
393
|
-
serialize(SerializeKey::Example, it->exampleValue, level + 2, false, os);
|
|
394
|
-
os << NewLineItemBlock;
|
|
395
|
-
|
|
396
|
-
// Values
|
|
397
|
-
indent(level + 2, os);
|
|
398
|
-
serialize(SerializeKey::Values, os);
|
|
399
|
-
os << ": [";
|
|
400
|
-
|
|
401
|
-
if (!it->values.collection.empty()) {
|
|
402
|
-
os << "\n";
|
|
403
|
-
size_t j = 0;
|
|
404
|
-
|
|
405
|
-
indent(level + 3, os);
|
|
406
|
-
|
|
407
|
-
for (Collection<SourceMap<Value> >::const_iterator val_it = it->values.collection.begin();
|
|
408
|
-
val_it != it->values.collection.end();
|
|
409
|
-
++j, ++val_it) {
|
|
410
|
-
|
|
411
|
-
if (j > 0 && j < it->values.collection.size())
|
|
412
|
-
os << NewLineItemBlock;
|
|
413
|
-
|
|
414
|
-
serialize(*val_it, level + 3, os);
|
|
415
|
-
}
|
|
416
|
-
|
|
417
|
-
os << "\n";
|
|
418
|
-
indent(level + 2, os);
|
|
419
|
-
}
|
|
420
|
-
|
|
421
|
-
// Close Values
|
|
422
|
-
os << "]";
|
|
423
|
-
|
|
424
|
-
// Close Key / name object
|
|
425
|
-
os << "\n";
|
|
426
|
-
indent(level + 1, os);
|
|
427
|
-
os << "}";
|
|
428
|
-
}
|
|
429
|
-
|
|
430
|
-
os << std::endl;
|
|
431
|
-
indent(level, os);
|
|
432
|
-
}
|
|
433
|
-
|
|
434
|
-
os << "]";
|
|
435
|
-
}
|
|
436
|
-
|
|
437
|
-
/**
|
|
438
|
-
* \brief Serialize HTTP headers into output stream.
|
|
439
|
-
* \param headers Headers to serialize.
|
|
440
|
-
* \param level Level of indentation.
|
|
441
|
-
* \param os An output stream to serialize into.
|
|
442
|
-
*/
|
|
443
|
-
static void serialize(const Headers& headers, size_t level, std::ostream &os)
|
|
444
|
-
{
|
|
445
|
-
indent(level, os);
|
|
446
|
-
serialize(SerializeKey::Headers, os);
|
|
447
|
-
os << ": ";
|
|
448
|
-
|
|
449
|
-
serializeKeyValueCollection(headers, level, os);
|
|
450
|
-
}
|
|
451
|
-
|
|
452
|
-
/**
|
|
453
|
-
* \brief Serialize HTTP headers source map into output stream.
|
|
454
|
-
* \param headers Headers source map to serialize.
|
|
455
|
-
* \param level Level of indentation.
|
|
456
|
-
* \param os An output stream to serialize into.
|
|
457
|
-
*/
|
|
458
|
-
static void serialize(const Collection<SourceMap<Header> >::type& headers, size_t level, std::ostream &os)
|
|
459
|
-
{
|
|
460
|
-
indent(level, os);
|
|
461
|
-
serialize(SerializeKey::Headers, os);
|
|
462
|
-
os << ": ";
|
|
463
|
-
|
|
464
|
-
serializeSourceMapCollection(headers, level, os);
|
|
465
|
-
}
|
|
466
|
-
|
|
467
|
-
/**
|
|
468
|
-
* \brief Serialize a reference into output stream.
|
|
469
|
-
* \param reference A reference to serialize.
|
|
470
|
-
* \param os An output stream to serialize into.
|
|
471
|
-
*/
|
|
472
|
-
static void serialize(const Reference& reference, size_t level, std::ostream &os)
|
|
473
|
-
{
|
|
474
|
-
|
|
475
|
-
if (reference.id.empty()) {
|
|
476
|
-
return;
|
|
477
|
-
}
|
|
478
|
-
|
|
479
|
-
indent(level, os);
|
|
480
|
-
os << "\"" << SerializeKey::Reference << "\": {\n";
|
|
481
|
-
|
|
482
|
-
serialize(SerializeKey::Id, reference.id, level + 1, false, os);
|
|
483
|
-
os << "\n";
|
|
484
|
-
|
|
485
|
-
indent(level, os);
|
|
486
|
-
os << "}";
|
|
487
|
-
|
|
488
|
-
os << NewLineItemBlock;
|
|
489
|
-
}
|
|
490
|
-
|
|
491
|
-
/**
|
|
492
|
-
* \brief Serialize a reference source map into output stream.
|
|
493
|
-
* \param reference A reference source map to serialize.
|
|
494
|
-
* \param os An output stream to serialize into.
|
|
495
|
-
*/
|
|
496
|
-
static void serialize(const SourceMap<Reference>& reference, size_t level, std::ostream &os)
|
|
497
|
-
{
|
|
498
|
-
|
|
499
|
-
if (reference.sourceMap.empty()) {
|
|
500
|
-
return;
|
|
501
|
-
}
|
|
502
|
-
|
|
503
|
-
serialize(SerializeKey::Reference, reference, level, false, os);
|
|
504
|
-
os << NewLineItemBlock;
|
|
505
|
-
}
|
|
506
|
-
|
|
507
|
-
/**
|
|
508
|
-
* \brief Serialize a payload into output stream.
|
|
509
|
-
* \param payload A payload to serialize.
|
|
510
|
-
* \param os An output stream to serialize into.
|
|
511
|
-
*/
|
|
512
|
-
static void serialize(const Payload& payload, size_t level, std::ostream &os)
|
|
513
|
-
{
|
|
514
|
-
os << "{\n";
|
|
515
|
-
|
|
516
|
-
// Name
|
|
517
|
-
serialize(SerializeKey::Name, payload.name, level + 1, false, os);
|
|
518
|
-
os << NewLineItemBlock;
|
|
519
|
-
|
|
520
|
-
// Reference
|
|
521
|
-
serialize(payload.reference, level + 1, os);
|
|
522
|
-
|
|
523
|
-
// Description
|
|
524
|
-
serialize(SerializeKey::Description, payload.description, level + 1, false, os);
|
|
525
|
-
os << NewLineItemBlock;
|
|
526
|
-
|
|
527
|
-
// Headers
|
|
528
|
-
serialize(payload.headers, level + 1, os);
|
|
529
|
-
os << NewLineItemBlock;
|
|
530
|
-
|
|
531
|
-
// Body
|
|
532
|
-
serialize(SerializeKey::Body, payload.body, level + 1, false, os);
|
|
533
|
-
os << NewLineItemBlock;
|
|
534
|
-
|
|
535
|
-
// Schema
|
|
536
|
-
serialize(SerializeKey::Schema, payload.schema, level + 1, false, os);
|
|
537
|
-
|
|
538
|
-
os << "\n";
|
|
539
|
-
indent(level, os);
|
|
540
|
-
os << "}";
|
|
541
|
-
}
|
|
542
|
-
|
|
543
|
-
/**
|
|
544
|
-
* \brief Serialize a payload source map into output stream.
|
|
545
|
-
* \param payload A payload source map to serialize.
|
|
546
|
-
* \param os An output stream to serialize into.
|
|
547
|
-
*/
|
|
548
|
-
static void serialize(const SourceMap<Payload>& payload, size_t level, std::ostream &os)
|
|
549
|
-
{
|
|
550
|
-
os << "{\n";
|
|
551
|
-
|
|
552
|
-
// Name
|
|
553
|
-
serialize(SerializeKey::Name, payload.name, level + 1, false, os);
|
|
554
|
-
os << NewLineItemBlock;
|
|
555
|
-
|
|
556
|
-
// Symbol Reference
|
|
557
|
-
serialize(payload.reference, level + 1, os);
|
|
558
|
-
|
|
559
|
-
// Description
|
|
560
|
-
serialize(SerializeKey::Description, payload.description, level + 1, false, os);
|
|
561
|
-
os << NewLineItemBlock;
|
|
562
|
-
|
|
563
|
-
// Headers
|
|
564
|
-
serialize(payload.headers.collection, level + 1, os);
|
|
565
|
-
os << NewLineItemBlock;
|
|
566
|
-
|
|
567
|
-
// Body
|
|
568
|
-
serialize(SerializeKey::Body, payload.body, level + 1, false, os);
|
|
569
|
-
os << NewLineItemBlock;
|
|
570
|
-
|
|
571
|
-
// Schema
|
|
572
|
-
serialize(SerializeKey::Schema, payload.schema, level + 1, false, os);
|
|
573
|
-
|
|
574
|
-
os << "\n";
|
|
575
|
-
indent(level, os);
|
|
576
|
-
os << "}";
|
|
577
|
-
}
|
|
578
|
-
|
|
579
|
-
/**
|
|
580
|
-
* \brief Serialize a transaction example into output stream.
|
|
581
|
-
* \param transaction A transaction example to serialize.
|
|
582
|
-
* \param os An output stream to serialize into.
|
|
583
|
-
*/
|
|
584
|
-
static void serialize(const TransactionExample& example, std::ostream &os)
|
|
585
|
-
{
|
|
586
|
-
indent(8, os);
|
|
587
|
-
os << "{\n";
|
|
588
|
-
|
|
589
|
-
// Name
|
|
590
|
-
serialize(SerializeKey::Name, example.name, 9, false, os);
|
|
591
|
-
os << NewLineItemBlock;
|
|
592
|
-
|
|
593
|
-
// Description
|
|
594
|
-
serialize(SerializeKey::Description, example.description, 9, false, os);
|
|
595
|
-
os << NewLineItemBlock;
|
|
596
|
-
|
|
597
|
-
// Requests
|
|
598
|
-
indent(9, os);
|
|
599
|
-
serialize(SerializeKey::Requests, os);
|
|
600
|
-
os << ": ";
|
|
601
|
-
os << "[";
|
|
602
|
-
|
|
603
|
-
if (!example.requests.empty()) {
|
|
604
|
-
os << "\n";
|
|
605
|
-
size_t i = 0;
|
|
606
|
-
|
|
607
|
-
for (Collection<Request>::const_iterator it = example.requests.begin();
|
|
608
|
-
it != example.requests.end();
|
|
609
|
-
++i, ++it) {
|
|
610
|
-
|
|
611
|
-
if (i > 0 && i < example.requests.size())
|
|
612
|
-
os << NewLineItemBlock;
|
|
613
|
-
|
|
614
|
-
indent(10, os);
|
|
615
|
-
serialize(*it, 10, os);
|
|
616
|
-
}
|
|
617
|
-
|
|
618
|
-
os << "\n";
|
|
619
|
-
indent(9, os);
|
|
620
|
-
}
|
|
621
|
-
os << "]";
|
|
622
|
-
os << NewLineItemBlock;
|
|
623
|
-
|
|
624
|
-
// Responses
|
|
625
|
-
indent(9, os);
|
|
626
|
-
serialize(SerializeKey::Responses, os);
|
|
627
|
-
os << ": ";
|
|
628
|
-
os << "[";
|
|
629
|
-
|
|
630
|
-
if (!example.responses.empty()) {
|
|
631
|
-
os << "\n";
|
|
632
|
-
size_t i = 0;
|
|
633
|
-
|
|
634
|
-
for (Collection<Response>::const_iterator it = example.responses.begin();
|
|
635
|
-
it != example.responses.end();
|
|
636
|
-
++i, ++it) {
|
|
637
|
-
|
|
638
|
-
if (i > 0 && i < example.responses.size())
|
|
639
|
-
os << NewLineItemBlock;
|
|
640
|
-
|
|
641
|
-
indent(10, os);
|
|
642
|
-
serialize(*it, 10, os);
|
|
643
|
-
}
|
|
644
|
-
|
|
645
|
-
os << "\n";
|
|
646
|
-
indent(9, os);
|
|
647
|
-
}
|
|
648
|
-
os << "]";
|
|
649
|
-
|
|
650
|
-
// Close the transaction
|
|
651
|
-
os << "\n";
|
|
652
|
-
indent(8, os);
|
|
653
|
-
os << "}";
|
|
654
|
-
}
|
|
655
|
-
|
|
656
|
-
/**
|
|
657
|
-
* \brief Serialize a transaction example source map into output stream.
|
|
658
|
-
* \param transaction A transaction example source map to serialize.
|
|
659
|
-
* \param os An output stream to serialize into.
|
|
660
|
-
*/
|
|
661
|
-
static void serialize(const SourceMap<TransactionExample>& example, std::ostream &os)
|
|
662
|
-
{
|
|
663
|
-
indent(8, os);
|
|
664
|
-
os << "{\n";
|
|
665
|
-
|
|
666
|
-
// Name
|
|
667
|
-
serialize(SerializeKey::Name, example.name, 9, false, os);
|
|
668
|
-
os << NewLineItemBlock;
|
|
669
|
-
|
|
670
|
-
// Description
|
|
671
|
-
serialize(SerializeKey::Description, example.description, 9, false, os);
|
|
672
|
-
os << NewLineItemBlock;
|
|
673
|
-
|
|
674
|
-
// Requests
|
|
675
|
-
indent(9, os);
|
|
676
|
-
serialize(SerializeKey::Requests, os);
|
|
677
|
-
os << ": ";
|
|
678
|
-
os << "[";
|
|
679
|
-
|
|
680
|
-
if (!example.requests.collection.empty()) {
|
|
681
|
-
os << "\n";
|
|
682
|
-
size_t i = 0;
|
|
683
|
-
|
|
684
|
-
for (Collection<SourceMap<Request> >::const_iterator it = example.requests.collection.begin();
|
|
685
|
-
it != example.requests.collection.end();
|
|
686
|
-
++i, ++it) {
|
|
687
|
-
|
|
688
|
-
if (i > 0 && i < example.requests.collection.size())
|
|
689
|
-
os << NewLineItemBlock;
|
|
690
|
-
|
|
691
|
-
indent(10, os);
|
|
692
|
-
serialize(*it, 10, os);
|
|
693
|
-
}
|
|
694
|
-
|
|
695
|
-
os << "\n";
|
|
696
|
-
indent(9, os);
|
|
697
|
-
}
|
|
698
|
-
os << "]";
|
|
699
|
-
os << NewLineItemBlock;
|
|
700
|
-
|
|
701
|
-
// Responses
|
|
702
|
-
indent(9, os);
|
|
703
|
-
serialize(SerializeKey::Responses, os);
|
|
704
|
-
os << ": ";
|
|
705
|
-
os << "[";
|
|
706
|
-
|
|
707
|
-
if (!example.responses.collection.empty()) {
|
|
708
|
-
os << "\n";
|
|
709
|
-
size_t i = 0;
|
|
710
|
-
|
|
711
|
-
for (Collection<SourceMap<Response> >::const_iterator it = example.responses.collection.begin();
|
|
712
|
-
it != example.responses.collection.end();
|
|
713
|
-
++i, ++it) {
|
|
714
|
-
|
|
715
|
-
if (i > 0 && i < example.responses.collection.size())
|
|
716
|
-
os << NewLineItemBlock;
|
|
717
|
-
|
|
718
|
-
indent(10, os);
|
|
719
|
-
serialize(*it, 10, os);
|
|
720
|
-
}
|
|
721
|
-
|
|
722
|
-
os << "\n";
|
|
723
|
-
indent(9, os);
|
|
724
|
-
}
|
|
725
|
-
os << "]";
|
|
726
|
-
|
|
727
|
-
// Close the transaction
|
|
728
|
-
os << "\n";
|
|
729
|
-
indent(8, os);
|
|
730
|
-
os << "}";
|
|
731
|
-
}
|
|
732
|
-
|
|
733
|
-
/**
|
|
734
|
-
* \brief Serialize an action into output stream.
|
|
735
|
-
* \param action The action to serialize.
|
|
736
|
-
* \param os An output stream to serialize into.
|
|
737
|
-
*/
|
|
738
|
-
static void serialize(const Action& action, std::ostream &os)
|
|
739
|
-
{
|
|
740
|
-
indent(6, os);
|
|
741
|
-
os << "{\n";
|
|
742
|
-
|
|
743
|
-
// Name
|
|
744
|
-
serialize(SerializeKey::Name, action.name, 7, false, os);
|
|
745
|
-
os << NewLineItemBlock;
|
|
746
|
-
|
|
747
|
-
// Description
|
|
748
|
-
serialize(SerializeKey::Description, action.description, 7, false, os);
|
|
749
|
-
os << NewLineItemBlock;
|
|
750
|
-
|
|
751
|
-
// HTTP Method
|
|
752
|
-
serialize(SerializeKey::Method, action.method, 7, false, os);
|
|
753
|
-
os << NewLineItemBlock;
|
|
754
|
-
|
|
755
|
-
// Parameters
|
|
756
|
-
serialize(action.parameters, 7, os);
|
|
757
|
-
os << NewLineItemBlock;
|
|
758
|
-
|
|
759
|
-
// Transactions
|
|
760
|
-
indent(7, os);
|
|
761
|
-
serialize(SerializeKey::Examples, os);
|
|
762
|
-
os << ": ";
|
|
763
|
-
os << "[";
|
|
764
|
-
|
|
765
|
-
if (!action.examples.empty()) {
|
|
766
|
-
os << "\n";
|
|
767
|
-
size_t i = 0;
|
|
768
|
-
|
|
769
|
-
for (Collection<TransactionExample>::const_iterator it = action.examples.begin();
|
|
770
|
-
it != action.examples.end();
|
|
771
|
-
++i, ++it) {
|
|
772
|
-
|
|
773
|
-
if (i > 0 && i < action.examples.size())
|
|
774
|
-
os << NewLineItemBlock;
|
|
775
|
-
|
|
776
|
-
serialize(*it, os);
|
|
777
|
-
}
|
|
778
|
-
|
|
779
|
-
os << "\n";
|
|
780
|
-
indent(7, os);
|
|
781
|
-
}
|
|
782
|
-
|
|
783
|
-
os << "]";
|
|
784
|
-
|
|
785
|
-
// Close the action
|
|
786
|
-
os << "\n";
|
|
787
|
-
indent(6, os);
|
|
788
|
-
os << "}";
|
|
789
|
-
}
|
|
790
|
-
|
|
791
|
-
/**
|
|
792
|
-
* \brief Serialize an action source map into output stream.
|
|
793
|
-
* \param action The action source map to serialize.
|
|
794
|
-
* \param os An output stream to serialize into.
|
|
795
|
-
*/
|
|
796
|
-
static void serialize(const SourceMap<Action>& action, std::ostream &os)
|
|
797
|
-
{
|
|
798
|
-
indent(6, os);
|
|
799
|
-
os << "{\n";
|
|
800
|
-
|
|
801
|
-
// Name
|
|
802
|
-
serialize(SerializeKey::Name, action.name, 7, false, os);
|
|
803
|
-
os << NewLineItemBlock;
|
|
804
|
-
|
|
805
|
-
// Description
|
|
806
|
-
serialize(SerializeKey::Description, action.description, 7, false, os);
|
|
807
|
-
os << NewLineItemBlock;
|
|
808
|
-
|
|
809
|
-
// HTTP Method
|
|
810
|
-
serialize(SerializeKey::Method, action.method, 7, false, os);
|
|
811
|
-
os << NewLineItemBlock;
|
|
812
|
-
|
|
813
|
-
// Parameters
|
|
814
|
-
serialize(action.parameters.collection, 7, os);
|
|
815
|
-
os << NewLineItemBlock;
|
|
816
|
-
|
|
817
|
-
// Transactions
|
|
818
|
-
indent(7, os);
|
|
819
|
-
serialize(SerializeKey::Examples, os);
|
|
820
|
-
os << ": ";
|
|
821
|
-
os << "[";
|
|
822
|
-
|
|
823
|
-
if (!action.examples.collection.empty()) {
|
|
824
|
-
os << "\n";
|
|
825
|
-
size_t i = 0;
|
|
826
|
-
|
|
827
|
-
for (Collection<SourceMap<TransactionExample> >::const_iterator it = action.examples.collection.begin();
|
|
828
|
-
it != action.examples.collection.end();
|
|
829
|
-
++i, ++it) {
|
|
830
|
-
|
|
831
|
-
if (i > 0 && i < action.examples.collection.size())
|
|
832
|
-
os << NewLineItemBlock;
|
|
833
|
-
|
|
834
|
-
serialize(*it, os);
|
|
835
|
-
}
|
|
836
|
-
|
|
837
|
-
os << "\n";
|
|
838
|
-
indent(7, os);
|
|
839
|
-
}
|
|
840
|
-
|
|
841
|
-
os << "]";
|
|
842
|
-
|
|
843
|
-
// Close the action
|
|
844
|
-
os << "\n";
|
|
845
|
-
indent(6, os);
|
|
846
|
-
os << "}";
|
|
847
|
-
}
|
|
848
|
-
|
|
849
|
-
/**
|
|
850
|
-
* \brief Serialize a resource into output stream.
|
|
851
|
-
* \param resource A resource to serialize
|
|
852
|
-
* \param os An output stream to serialize into
|
|
853
|
-
*/
|
|
854
|
-
static void serialize(const Resource& resource, std::ostream &os)
|
|
855
|
-
{
|
|
856
|
-
indent(4, os);
|
|
857
|
-
os << "{\n";
|
|
858
|
-
|
|
859
|
-
// Name
|
|
860
|
-
serialize(SerializeKey::Name, resource.name, 5, false, os);
|
|
861
|
-
os << NewLineItemBlock;
|
|
862
|
-
|
|
863
|
-
// Description
|
|
864
|
-
serialize(SerializeKey::Description, resource.description, 5, false, os);
|
|
865
|
-
os << NewLineItemBlock;
|
|
866
|
-
|
|
867
|
-
// URI template
|
|
868
|
-
serialize(SerializeKey::URITemplate, resource.uriTemplate, 5, false, os);
|
|
869
|
-
os << NewLineItemBlock;
|
|
870
|
-
|
|
871
|
-
// Model
|
|
872
|
-
indent(5, os);
|
|
873
|
-
serialize(SerializeKey::Model, os);
|
|
874
|
-
if (resource.model.name.empty()) {
|
|
875
|
-
os << ": {}";
|
|
876
|
-
}
|
|
877
|
-
else {
|
|
878
|
-
os << ": ";
|
|
879
|
-
|
|
880
|
-
serialize(resource.model, 5, os);
|
|
881
|
-
}
|
|
882
|
-
os << NewLineItemBlock;
|
|
883
|
-
|
|
884
|
-
// Parameters
|
|
885
|
-
serialize(resource.parameters, 5, os);
|
|
886
|
-
os << NewLineItemBlock;
|
|
887
|
-
|
|
888
|
-
// Actions
|
|
889
|
-
indent(5, os);
|
|
890
|
-
serialize(SerializeKey::Actions, os);
|
|
891
|
-
os << ": ";
|
|
892
|
-
os << "[";
|
|
893
|
-
|
|
894
|
-
if (!resource.actions.empty()) {
|
|
895
|
-
os << "\n";
|
|
896
|
-
size_t i = 0;
|
|
897
|
-
|
|
898
|
-
for (Collection<Action>::const_iterator it = resource.actions.begin();
|
|
899
|
-
it != resource.actions.end();
|
|
900
|
-
++i, ++it) {
|
|
901
|
-
|
|
902
|
-
if (i > 0 && i < resource.actions.size())
|
|
903
|
-
os << NewLineItemBlock;
|
|
904
|
-
|
|
905
|
-
serialize(*it, os);
|
|
906
|
-
}
|
|
907
|
-
|
|
908
|
-
os << "\n";
|
|
909
|
-
indent(5, os);
|
|
910
|
-
}
|
|
911
|
-
|
|
912
|
-
os << "]";
|
|
913
|
-
|
|
914
|
-
// Close the resource
|
|
915
|
-
os << "\n";
|
|
916
|
-
indent(4, os);
|
|
917
|
-
os << "}";
|
|
918
|
-
}
|
|
919
|
-
|
|
920
|
-
/**
|
|
921
|
-
* \brief Serialize a resource source map into output stream.
|
|
922
|
-
* \param resource A resource source map to serialize
|
|
923
|
-
* \param os An output stream to serialize into
|
|
924
|
-
*/
|
|
925
|
-
static void serialize(const SourceMap<Resource>& resource, std::ostream &os)
|
|
926
|
-
{
|
|
927
|
-
indent(4, os);
|
|
928
|
-
os << "{\n";
|
|
929
|
-
|
|
930
|
-
// Name
|
|
931
|
-
serialize(SerializeKey::Name, resource.name, 5, false, os);
|
|
932
|
-
os << NewLineItemBlock;
|
|
933
|
-
|
|
934
|
-
// Description
|
|
935
|
-
serialize(SerializeKey::Description, resource.description, 5, false, os);
|
|
936
|
-
os << NewLineItemBlock;
|
|
937
|
-
|
|
938
|
-
// URI template
|
|
939
|
-
serialize(SerializeKey::URITemplate, resource.uriTemplate, 5, false, os);
|
|
940
|
-
os << NewLineItemBlock;
|
|
941
|
-
|
|
942
|
-
// Model
|
|
943
|
-
indent(5, os);
|
|
944
|
-
serialize(SerializeKey::Model, os);
|
|
945
|
-
if (resource.model.name.sourceMap.empty()) {
|
|
946
|
-
os << ": {}";
|
|
947
|
-
}
|
|
948
|
-
else {
|
|
949
|
-
os << ": ";
|
|
950
|
-
|
|
951
|
-
serialize(resource.model, 5, os);
|
|
952
|
-
}
|
|
953
|
-
os << NewLineItemBlock;
|
|
954
|
-
|
|
955
|
-
// Parameters
|
|
956
|
-
serialize(resource.parameters.collection, 5, os);
|
|
957
|
-
os << NewLineItemBlock;
|
|
958
|
-
|
|
959
|
-
// Actions
|
|
960
|
-
indent(5, os);
|
|
961
|
-
serialize(SerializeKey::Actions, os);
|
|
962
|
-
os << ": ";
|
|
963
|
-
os << "[";
|
|
964
|
-
|
|
965
|
-
if (!resource.actions.collection.empty()) {
|
|
966
|
-
os << "\n";
|
|
967
|
-
size_t i = 0;
|
|
968
|
-
|
|
969
|
-
for (Collection<SourceMap<Action> >::const_iterator it = resource.actions.collection.begin();
|
|
970
|
-
it != resource.actions.collection.end();
|
|
971
|
-
++i, ++it) {
|
|
972
|
-
|
|
973
|
-
if (i > 0 && i < resource.actions.collection.size())
|
|
974
|
-
os << NewLineItemBlock;
|
|
975
|
-
|
|
976
|
-
serialize(*it, os);
|
|
977
|
-
}
|
|
978
|
-
|
|
979
|
-
os << "\n";
|
|
980
|
-
indent(5, os);
|
|
981
|
-
}
|
|
982
|
-
|
|
983
|
-
os << "]";
|
|
984
|
-
|
|
985
|
-
// Close the resource
|
|
986
|
-
os << "\n";
|
|
987
|
-
indent(4, os);
|
|
988
|
-
os << "}";
|
|
989
|
-
}
|
|
990
|
-
|
|
991
|
-
/**
|
|
992
|
-
* \brief Serialize a group of resources into output stream.
|
|
993
|
-
* \param resourceGroup A group to serialize.
|
|
994
|
-
* \brief os An output stream to serialize into.
|
|
995
|
-
*/
|
|
996
|
-
static void serialize(const ResourceGroup& resourceGroup, std::ostream &os)
|
|
997
|
-
{
|
|
998
|
-
indent(2, os);
|
|
999
|
-
os << "{\n";
|
|
1000
|
-
|
|
1001
|
-
// Name
|
|
1002
|
-
serialize(SerializeKey::Name, resourceGroup.name, 3, false, os);
|
|
1003
|
-
os << NewLineItemBlock;
|
|
1004
|
-
|
|
1005
|
-
// Description
|
|
1006
|
-
serialize(SerializeKey::Description, resourceGroup.description, 3, false, os);
|
|
1007
|
-
os << NewLineItemBlock;
|
|
1008
|
-
|
|
1009
|
-
// Resources
|
|
1010
|
-
indent(3, os);
|
|
1011
|
-
serialize(SerializeKey::Resources, os);
|
|
1012
|
-
os << ": ";
|
|
1013
|
-
os << "[";
|
|
1014
|
-
|
|
1015
|
-
if (!resourceGroup.resources.empty()) {
|
|
1016
|
-
os << "\n";
|
|
1017
|
-
size_t i = 0;
|
|
1018
|
-
|
|
1019
|
-
for (Collection<Resource>::const_iterator it = resourceGroup.resources.begin();
|
|
1020
|
-
it != resourceGroup.resources.end();
|
|
1021
|
-
++i, ++it) {
|
|
1022
|
-
|
|
1023
|
-
if (i > 0 && i < resourceGroup.resources.size())
|
|
1024
|
-
os << NewLineItemBlock;
|
|
1025
|
-
|
|
1026
|
-
serialize(*it, os);
|
|
1027
|
-
}
|
|
1028
|
-
|
|
1029
|
-
if (!resourceGroup.resources.empty()) {
|
|
1030
|
-
os << "\n";
|
|
1031
|
-
indent(3, os);
|
|
1032
|
-
}
|
|
1033
|
-
}
|
|
1034
|
-
|
|
1035
|
-
os << "]";
|
|
1036
|
-
|
|
1037
|
-
// Close the group
|
|
1038
|
-
os << "\n";
|
|
1039
|
-
indent(2, os);
|
|
1040
|
-
os << "}";
|
|
1041
|
-
}
|
|
1042
|
-
|
|
1043
|
-
/**
|
|
1044
|
-
* \brief Serialize a source map of group of resources into output stream.
|
|
1045
|
-
* \param resourceGroup Source map of a group to serialize.
|
|
1046
|
-
* \brief os An output stream to serialize into.
|
|
1047
|
-
*/
|
|
1048
|
-
static void serialize(const SourceMap<ResourceGroup>& resourceGroup, std::ostream &os)
|
|
1049
|
-
{
|
|
1050
|
-
indent(2, os);
|
|
1051
|
-
os << "{\n";
|
|
1052
|
-
|
|
1053
|
-
// Name
|
|
1054
|
-
serialize(SerializeKey::Name, resourceGroup.name, 3, false, os);
|
|
1055
|
-
os << NewLineItemBlock;
|
|
1056
|
-
|
|
1057
|
-
// Description
|
|
1058
|
-
serialize(SerializeKey::Description, resourceGroup.description, 3, false, os);
|
|
1059
|
-
os << NewLineItemBlock;
|
|
1060
|
-
|
|
1061
|
-
// Resources
|
|
1062
|
-
indent(3, os);
|
|
1063
|
-
serialize(SerializeKey::Resources, os);
|
|
1064
|
-
os << ": ";
|
|
1065
|
-
os << "[";
|
|
1066
|
-
|
|
1067
|
-
if (!resourceGroup.resources.collection.empty()) {
|
|
1068
|
-
os << "\n";
|
|
1069
|
-
size_t i = 0;
|
|
1070
|
-
|
|
1071
|
-
for (Collection<SourceMap<Resource> >::const_iterator it = resourceGroup.resources.collection.begin();
|
|
1072
|
-
it != resourceGroup.resources.collection.end();
|
|
1073
|
-
++i, ++it) {
|
|
1074
|
-
|
|
1075
|
-
if (i > 0 && i < resourceGroup.resources.collection.size())
|
|
1076
|
-
os << NewLineItemBlock;
|
|
1077
|
-
|
|
1078
|
-
serialize(*it, os);
|
|
1079
|
-
}
|
|
1080
|
-
|
|
1081
|
-
if (!resourceGroup.resources.collection.empty()) {
|
|
1082
|
-
os << "\n";
|
|
1083
|
-
indent(3, os);
|
|
1084
|
-
}
|
|
1085
|
-
}
|
|
1086
|
-
|
|
1087
|
-
os << "]";
|
|
1088
|
-
|
|
1089
|
-
// Close the group
|
|
1090
|
-
os << "\n";
|
|
1091
|
-
indent(2, os);
|
|
1092
|
-
os << "}";
|
|
1093
|
-
}
|
|
1094
|
-
|
|
1095
|
-
/**
|
|
1096
|
-
* \brief Serialize Resource Groups into output stream.
|
|
1097
|
-
* \param resourceGroups Resource Groups to serialize.
|
|
1098
|
-
* \param os An output stream to serialize into.
|
|
1099
|
-
*/
|
|
1100
|
-
static void serialize(const ResourceGroups& resourceGroups, std::ostream &os)
|
|
1101
|
-
{
|
|
1102
|
-
indent(1, os);
|
|
1103
|
-
serialize(SerializeKey::ResourceGroups, os);
|
|
1104
|
-
os << ": ";
|
|
1105
|
-
os << "[";
|
|
1106
|
-
|
|
1107
|
-
if (!resourceGroups.empty()) {
|
|
1108
|
-
os << "\n";
|
|
1109
|
-
size_t i = 0;
|
|
1110
|
-
|
|
1111
|
-
for (Collection<ResourceGroup>::const_iterator it = resourceGroups.begin(); it != resourceGroups.end(); ++i, ++it) {
|
|
1112
|
-
|
|
1113
|
-
if (i > 0 && i < resourceGroups.size())
|
|
1114
|
-
os << NewLineItemBlock;
|
|
1115
|
-
|
|
1116
|
-
serialize(*it, os);
|
|
1117
|
-
}
|
|
1118
|
-
|
|
1119
|
-
os << "\n";
|
|
1120
|
-
indent(1, os);
|
|
1121
|
-
}
|
|
1122
|
-
|
|
1123
|
-
os << "]";
|
|
1124
|
-
}
|
|
1125
|
-
|
|
1126
|
-
/**
|
|
1127
|
-
* \brief Serialize Resource Groups source map into output stream.
|
|
1128
|
-
* \param resourceGroups Resource Groups source map to serialize.
|
|
1129
|
-
* \param os An output stream to serialize into.
|
|
1130
|
-
*/
|
|
1131
|
-
static void serialize(const Collection<SourceMap<ResourceGroup> >::type& resourceGroups, std::ostream &os)
|
|
1132
|
-
{
|
|
1133
|
-
indent(1, os);
|
|
1134
|
-
serialize(SerializeKey::ResourceGroups, os);
|
|
1135
|
-
os << ": ";
|
|
1136
|
-
os << "[";
|
|
1137
|
-
|
|
1138
|
-
if (!resourceGroups.empty()) {
|
|
1139
|
-
os << "\n";
|
|
1140
|
-
size_t i = 0;
|
|
1141
|
-
|
|
1142
|
-
for (Collection<SourceMap<ResourceGroup> >::const_iterator it = resourceGroups.begin(); it != resourceGroups.end(); ++i, ++it) {
|
|
1143
|
-
|
|
1144
|
-
if (i > 0 && i < resourceGroups.size())
|
|
1145
|
-
os << NewLineItemBlock;
|
|
1146
|
-
|
|
1147
|
-
serialize(*it, os);
|
|
1148
|
-
}
|
|
1149
|
-
|
|
1150
|
-
os << "\n";
|
|
1151
|
-
indent(1, os);
|
|
1152
|
-
}
|
|
1153
|
-
|
|
1154
|
-
os << "]";
|
|
1155
|
-
}
|
|
1156
|
-
|
|
1157
|
-
/**
|
|
1158
|
-
* \brief Serialize a blueprint into output stream.
|
|
1159
|
-
* \param blueprint The blueprint to serialize.
|
|
1160
|
-
* \param os An output stream to serialize into.
|
|
1161
|
-
*/
|
|
1162
|
-
static void serialize(const Blueprint& blueprint, std::ostream &os)
|
|
1163
|
-
{
|
|
1164
|
-
os << "{\n";
|
|
1165
|
-
|
|
1166
|
-
// AST Version
|
|
1167
|
-
serialize(SerializeKey::ASTVersion, AST_SERIALIZATION_VERSION, 1, false, os);
|
|
1168
|
-
os << NewLineItemBlock;
|
|
1169
|
-
|
|
1170
|
-
// Metadata
|
|
1171
|
-
serialize(blueprint.metadata, os);
|
|
1172
|
-
|
|
1173
|
-
// Name
|
|
1174
|
-
serialize(SerializeKey::Name, blueprint.name, 1, false, os);
|
|
1175
|
-
os << NewLineItemBlock;
|
|
1176
|
-
|
|
1177
|
-
// Description
|
|
1178
|
-
serialize(SerializeKey::Description, blueprint.description, 1, false, os);
|
|
1179
|
-
os << NewLineItemBlock;
|
|
1180
|
-
|
|
1181
|
-
// Resource Groups
|
|
1182
|
-
serialize(blueprint.resourceGroups, os);
|
|
1183
|
-
|
|
1184
|
-
os << "\n}\n";
|
|
1185
|
-
}
|
|
1186
|
-
|
|
1187
|
-
/**
|
|
1188
|
-
* \brief Serialize a blueprint source map into output stream.
|
|
1189
|
-
* \param blueprint The blueprint source map to serialize.
|
|
1190
|
-
* \param os An output stream to serialize into.
|
|
1191
|
-
*/
|
|
1192
|
-
static void serialize(const SourceMap<Blueprint>& blueprint, std::ostream &os)
|
|
1193
|
-
{
|
|
1194
|
-
os << "{\n";
|
|
1195
|
-
|
|
1196
|
-
// Metadata
|
|
1197
|
-
serialize(blueprint.metadata.collection, os);
|
|
1198
|
-
|
|
1199
|
-
// Name
|
|
1200
|
-
serialize(SerializeKey::Name, blueprint.name, 1, false, os);
|
|
1201
|
-
os << NewLineItemBlock;
|
|
1202
|
-
|
|
1203
|
-
// Description
|
|
1204
|
-
serialize(SerializeKey::Description, blueprint.description, 1, false, os);
|
|
1205
|
-
os << NewLineItemBlock;
|
|
1206
|
-
|
|
1207
|
-
// Resource Groups
|
|
1208
|
-
serialize(blueprint.resourceGroups.collection, os);
|
|
1209
|
-
|
|
1210
|
-
os << "\n}\n";
|
|
1211
|
-
}
|
|
1212
|
-
|
|
1213
|
-
void snowcrash::SerializeJSON(const snowcrash::Blueprint& blueprint, std::ostream &os)
|
|
1214
|
-
{
|
|
1215
|
-
serialize(blueprint, os);
|
|
1216
|
-
}
|
|
1217
|
-
|
|
1218
|
-
void snowcrash::SerializeSourceMapJSON(const snowcrash::SourceMap<snowcrash::Blueprint>& blueprint, std::ostream &os)
|
|
1219
|
-
{
|
|
1220
|
-
serialize(blueprint, os);
|
|
1221
|
-
}
|