redsnow 0.3.2 → 0.3.3
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 +39 -8
- data/Guardfile +7 -0
- data/Rakefile +18 -21
- data/Vagrantfile +9 -9
- data/lib/redsnow.rb +19 -32
- data/lib/redsnow/binding.rb +161 -166
- data/lib/redsnow/blueprint.rb +95 -103
- data/lib/redsnow/object.rb +3 -4
- data/lib/redsnow/parseresult.rb +31 -40
- data/lib/redsnow/sourcemap.rb +71 -96
- data/lib/redsnow/version.rb +2 -1
- data/redsnow.gemspec +23 -23
- metadata +22 -531
- data/doc/RedSnow.html +0 -321
- data/doc/RedSnow/Action.html +0 -702
- data/doc/RedSnow/Binding.html +0 -135
- data/doc/RedSnow/Blueprint.html +0 -657
- data/doc/RedSnow/BlueprintNode.html +0 -139
- data/doc/RedSnow/ErrorCodes.html +0 -165
- data/doc/RedSnow/Headers.html +0 -456
- data/doc/RedSnow/KeyValueCollection.html +0 -343
- data/doc/RedSnow/Location.html +0 -391
- data/doc/RedSnow/Metadata.html +0 -343
- data/doc/RedSnow/NamedBlueprintNode.html +0 -444
- data/doc/RedSnow/Object.html +0 -295
- data/doc/RedSnow/Parameter.html +0 -881
- data/doc/RedSnow/Parameters.html +0 -349
- data/doc/RedSnow/ParseResult.html +0 -570
- data/doc/RedSnow/Payload.html +0 -775
- data/doc/RedSnow/Resource.html +0 -790
- data/doc/RedSnow/ResourceGroup.html +0 -521
- data/doc/RedSnow/TransactionExample.html +0 -700
- data/doc/RedSnow/WarningCodes.html +0 -210
- data/doc/_index.html +0 -342
- data/doc/class_list.html +0 -54
- data/doc/css/common.css +0 -1
- data/doc/css/full_list.css +0 -57
- data/doc/css/style.css +0 -339
- data/doc/file.README.html +0 -136
- data/doc/file_list.html +0 -56
- data/doc/frames.html +0 -26
- data/doc/index.html +0 -136
- data/doc/js/app.js +0 -219
- data/doc/js/full_list.js +0 -178
- data/doc/js/jquery.js +0 -4
- data/doc/method_list.html +0 -347
- data/doc/top-level-namespace.html +0 -112
- data/ext/snowcrash/Gemfile +0 -8
- data/ext/snowcrash/Gemfile.lock +0 -40
- data/ext/snowcrash/LICENSE +0 -22
- data/ext/snowcrash/README.md +0 -118
- data/ext/snowcrash/bin/test-libsnowcrash +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-ActionParser.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-AssetParser.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-Blueprint.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-BlueprintParser.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-HeaderParser.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-HeadersParser.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-Indentation.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-ListUtility.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-MarkdownBlock.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-MarkdownParser.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-ParameterDefinitonParser.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-ParameterParser.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-ParametersParser.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-Parser.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-PayloadParser.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-RegexMatch.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-ResouceGroupParser.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-ResourceGroupParser.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-ResourceParser.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-SectionParser.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-SymbolIdentifier.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-SymbolTable.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-UriTemplateParser.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-ValuesParser.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-Warnings.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-csnowcrash.o +0 -0
- data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-snowcrash.o +0 -0
- data/ext/snowcrash/build/out/Release/test-libsnowcrash +0 -0
- data/ext/snowcrash/build/test-libsnowcrash.target.mk +0 -170
- data/ext/snowcrash/ext/cmdline/LICENSE +0 -30
- data/ext/snowcrash/ext/cmdline/README.rst +0 -191
- data/ext/snowcrash/ext/cmdline/cmdline.h +0 -817
- data/ext/snowcrash/ext/cmdline/test.cpp +0 -50
- data/ext/snowcrash/ext/cmdline/test2.cpp +0 -61
- data/ext/snowcrash/ext/markdown-parser/LICENSE +0 -22
- data/ext/snowcrash/ext/markdown-parser/README.md +0 -11
- data/ext/snowcrash/ext/markdown-parser/ext/sundown/README.markdown +0 -141
- data/ext/snowcrash/ext/markdown-parser/markdownparser.xcodeproj/project.pbxproj +0 -448
- data/ext/snowcrash/ext/markdown-parser/msvc/test-markdown/test-markdown.vcproj +0 -195
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/LICENSE_1_0.txt +0 -23
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/README.md +0 -24
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/catch-logo-small.png +0 -0
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/docs/assertions.md +0 -64
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/docs/build-systems.md +0 -36
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/docs/command-line.md +0 -155
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/docs/contributing.md +0 -19
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/docs/logging.md +0 -52
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/docs/own-main.md +0 -68
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/docs/reference-index.md +0 -14
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/docs/test-cases-and-sections.md +0 -60
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/docs/test-fixtures.md +0 -32
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/docs/tutorial.md +0 -228
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/docs/whats-changed.md +0 -24
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/docs/why-catch.md +0 -42
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/catch.hpp +0 -202
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/catch_runner.hpp +0 -224
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/catch_with_main.hpp +0 -15
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/external/clara.h +0 -868
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/external/tbc_text_format.h +0 -153
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_approx.hpp +0 -91
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_assertionresult.h +0 -71
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_assertionresult.hpp +0 -91
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_capture.hpp +0 -179
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_clara.h +0 -32
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_commandline.hpp +0 -145
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_common.h +0 -119
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_common.hpp +0 -86
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_compiler_capabilities.h +0 -123
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_config.hpp +0 -178
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_console_colour.hpp +0 -66
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_console_colour_impl.hpp +0 -166
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_context.h +0 -53
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_context_impl.hpp +0 -112
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_debugger.h +0 -49
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_debugger.hpp +0 -100
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_default_main.hpp +0 -38
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_evaluate.hpp +0 -178
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_exception_translator_registry.hpp +0 -75
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_expression_decomposer.hpp +0 -31
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_expression_lhs.hpp +0 -105
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_expressionresult_builder.h +0 -63
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_expressionresult_builder.hpp +0 -98
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_generators.hpp +0 -190
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_generators_impl.hpp +0 -86
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_impl.hpp +0 -92
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_interfaces_capture.h +0 -46
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_interfaces_config.h +0 -54
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_interfaces_exception.h +0 -66
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_interfaces_generators.h +0 -32
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_interfaces_registry_hub.h +0 -44
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_interfaces_reporter.h +0 -265
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_interfaces_runner.h +0 -19
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_interfaces_testcase.h +0 -37
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_legacy_reporter_adapter.h +0 -59
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_legacy_reporter_adapter.hpp +0 -82
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_list.hpp +0 -150
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_matchers.hpp +0 -233
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_message.h +0 -65
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_message.hpp +0 -43
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_notimplemented_exception.h +0 -35
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_notimplemented_exception.hpp +0 -30
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_objc.hpp +0 -203
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_objc_arc.hpp +0 -51
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_option.hpp +0 -75
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_platform.h +0 -20
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_ptr.hpp +0 -94
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_registry_hub.hpp +0 -83
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_reporter_registrars.hpp +0 -74
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_reporter_registry.hpp +0 -45
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_result_type.h +0 -66
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_runner_impl.hpp +0 -319
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_section.h +0 -55
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_section.hpp +0 -40
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_section_info.h +0 -31
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_section_info.hpp +0 -113
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_sfinae.hpp +0 -44
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_stream.h +0 -33
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_stream.hpp +0 -83
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_streambuf.h +0 -23
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_tags.h +0 -109
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_tags.hpp +0 -137
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_test_case_info.h +0 -84
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_test_case_info.hpp +0 -166
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_test_case_registry_impl.hpp +0 -146
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_test_case_tracker.hpp +0 -148
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_test_registry.hpp +0 -120
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_test_spec.h +0 -65
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_test_spec.hpp +0 -133
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_text.h +0 -24
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_timer.h +0 -35
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_timer.hpp +0 -63
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_tostring.hpp +0 -276
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_totals.hpp +0 -67
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_version.h +0 -37
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_version.hpp +0 -19
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_xmlwriter.hpp +0 -218
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/reporters/catch_reporter_bases.hpp +0 -203
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/reporters/catch_reporter_console.hpp +0 -411
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/reporters/catch_reporter_junit.hpp +0 -226
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/reporters/catch_reporter_xml.hpp +0 -151
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/CMake/CMakeLists.txt +0 -38
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/ApproxTests.cpp +0 -112
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/BDDTests.cpp +0 -68
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/Baselines/console.std.approved.txt +0 -778
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/Baselines/console.sw.approved.txt +0 -6995
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/Baselines/console.swa4.approved.txt +0 -322
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/Baselines/junit.sw.approved.txt +0 -562
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/Baselines/xml.sw.approved.txt +0 -7251
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/ClassTests.cpp +0 -57
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/ConditionTests.cpp +0 -334
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/ExceptionTests.cpp +0 -153
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/GeneratorTests.cpp +0 -42
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/MessageTests.cpp +0 -121
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/MiscTests.cpp +0 -341
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SectionTrackerTests.cpp +0 -164
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_common.cpp +0 -2
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_console_colour.cpp +0 -2
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_debugger.cpp +0 -2
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_capture.cpp +0 -2
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_config.cpp +0 -1
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_exception.cpp +0 -1
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_generators.cpp +0 -1
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_registry_hub.cpp +0 -2
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_reporter.cpp +0 -1
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_runner.cpp +0 -1
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_testcase.cpp +0 -1
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_message.cpp +0 -2
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_option.cpp +0 -2
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_ptr.cpp +0 -2
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_stream.cpp +0 -2
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_streambuf.cpp +0 -2
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_tags.cpp +0 -2
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_xmlwriter.cpp +0 -2
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/TestMain.cpp +0 -541
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/TrickyTests.cpp +0 -396
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/VariadicMacrosTests.cpp +0 -31
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/makefile +0 -21
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/VS2008/TestCatch/TestCatch.sln +0 -20
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/VS2008/TestCatch/TestCatch/TestCatch.cpp +0 -8
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/VS2008/TestCatch/TestCatch/TestCatch.vcproj +0 -394
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/VS2010/TestCatch/TestCatch.sln +0 -20
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/VS2010/TestCatch/TestCatch/TestCatch.vcxproj +0 -148
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/CatchSelfTest/CatchSelfTest.xcodeproj/project.pbxproj +0 -685
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/CatchSelfTest/CatchSelfTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/CatchSelfTest/CatchSelfTest.xcodeproj/project.xcworkspace/xcshareddata/CatchSelfTest.xccheckout +0 -41
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/CatchSelfTest/CatchSelfTest/CatchSelfTest.1 +0 -79
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/CatchSelfTest/CatchSelfTest/catch_text.cpp +0 -2
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/CatchSelfTest/CatchSelfTestSingle.xcodeproj/project.pbxproj +0 -258
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/CatchSelfTest/CatchSelfTestSingle.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/CatchSelfTest/CatchSelfTestSingle.xcodeproj/project.xcworkspace/xcshareddata/CatchSelfTestSingle.xccheckout +0 -41
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/CatchSelfTest/CatchSelfTestSingle/dummy.txt +0 -0
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/OCTest/OCTest.xcodeproj/project.pbxproj +0 -265
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/OCTest/OCTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/OCTest/OCTest.xcodeproj/project.xcworkspace/xcshareddata/OCTest.xccheckout +0 -41
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/OCTest/OCTest/CatchOCTestCase.h +0 -25
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/OCTest/OCTest/CatchOCTestCase.mm +0 -83
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/OCTest/OCTest/Main.mm +0 -2
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/OCTest/OCTest/OCTest.1 +0 -79
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/OCTest/OCTest/OCTest.mm +0 -28
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/OCTest/OCTest/TestObj.h +0 -28
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/OCTest/OCTest/TestObj.m +0 -25
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/iOSTest/iOSTest.xcodeproj/project.pbxproj +0 -299
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/iOSTest/iOSTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/iOSTest/iOSTest/OCTest.mm +0 -27
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/iOSTest/iOSTest/TestObj.h +0 -25
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/iOSTest/iOSTest/TestObj.m +0 -18
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/iOSTest/iOSTest/en.lproj/InfoPlist.strings +0 -2
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/iOSTest/iOSTest/iOSTest-Info.plist +0 -47
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/iOSTest/iOSTest/iOSTest-Prefix.pch +0 -14
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/runners/iTchRunner/internal/iTchRunnerAppDelegate.h +0 -114
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/runners/iTchRunner/internal/iTchRunnerMainView.h +0 -189
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/runners/iTchRunner/internal/iTchRunnerReporter.h +0 -115
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/runners/iTchRunner/itChRunnerMain.mm +0 -27
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/runners/iTchRunner/readme +0 -6
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/scripts/approvalTests.py +0 -99
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/scripts/approve.py +0 -29
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/scripts/generateSingleHeader.py +0 -152
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/scripts/scriptCommon.py +0 -4
- data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/single_include/catch.hpp +0 -8544
- data/ext/snowcrash/ext/markdown-parser/test/test-ByteBuffer.cc +0 -83
- data/ext/snowcrash/ext/markdown-parser/test/test-MarkdownParser.cc +0 -628
- data/ext/snowcrash/ext/markdown-parser/test/test-libmarkdownparser.cc +0 -10
- data/ext/snowcrash/features/fixtures/ast.json +0 -154
- data/ext/snowcrash/features/fixtures/ast.yaml +0 -87
- data/ext/snowcrash/features/fixtures/blueprint.apib +0 -84
- data/ext/snowcrash/features/fixtures/invalid_blueprint.apib +0 -4
- data/ext/snowcrash/features/parse.feature +0 -23
- data/ext/snowcrash/features/step_definitions/file_content_step.rb +0 -8
- data/ext/snowcrash/features/support/env.rb +0 -7
- data/ext/snowcrash/features/support/setup.rb +0 -1
- data/ext/snowcrash/features/validate.feature +0 -37
- data/ext/snowcrash/features/version.feature +0 -10
- data/ext/snowcrash/snowcrash.xcodeproj/project.pbxproj +0 -798
- data/ext/snowcrash/test/README.md +0 -7
- data/ext/snowcrash/test/performance/fixtures/fixture-1.apib +0 -174
- data/ext/snowcrash/test/performance/fixtures/fixture-2.apib +0 -2455
- data/ext/snowcrash/test/performance/fixtures/fixture-3.apib +0 -10363
- data/ext/snowcrash/test/performance/fixtures/fixture-4.apib +0 -8390
- data/ext/snowcrash/test/performance/perf-snowcrash.cc +0 -162
- data/ext/snowcrash/test/snowcrashtest.h +0 -88
- data/ext/snowcrash/test/test-ActionParser.cc +0 -491
- data/ext/snowcrash/test/test-AssetParser.cc +0 -224
- data/ext/snowcrash/test/test-Blueprint.cc +0 -32
- data/ext/snowcrash/test/test-BlueprintParser.cc +0 -462
- data/ext/snowcrash/test/test-HeadersParser.cc +0 -256
- data/ext/snowcrash/test/test-Indentation.cc +0 -336
- data/ext/snowcrash/test/test-ParameterParser.cc +0 -499
- data/ext/snowcrash/test/test-ParametersParser.cc +0 -355
- data/ext/snowcrash/test/test-PayloadParser.cc +0 -657
- data/ext/snowcrash/test/test-RegexMatch.cc +0 -35
- data/ext/snowcrash/test/test-ResourceGroupParser.cc +0 -457
- data/ext/snowcrash/test/test-ResourceParser.cc +0 -947
- data/ext/snowcrash/test/test-SectionParser.cc +0 -81
- data/ext/snowcrash/test/test-StringUtility.cc +0 -65
- data/ext/snowcrash/test/test-SymbolIdentifier.cc +0 -53
- data/ext/snowcrash/test/test-SymbolTable.cc +0 -31
- data/ext/snowcrash/test/test-UriTemplateParser.cc +0 -333
- data/ext/snowcrash/test/test-ValuesParser.cc +0 -106
- data/ext/snowcrash/test/test-Warnings.cc +0 -94
- data/ext/snowcrash/test/test-csnowcrash.cc +0 -404
- data/ext/snowcrash/test/test-snowcrash.cc +0 -664
- data/ext/snowcrash/test/vendor/Catch/LICENSE_1_0.txt +0 -23
- data/ext/snowcrash/test/vendor/Catch/README.md +0 -24
- data/ext/snowcrash/test/vendor/Catch/catch-logo-small.png +0 -0
- data/ext/snowcrash/test/vendor/Catch/docs/assertions.md +0 -59
- data/ext/snowcrash/test/vendor/Catch/docs/command-line.md +0 -137
- data/ext/snowcrash/test/vendor/Catch/docs/logging.md +0 -52
- data/ext/snowcrash/test/vendor/Catch/docs/own-main.md +0 -68
- data/ext/snowcrash/test/vendor/Catch/docs/reference-index.md +0 -13
- data/ext/snowcrash/test/vendor/Catch/docs/test-fixtures.md +0 -32
- data/ext/snowcrash/test/vendor/Catch/docs/tutorial.md +0 -100
- data/ext/snowcrash/test/vendor/Catch/docs/whats-changed.md +0 -24
- data/ext/snowcrash/test/vendor/Catch/docs/why-catch.md +0 -42
- data/ext/snowcrash/test/vendor/Catch/include/catch.hpp +0 -182
- data/ext/snowcrash/test/vendor/Catch/include/catch_runner.hpp +0 -236
- data/ext/snowcrash/test/vendor/Catch/include/catch_with_main.hpp +0 -15
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_approx.hpp +0 -91
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_assertionresult.h +0 -65
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_assertionresult.hpp +0 -91
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_capture.hpp +0 -175
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_commandline.hpp +0 -129
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_common.h +0 -148
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_compiler_capabilities.h +0 -85
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_config.hpp +0 -182
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_console_colour.hpp +0 -66
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_console_colour_impl.hpp +0 -153
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_context.h +0 -53
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_context_impl.hpp +0 -112
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_debugger.hpp +0 -116
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_default_main.hpp +0 -38
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_evaluate.hpp +0 -178
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_exception_translator_registry.hpp +0 -74
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_expression_decomposer.hpp +0 -31
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_expression_lhs.hpp +0 -97
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_expressionresult_builder.h +0 -63
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_expressionresult_builder.hpp +0 -98
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_generators.hpp +0 -190
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_generators_impl.hpp +0 -86
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_impl.hpp +0 -97
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_interfaces_capture.h +0 -46
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_interfaces_config.h +0 -32
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_interfaces_exception.h +0 -66
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_interfaces_generators.h +0 -32
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_interfaces_registry_hub.h +0 -45
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_interfaces_reporter.h +0 -339
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_interfaces_runner.h +0 -23
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_interfaces_testcase.h +0 -34
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_legacy_reporter_adapter.h +0 -39
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_legacy_reporter_adapter.hpp +0 -84
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_list.hpp +0 -198
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_matchers.hpp +0 -233
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_message.h +0 -65
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_message.hpp +0 -43
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_notimplemented_exception.h +0 -35
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_notimplemented_exception.hpp +0 -30
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_objc.hpp +0 -202
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_objc_arc.hpp +0 -51
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_option.hpp +0 -67
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_ptr.hpp +0 -94
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_registry_hub.hpp +0 -83
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_reporter_registrars.hpp +0 -75
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_reporter_registry.hpp +0 -45
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_result_type.h +0 -66
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_runner_impl.hpp +0 -326
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_running_test.hpp +0 -117
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_section.hpp +0 -56
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_section_info.hpp +0 -113
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_sfinae.hpp +0 -44
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_stream.hpp +0 -90
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_streambuf.h +0 -21
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_tags.hpp +0 -193
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_test_case_info.h +0 -82
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_test_case_info.hpp +0 -127
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_test_case_registry_impl.hpp +0 -151
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_test_registry.hpp +0 -120
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_test_spec.h +0 -166
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_text.h +0 -61
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_text.hpp +0 -92
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_tostring.hpp +0 -224
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_totals.hpp +0 -67
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_version.h +0 -37
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_version.hpp +0 -19
- data/ext/snowcrash/test/vendor/Catch/include/internal/catch_xmlwriter.hpp +0 -211
- data/ext/snowcrash/test/vendor/Catch/include/internal/clara.h +0 -553
- data/ext/snowcrash/test/vendor/Catch/include/reporters/catch_reporter_basic.hpp +0 -353
- data/ext/snowcrash/test/vendor/Catch/include/reporters/catch_reporter_console.hpp +0 -397
- data/ext/snowcrash/test/vendor/Catch/include/reporters/catch_reporter_junit.hpp +0 -252
- data/ext/snowcrash/test/vendor/Catch/include/reporters/catch_reporter_xml.hpp +0 -145
- data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/ApproxTests.cpp +0 -112
- data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/BDDTests.cpp +0 -68
- data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/Baselines/approvedResults.txt +0 -14686
- data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/ClassTests.cpp +0 -57
- data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/CmdLineTests.cpp +0 -191
- data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/ConditionTests.cpp +0 -348
- data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/ExceptionTests.cpp +0 -143
- data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/GeneratorTests.cpp +0 -42
- data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/MessageTests.cpp +0 -102
- data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/MiscTests.cpp +0 -343
- data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_common.cpp +0 -2
- data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_console_colour.cpp +0 -2
- data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_debugger.cpp +0 -2
- data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_capture.cpp +0 -2
- data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_config.cpp +0 -1
- data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_exception.cpp +0 -1
- data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_generators.cpp +0 -1
- data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_registry_hub.cpp +0 -2
- data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_reporter.cpp +0 -1
- data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_runner.cpp +0 -1
- data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_testcase.cpp +0 -1
- data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_message.cpp +0 -2
- data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_option.cpp +0 -2
- data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_ptr.cpp +0 -2
- data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_stream.cpp +0 -2
- data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_streambuf.cpp +0 -2
- data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_tags.cpp +0 -2
- data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_xmlwriter.cpp +0 -2
- data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/TestMain.cpp +0 -561
- data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/TrickyTests.cpp +0 -382
- data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/VariadicMacrosTests.cpp +0 -31
- data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/catch_self_test.cpp +0 -31
- data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/catch_self_test.hpp +0 -177
- data/ext/snowcrash/test/vendor/Catch/projects/VS2008/TestCatch/TestCatch.sln +0 -20
- data/ext/snowcrash/test/vendor/Catch/projects/VS2008/TestCatch/TestCatch/ReadMe.txt +0 -33
- data/ext/snowcrash/test/vendor/Catch/projects/VS2008/TestCatch/TestCatch/TestCatch.cpp +0 -8
- data/ext/snowcrash/test/vendor/Catch/projects/VS2008/TestCatch/TestCatch/TestCatch.vcproj +0 -398
- data/ext/snowcrash/test/vendor/Catch/projects/VS2008/TestCatch/UpgradeLog.XML +0 -12
- data/ext/snowcrash/test/vendor/Catch/projects/VS2008/TestCatch/_UpgradeReport_Files/UpgradeReport.css +0 -207
- data/ext/snowcrash/test/vendor/Catch/projects/VS2008/TestCatch/_UpgradeReport_Files/UpgradeReport.xslt +0 -232
- data/ext/snowcrash/test/vendor/Catch/projects/VS2008/TestCatch/_UpgradeReport_Files/UpgradeReport_Minus.gif +0 -0
- data/ext/snowcrash/test/vendor/Catch/projects/VS2008/TestCatch/_UpgradeReport_Files/UpgradeReport_Plus.gif +0 -0
- data/ext/snowcrash/test/vendor/Catch/projects/VS2010/TestCatch/TestCatch.sln +0 -20
- data/ext/snowcrash/test/vendor/Catch/projects/VS2010/TestCatch/TestCatch/ReadMe.txt +0 -33
- data/ext/snowcrash/test/vendor/Catch/projects/VS2010/TestCatch/TestCatch/TestCatch.cpp +0 -8
- data/ext/snowcrash/test/vendor/Catch/projects/VS2010/TestCatch/TestCatch/TestCatch.vcxproj +0 -149
- data/ext/snowcrash/test/vendor/Catch/projects/XCode3/CatchSelfTest.xcodeproj/project.pbxproj +0 -440
- data/ext/snowcrash/test/vendor/Catch/projects/XCode3/CatchSelfTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- data/ext/snowcrash/test/vendor/Catch/projects/XCode3/CatchSelfTest.xcodeproj/xcuserdata/phil.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist +0 -81
- data/ext/snowcrash/test/vendor/Catch/projects/XCode3/CatchSelfTest.xcodeproj/xcuserdata/phil.xcuserdatad/xcschemes/Test.xcscheme +0 -154
- data/ext/snowcrash/test/vendor/Catch/projects/XCode3/CatchSelfTest.xcodeproj/xcuserdata/phil.xcuserdatad/xcschemes/xcschememanagement.plist +0 -22
- data/ext/snowcrash/test/vendor/Catch/projects/XCode3/CatchSelfTestSingle/CatchSelfTestSingle.1 +0 -79
- data/ext/snowcrash/test/vendor/Catch/projects/XCode3/CatchSelfTestSingle/CatchSelfTestSingle.xcodeproj/project.pbxproj +0 -246
- data/ext/snowcrash/test/vendor/Catch/projects/XCode3/OCTest/CatchOCTestCase.h +0 -25
- data/ext/snowcrash/test/vendor/Catch/projects/XCode3/OCTest/CatchOCTestCase.mm +0 -45
- data/ext/snowcrash/test/vendor/Catch/projects/XCode3/OCTest/Main.mm +0 -1
- data/ext/snowcrash/test/vendor/Catch/projects/XCode3/OCTest/OCTest.1 +0 -79
- data/ext/snowcrash/test/vendor/Catch/projects/XCode3/OCTest/OCTest.mm +0 -28
- data/ext/snowcrash/test/vendor/Catch/projects/XCode3/OCTest/OCTest.xcodeproj/project.pbxproj +0 -259
- data/ext/snowcrash/test/vendor/Catch/projects/XCode3/OCTest/OCTest_Prefix.pch +0 -7
- data/ext/snowcrash/test/vendor/Catch/projects/XCode3/OCTest/TestObj.h +0 -25
- data/ext/snowcrash/test/vendor/Catch/projects/XCode3/OCTest/TestObj.m +0 -18
- data/ext/snowcrash/test/vendor/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest.xcodeproj/project.pbxproj +0 -667
- data/ext/snowcrash/test/vendor/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- data/ext/snowcrash/test/vendor/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest.xcodeproj/xcuserdata/Phil.xcuserdatad/xcschemes/xcschememanagement.plist +0 -22
- data/ext/snowcrash/test/vendor/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/CatchSelfTest.1 +0 -79
- data/ext/snowcrash/test/vendor/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/catch_text.cpp +0 -2
- data/ext/snowcrash/test/vendor/Catch/projects/XCode4/CatchSelfTest/CatchSelfTestSingle.xcodeproj/project.pbxproj +0 -264
- data/ext/snowcrash/test/vendor/Catch/projects/XCode4/CatchSelfTest/CatchSelfTestSingle.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- data/ext/snowcrash/test/vendor/Catch/projects/XCode4/CatchSelfTest/CatchSelfTestSingle/dummy.txt +0 -0
- data/ext/snowcrash/test/vendor/Catch/projects/XCode4/OCTest/OCTest.xcodeproj/project.pbxproj +0 -249
- data/ext/snowcrash/test/vendor/Catch/projects/XCode4/OCTest/OCTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- data/ext/snowcrash/test/vendor/Catch/projects/XCode4/OCTest/OCTest/CatchOCTestCase.h +0 -25
- data/ext/snowcrash/test/vendor/Catch/projects/XCode4/OCTest/OCTest/CatchOCTestCase.mm +0 -82
- data/ext/snowcrash/test/vendor/Catch/projects/XCode4/OCTest/OCTest/Main.mm +0 -2
- data/ext/snowcrash/test/vendor/Catch/projects/XCode4/OCTest/OCTest/OCTest.1 +0 -79
- data/ext/snowcrash/test/vendor/Catch/projects/XCode4/OCTest/OCTest/OCTest.mm +0 -28
- data/ext/snowcrash/test/vendor/Catch/projects/XCode4/OCTest/OCTest/TestObj.h +0 -28
- data/ext/snowcrash/test/vendor/Catch/projects/XCode4/OCTest/OCTest/TestObj.m +0 -25
- data/ext/snowcrash/test/vendor/Catch/projects/XCode4/iOSTest/iOSTest.xcodeproj/project.pbxproj +0 -299
- data/ext/snowcrash/test/vendor/Catch/projects/XCode4/iOSTest/iOSTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- data/ext/snowcrash/test/vendor/Catch/projects/XCode4/iOSTest/iOSTest/OCTest.mm +0 -27
- data/ext/snowcrash/test/vendor/Catch/projects/XCode4/iOSTest/iOSTest/TestObj.h +0 -25
- data/ext/snowcrash/test/vendor/Catch/projects/XCode4/iOSTest/iOSTest/TestObj.m +0 -18
- data/ext/snowcrash/test/vendor/Catch/projects/XCode4/iOSTest/iOSTest/en.lproj/InfoPlist.strings +0 -2
- data/ext/snowcrash/test/vendor/Catch/projects/XCode4/iOSTest/iOSTest/iOSTest-Info.plist +0 -47
- data/ext/snowcrash/test/vendor/Catch/projects/XCode4/iOSTest/iOSTest/iOSTest-Prefix.pch +0 -14
- data/ext/snowcrash/test/vendor/Catch/projects/runners/iTchRunner/internal/iTchRunnerAppDelegate.h +0 -114
- data/ext/snowcrash/test/vendor/Catch/projects/runners/iTchRunner/internal/iTchRunnerMainView.h +0 -189
- data/ext/snowcrash/test/vendor/Catch/projects/runners/iTchRunner/internal/iTchRunnerReporter.h +0 -115
- data/ext/snowcrash/test/vendor/Catch/projects/runners/iTchRunner/itChRunnerMain.mm +0 -27
- data/ext/snowcrash/test/vendor/Catch/projects/runners/iTchRunner/readme +0 -6
- data/ext/snowcrash/test/vendor/Catch/scripts/approvalTests.py +0 -63
- data/ext/snowcrash/test/vendor/Catch/scripts/approve.py +0 -14
- data/ext/snowcrash/test/vendor/Catch/scripts/generateSingleHeader.py +0 -117
- data/ext/snowcrash/test/vendor/Catch/scripts/scriptCommon.py +0 -4
- data/ext/snowcrash/test/vendor/Catch/single_include/catch.hpp +0 -8046
- data/ext/snowcrash/tools/README.md +0 -27
- data/ext/snowcrash/tools/gyp/LICENSE +0 -27
- data/ext/snowcrash/tools/gyp/gyptest.py +0 -274
- data/ext/snowcrash/tools/gyp/pylib/gyp/MSVSSettings_test.py +0 -1483
- data/ext/snowcrash/tools/gyp/pylib/gyp/common_test.py +0 -72
- data/ext/snowcrash/tools/gyp/pylib/gyp/easy_xml_test.py +0 -103
- data/ext/snowcrash/tools/gyp/pylib/gyp/generator/msvs_test.py +0 -37
- data/ext/snowcrash/tools/gyp/pylib/gyp/generator/ninja_test.py +0 -44
- data/ext/snowcrash/tools/gyp/pylib/gyp/generator/xcode_test.py +0 -23
- data/ext/snowcrash/tools/gyp/pylib/gyp/input_test.py +0 -90
- data/ext/snowcrash/tools/gyp/tools/README +0 -15
- data/ext/snowcrash/tools/gyp/tools/Xcode/README +0 -5
- data/ext/snowcrash/tools/gyp/tools/emacs/README +0 -12
- data/ext/snowcrash/tools/gyp/tools/emacs/gyp-tests.el +0 -63
- data/ext/snowcrash/tools/gyp/tools/emacs/run-unit-tests.sh +0 -7
- data/ext/snowcrash/tools/gyp/tools/emacs/testdata/media.gyp +0 -1105
- data/ext/snowcrash/tools/gyp/tools/emacs/testdata/media.gyp.fontified +0 -1107
- data/pkg/redsnow-0.1.3.gem +0 -0
- data/pkg/redsnow-0.1.4.gem +0 -0
- data/pkg/redsnow-0.1.5.gem +0 -0
- data/pkg/redsnow-0.1.6.gem +0 -0
- data/pkg/redsnow-0.2.0.gem +0 -0
- data/pkg/redsnow-0.2.1.gem +0 -0
- data/pkg/redsnow-0.3.1.gem +0 -0
- data/test/_helper.rb +0 -15
- data/test/fixtures/sample-api-ast.json +0 -97
- data/test/fixtures/sample-api-sourcemap.json +0 -169
- data/test/fixtures/sample-api.apib +0 -20
- data/test/redsnow_binding_test.rb +0 -52
- data/test/redsnow_options_test.rb +0 -42
- data/test/redsnow_parseresult_test.rb +0 -54
- data/test/redsnow_test.rb +0 -323
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Created by Phil on 01/11/2010.
|
|
3
|
-
* Copyright 2010 Two Blue Cubes Ltd. All rights reserved.
|
|
4
|
-
*
|
|
5
|
-
* Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
6
|
-
* file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
7
|
-
*/
|
|
8
|
-
#ifndef TWOBLUECUBES_CATCH_WITH_MAIN_HPP_INCLUDED
|
|
9
|
-
#define TWOBLUECUBES_CATCH_WITH_MAIN_HPP_INCLUDED
|
|
10
|
-
|
|
11
|
-
#include "catch_runner.hpp"
|
|
12
|
-
#include "catch.hpp"
|
|
13
|
-
#include "internal/catch_default_main.hpp"
|
|
14
|
-
|
|
15
|
-
#endif // TWOBLUECUBES_CATCH_WITH_MAIN_HPP_INCLUDED
|
|
@@ -1,868 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Created by Phil on 25/05/2013.
|
|
3
|
-
* Copyright 2013 Two Blue Cubes Ltd. All rights reserved.
|
|
4
|
-
*
|
|
5
|
-
* Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
6
|
-
* file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
// Only use header guard if we are not using an outer namespace
|
|
10
|
-
#if !defined(TWOBLUECUBES_CLARA_H_INCLUDED) || defined(STITCH_CLARA_OPEN_NAMESPACE)
|
|
11
|
-
|
|
12
|
-
#ifndef STITCH_CLARA_OPEN_NAMESPACE
|
|
13
|
-
#define TWOBLUECUBES_CLARA_H_INCLUDED
|
|
14
|
-
#define STITCH_CLARA_OPEN_NAMESPACE
|
|
15
|
-
#define STITCH_CLARA_CLOSE_NAMESPACE
|
|
16
|
-
#else
|
|
17
|
-
#define STITCH_CLARA_CLOSE_NAMESPACE }
|
|
18
|
-
#endif
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
#define STITCH_TBC_TEXT_FORMAT_OPEN_NAMESPACE STITCH_CLARA_OPEN_NAMESPACE
|
|
22
|
-
|
|
23
|
-
// ----------- #included from tbc_text_format.h -----------
|
|
24
|
-
|
|
25
|
-
/*
|
|
26
|
-
* Created by Phil on 18/4/2013.
|
|
27
|
-
* Copyright 2013 Two Blue Cubes Ltd. All rights reserved.
|
|
28
|
-
*
|
|
29
|
-
* Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
30
|
-
* file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
31
|
-
*/
|
|
32
|
-
// Only use header guard if we are not using an outer namespace
|
|
33
|
-
#if !defined(TBC_TEXT_FORMAT_H_INCLUDED) || defined(STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE)
|
|
34
|
-
#ifndef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
|
|
35
|
-
#define TBC_TEXT_FORMAT_H_INCLUDED
|
|
36
|
-
#endif
|
|
37
|
-
|
|
38
|
-
#include <string>
|
|
39
|
-
#include <vector>
|
|
40
|
-
#include <sstream>
|
|
41
|
-
|
|
42
|
-
// Use optional outer namespace
|
|
43
|
-
#ifdef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
|
|
44
|
-
namespace STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE {
|
|
45
|
-
#endif
|
|
46
|
-
|
|
47
|
-
namespace Tbc {
|
|
48
|
-
|
|
49
|
-
#ifdef TBC_TEXT_FORMAT_CONSOLE_WIDTH
|
|
50
|
-
const unsigned int consoleWidth = TBC_TEXT_FORMAT_CONSOLE_WIDTH;
|
|
51
|
-
#else
|
|
52
|
-
const unsigned int consoleWidth = 80;
|
|
53
|
-
#endif
|
|
54
|
-
|
|
55
|
-
struct TextAttributes {
|
|
56
|
-
TextAttributes()
|
|
57
|
-
: initialIndent( std::string::npos ),
|
|
58
|
-
indent( 0 ),
|
|
59
|
-
width( consoleWidth-1 ),
|
|
60
|
-
tabChar( '\t' )
|
|
61
|
-
{}
|
|
62
|
-
|
|
63
|
-
TextAttributes& setInitialIndent( std::size_t _value ) { initialIndent = _value; return *this; }
|
|
64
|
-
TextAttributes& setIndent( std::size_t _value ) { indent = _value; return *this; }
|
|
65
|
-
TextAttributes& setWidth( std::size_t _value ) { width = _value; return *this; }
|
|
66
|
-
TextAttributes& setTabChar( char _value ) { tabChar = _value; return *this; }
|
|
67
|
-
|
|
68
|
-
std::size_t initialIndent; // indent of first line, or npos
|
|
69
|
-
std::size_t indent; // indent of subsequent lines, or all if initialIndent is npos
|
|
70
|
-
std::size_t width; // maximum width of text, including indent. Longer text will wrap
|
|
71
|
-
char tabChar; // If this char is seen the indent is changed to current pos
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
class Text {
|
|
75
|
-
public:
|
|
76
|
-
Text( std::string const& _str, TextAttributes const& _attr = TextAttributes() )
|
|
77
|
-
: attr( _attr )
|
|
78
|
-
{
|
|
79
|
-
std::string wrappableChars = " [({.,/|\\-";
|
|
80
|
-
std::size_t indent = _attr.initialIndent != std::string::npos
|
|
81
|
-
? _attr.initialIndent
|
|
82
|
-
: _attr.indent;
|
|
83
|
-
std::string remainder = _str;
|
|
84
|
-
|
|
85
|
-
while( !remainder.empty() ) {
|
|
86
|
-
if( lines.size() >= 1000 ) {
|
|
87
|
-
lines.push_back( "... message truncated due to excessive size" );
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
std::size_t tabPos = std::string::npos;
|
|
91
|
-
std::size_t width = (std::min)( remainder.size(), _attr.width - indent );
|
|
92
|
-
std::size_t pos = remainder.find_first_of( '\n' );
|
|
93
|
-
if( pos <= width ) {
|
|
94
|
-
width = pos;
|
|
95
|
-
}
|
|
96
|
-
pos = remainder.find_last_of( _attr.tabChar, width );
|
|
97
|
-
if( pos != std::string::npos ) {
|
|
98
|
-
tabPos = pos;
|
|
99
|
-
if( remainder[width] == '\n' )
|
|
100
|
-
width--;
|
|
101
|
-
remainder = remainder.substr( 0, tabPos ) + remainder.substr( tabPos+1 );
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
if( width == remainder.size() ) {
|
|
105
|
-
spliceLine( indent, remainder, width );
|
|
106
|
-
}
|
|
107
|
-
else if( remainder[width] == '\n' ) {
|
|
108
|
-
spliceLine( indent, remainder, width );
|
|
109
|
-
if( width <= 1 || remainder.size() != 1 )
|
|
110
|
-
remainder = remainder.substr( 1 );
|
|
111
|
-
indent = _attr.indent;
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
pos = remainder.find_last_of( wrappableChars, width );
|
|
115
|
-
if( pos != std::string::npos && pos > 0 ) {
|
|
116
|
-
spliceLine( indent, remainder, pos );
|
|
117
|
-
if( remainder[0] == ' ' )
|
|
118
|
-
remainder = remainder.substr( 1 );
|
|
119
|
-
}
|
|
120
|
-
else {
|
|
121
|
-
spliceLine( indent, remainder, width-1 );
|
|
122
|
-
lines.back() += "-";
|
|
123
|
-
}
|
|
124
|
-
if( lines.size() == 1 )
|
|
125
|
-
indent = _attr.indent;
|
|
126
|
-
if( tabPos != std::string::npos )
|
|
127
|
-
indent += tabPos;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
void spliceLine( std::size_t _indent, std::string& _remainder, std::size_t _pos ) {
|
|
133
|
-
lines.push_back( std::string( _indent, ' ' ) + _remainder.substr( 0, _pos ) );
|
|
134
|
-
_remainder = _remainder.substr( _pos );
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
typedef std::vector<std::string>::const_iterator const_iterator;
|
|
138
|
-
|
|
139
|
-
const_iterator begin() const { return lines.begin(); }
|
|
140
|
-
const_iterator end() const { return lines.end(); }
|
|
141
|
-
std::string const& last() const { return lines.back(); }
|
|
142
|
-
std::size_t size() const { return lines.size(); }
|
|
143
|
-
std::string const& operator[]( std::size_t _index ) const { return lines[_index]; }
|
|
144
|
-
std::string toString() const {
|
|
145
|
-
std::ostringstream oss;
|
|
146
|
-
oss << *this;
|
|
147
|
-
return oss.str();
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
inline friend std::ostream& operator << ( std::ostream& _stream, Text const& _text ) {
|
|
151
|
-
for( Text::const_iterator it = _text.begin(), itEnd = _text.end();
|
|
152
|
-
it != itEnd; ++it ) {
|
|
153
|
-
if( it != _text.begin() )
|
|
154
|
-
_stream << "\n";
|
|
155
|
-
_stream << *it;
|
|
156
|
-
}
|
|
157
|
-
return _stream;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
private:
|
|
161
|
-
std::string str;
|
|
162
|
-
TextAttributes attr;
|
|
163
|
-
std::vector<std::string> lines;
|
|
164
|
-
};
|
|
165
|
-
|
|
166
|
-
} // end namespace Tbc
|
|
167
|
-
|
|
168
|
-
#ifdef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
|
|
169
|
-
} // end outer namespace
|
|
170
|
-
#endif
|
|
171
|
-
|
|
172
|
-
#endif // TBC_TEXT_FORMAT_H_INCLUDED
|
|
173
|
-
|
|
174
|
-
// ----------- end of #include from tbc_text_format.h -----------
|
|
175
|
-
// ........... back in /Users/philnash/Dev/OSS/Clara/srcs/clara.h
|
|
176
|
-
|
|
177
|
-
#undef STITCH_TBC_TEXT_FORMAT_OPEN_NAMESPACE
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
#include <map>
|
|
181
|
-
#include <algorithm>
|
|
182
|
-
#include <stdexcept>
|
|
183
|
-
#include <memory>
|
|
184
|
-
|
|
185
|
-
// Use optional outer namespace
|
|
186
|
-
#ifdef STITCH_CLARA_OPEN_NAMESPACE
|
|
187
|
-
STITCH_CLARA_OPEN_NAMESPACE
|
|
188
|
-
#endif
|
|
189
|
-
|
|
190
|
-
namespace Clara {
|
|
191
|
-
|
|
192
|
-
struct UnpositionalTag {};
|
|
193
|
-
|
|
194
|
-
extern UnpositionalTag _;
|
|
195
|
-
|
|
196
|
-
#ifdef CLARA_CONFIG_MAIN
|
|
197
|
-
UnpositionalTag _;
|
|
198
|
-
#endif
|
|
199
|
-
|
|
200
|
-
namespace Detail {
|
|
201
|
-
|
|
202
|
-
#ifdef CLARA_CONSOLE_WIDTH
|
|
203
|
-
const unsigned int consoleWidth = CLARA_CONFIG_CONSOLE_WIDTH;
|
|
204
|
-
#else
|
|
205
|
-
const unsigned int consoleWidth = 80;
|
|
206
|
-
#endif
|
|
207
|
-
|
|
208
|
-
using namespace Tbc;
|
|
209
|
-
|
|
210
|
-
inline bool startsWith( std::string const& str, std::string const& prefix ) {
|
|
211
|
-
return str.size() >= prefix.size() && str.substr( 0, prefix.size() ) == prefix;
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
template<typename T> struct RemoveConstRef{ typedef T type; };
|
|
215
|
-
template<typename T> struct RemoveConstRef<T&>{ typedef T type; };
|
|
216
|
-
template<typename T> struct RemoveConstRef<T const&>{ typedef T type; };
|
|
217
|
-
template<typename T> struct RemoveConstRef<T const>{ typedef T type; };
|
|
218
|
-
|
|
219
|
-
template<typename T> struct IsBool { static const bool value = false; };
|
|
220
|
-
template<> struct IsBool<bool> { static const bool value = true; };
|
|
221
|
-
|
|
222
|
-
template<typename T>
|
|
223
|
-
void convertInto( std::string const& _source, T& _dest ) {
|
|
224
|
-
std::stringstream ss;
|
|
225
|
-
ss << _source;
|
|
226
|
-
ss >> _dest;
|
|
227
|
-
if( ss.fail() )
|
|
228
|
-
throw std::runtime_error( "Unable to convert " + _source + " to destination type" );
|
|
229
|
-
}
|
|
230
|
-
inline void convertInto( std::string const& _source, std::string& _dest ) {
|
|
231
|
-
_dest = _source;
|
|
232
|
-
}
|
|
233
|
-
inline void convertInto( std::string const& _source, bool& _dest ) {
|
|
234
|
-
std::string sourceLC = _source;
|
|
235
|
-
std::transform( sourceLC.begin(), sourceLC.end(), sourceLC.begin(), ::tolower );
|
|
236
|
-
if( sourceLC == "y" || sourceLC == "1" || sourceLC == "true" || sourceLC == "yes" || sourceLC == "on" )
|
|
237
|
-
_dest = true;
|
|
238
|
-
else if( sourceLC == "n" || sourceLC == "0" || sourceLC == "false" || sourceLC == "no" || sourceLC == "off" )
|
|
239
|
-
_dest = false;
|
|
240
|
-
else
|
|
241
|
-
throw std::runtime_error( "Expected a boolean value but did not recognise:\n '" + _source + "'" );
|
|
242
|
-
}
|
|
243
|
-
inline void convertInto( bool _source, bool& _dest ) {
|
|
244
|
-
_dest = _source;
|
|
245
|
-
}
|
|
246
|
-
template<typename T>
|
|
247
|
-
inline void convertInto( bool, T& ) {
|
|
248
|
-
throw std::runtime_error( "Invalid conversion" );
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
template<typename ConfigT>
|
|
252
|
-
struct IArgFunction {
|
|
253
|
-
virtual ~IArgFunction() {}
|
|
254
|
-
# ifdef CATCH_CPP11_OR_GREATER
|
|
255
|
-
IArgFunction() = default;
|
|
256
|
-
IArgFunction( IArgFunction const& ) = default;
|
|
257
|
-
# endif
|
|
258
|
-
virtual void set( ConfigT& config, std::string const& value ) const = 0;
|
|
259
|
-
virtual void setFlag( ConfigT& config ) const = 0;
|
|
260
|
-
virtual bool takesArg() const = 0;
|
|
261
|
-
virtual IArgFunction* clone() const = 0;
|
|
262
|
-
};
|
|
263
|
-
|
|
264
|
-
template<typename ConfigT>
|
|
265
|
-
class BoundArgFunction {
|
|
266
|
-
public:
|
|
267
|
-
BoundArgFunction() : functionObj( NULL ) {}
|
|
268
|
-
BoundArgFunction( IArgFunction<ConfigT>* _functionObj ) : functionObj( _functionObj ) {}
|
|
269
|
-
BoundArgFunction( BoundArgFunction const& other ) : functionObj( other.functionObj ? other.functionObj->clone() : NULL ) {}
|
|
270
|
-
BoundArgFunction& operator = ( BoundArgFunction const& other ) {
|
|
271
|
-
IArgFunction<ConfigT>* newFunctionObj = other.functionObj ? other.functionObj->clone() : NULL;
|
|
272
|
-
delete functionObj;
|
|
273
|
-
functionObj = newFunctionObj;
|
|
274
|
-
return *this;
|
|
275
|
-
}
|
|
276
|
-
~BoundArgFunction() { delete functionObj; }
|
|
277
|
-
|
|
278
|
-
void set( ConfigT& config, std::string const& value ) const {
|
|
279
|
-
functionObj->set( config, value );
|
|
280
|
-
}
|
|
281
|
-
void setFlag( ConfigT& config ) const {
|
|
282
|
-
functionObj->setFlag( config );
|
|
283
|
-
}
|
|
284
|
-
bool takesArg() const { return functionObj->takesArg(); }
|
|
285
|
-
|
|
286
|
-
bool isSet() const {
|
|
287
|
-
return functionObj != NULL;
|
|
288
|
-
}
|
|
289
|
-
private:
|
|
290
|
-
IArgFunction<ConfigT>* functionObj;
|
|
291
|
-
};
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
template<typename C>
|
|
295
|
-
struct NullBinder : IArgFunction<C>{
|
|
296
|
-
virtual void set( C&, std::string const& ) const {}
|
|
297
|
-
virtual void setFlag( C& ) const {}
|
|
298
|
-
virtual bool takesArg() const { return true; }
|
|
299
|
-
virtual IArgFunction<C>* clone() const { return new NullBinder( *this ); }
|
|
300
|
-
};
|
|
301
|
-
|
|
302
|
-
template<typename C, typename M>
|
|
303
|
-
struct BoundDataMember : IArgFunction<C>{
|
|
304
|
-
BoundDataMember( M C::* _member ) : member( _member ) {}
|
|
305
|
-
virtual void set( C& p, std::string const& stringValue ) const {
|
|
306
|
-
convertInto( stringValue, p.*member );
|
|
307
|
-
}
|
|
308
|
-
virtual void setFlag( C& p ) const {
|
|
309
|
-
convertInto( true, p.*member );
|
|
310
|
-
}
|
|
311
|
-
virtual bool takesArg() const { return !IsBool<M>::value; }
|
|
312
|
-
virtual IArgFunction<C>* clone() const { return new BoundDataMember( *this ); }
|
|
313
|
-
M C::* member;
|
|
314
|
-
};
|
|
315
|
-
template<typename C, typename M>
|
|
316
|
-
struct BoundUnaryMethod : IArgFunction<C>{
|
|
317
|
-
BoundUnaryMethod( void (C::*_member)( M ) ) : member( _member ) {}
|
|
318
|
-
virtual void set( C& p, std::string const& stringValue ) const {
|
|
319
|
-
typename RemoveConstRef<M>::type value;
|
|
320
|
-
convertInto( stringValue, value );
|
|
321
|
-
(p.*member)( value );
|
|
322
|
-
}
|
|
323
|
-
virtual void setFlag( C& p ) const {
|
|
324
|
-
typename RemoveConstRef<M>::type value;
|
|
325
|
-
convertInto( true, value );
|
|
326
|
-
(p.*member)( value );
|
|
327
|
-
}
|
|
328
|
-
virtual bool takesArg() const { return !IsBool<M>::value; }
|
|
329
|
-
virtual IArgFunction<C>* clone() const { return new BoundUnaryMethod( *this ); }
|
|
330
|
-
void (C::*member)( M );
|
|
331
|
-
};
|
|
332
|
-
template<typename C>
|
|
333
|
-
struct BoundNullaryMethod : IArgFunction<C>{
|
|
334
|
-
BoundNullaryMethod( void (C::*_member)() ) : member( _member ) {}
|
|
335
|
-
virtual void set( C& p, std::string const& stringValue ) const {
|
|
336
|
-
bool value;
|
|
337
|
-
convertInto( stringValue, value );
|
|
338
|
-
if( value )
|
|
339
|
-
(p.*member)();
|
|
340
|
-
}
|
|
341
|
-
virtual void setFlag( C& p ) const {
|
|
342
|
-
(p.*member)();
|
|
343
|
-
}
|
|
344
|
-
virtual bool takesArg() const { return false; }
|
|
345
|
-
virtual IArgFunction<C>* clone() const { return new BoundNullaryMethod( *this ); }
|
|
346
|
-
void (C::*member)();
|
|
347
|
-
};
|
|
348
|
-
|
|
349
|
-
template<typename C>
|
|
350
|
-
struct BoundUnaryFunction : IArgFunction<C>{
|
|
351
|
-
BoundUnaryFunction( void (*_function)( C& ) ) : function( _function ) {}
|
|
352
|
-
virtual void set( C& obj, std::string const& stringValue ) const {
|
|
353
|
-
bool value;
|
|
354
|
-
convertInto( stringValue, value );
|
|
355
|
-
if( value )
|
|
356
|
-
function( obj );
|
|
357
|
-
}
|
|
358
|
-
virtual void setFlag( C& p ) const {
|
|
359
|
-
function( p );
|
|
360
|
-
}
|
|
361
|
-
virtual bool takesArg() const { return false; }
|
|
362
|
-
virtual IArgFunction<C>* clone() const { return new BoundUnaryFunction( *this ); }
|
|
363
|
-
void (*function)( C& );
|
|
364
|
-
};
|
|
365
|
-
|
|
366
|
-
template<typename C, typename T>
|
|
367
|
-
struct BoundBinaryFunction : IArgFunction<C>{
|
|
368
|
-
BoundBinaryFunction( void (*_function)( C&, T ) ) : function( _function ) {}
|
|
369
|
-
virtual void set( C& obj, std::string const& stringValue ) const {
|
|
370
|
-
typename RemoveConstRef<T>::type value;
|
|
371
|
-
convertInto( stringValue, value );
|
|
372
|
-
function( obj, value );
|
|
373
|
-
}
|
|
374
|
-
virtual void setFlag( C& obj ) const {
|
|
375
|
-
typename RemoveConstRef<T>::type value;
|
|
376
|
-
convertInto( true, value );
|
|
377
|
-
function( obj, value );
|
|
378
|
-
}
|
|
379
|
-
virtual bool takesArg() const { return !IsBool<T>::value; }
|
|
380
|
-
virtual IArgFunction<C>* clone() const { return new BoundBinaryFunction( *this ); }
|
|
381
|
-
void (*function)( C&, T );
|
|
382
|
-
};
|
|
383
|
-
|
|
384
|
-
} // namespace Detail
|
|
385
|
-
|
|
386
|
-
struct Parser {
|
|
387
|
-
Parser() : separators( " \t=:" ) {}
|
|
388
|
-
|
|
389
|
-
struct Token {
|
|
390
|
-
enum Type { Positional, ShortOpt, LongOpt };
|
|
391
|
-
Token( Type _type, std::string const& _data ) : type( _type ), data( _data ) {}
|
|
392
|
-
Type type;
|
|
393
|
-
std::string data;
|
|
394
|
-
};
|
|
395
|
-
|
|
396
|
-
void parseIntoTokens( int argc, char const * const * argv, std::vector<Parser::Token>& tokens ) const {
|
|
397
|
-
const std::string doubleDash = "--";
|
|
398
|
-
for( int i = 1; i < argc && argv[i] != doubleDash; ++i )
|
|
399
|
-
parseIntoTokens( argv[i] , tokens);
|
|
400
|
-
}
|
|
401
|
-
void parseIntoTokens( std::string arg, std::vector<Parser::Token>& tokens ) const {
|
|
402
|
-
while( !arg.empty() ) {
|
|
403
|
-
Parser::Token token( Parser::Token::Positional, arg );
|
|
404
|
-
arg = "";
|
|
405
|
-
if( token.data[0] == '-' ) {
|
|
406
|
-
if( token.data.size() > 1 && token.data[1] == '-' ) {
|
|
407
|
-
token = Parser::Token( Parser::Token::LongOpt, token.data.substr( 2 ) );
|
|
408
|
-
}
|
|
409
|
-
else {
|
|
410
|
-
token = Parser::Token( Parser::Token::ShortOpt, token.data.substr( 1 ) );
|
|
411
|
-
if( token.data.size() > 1 && separators.find( token.data[1] ) == std::string::npos ) {
|
|
412
|
-
arg = "-" + token.data.substr( 1 );
|
|
413
|
-
token.data = token.data.substr( 0, 1 );
|
|
414
|
-
}
|
|
415
|
-
}
|
|
416
|
-
}
|
|
417
|
-
if( token.type != Parser::Token::Positional ) {
|
|
418
|
-
std::size_t pos = token.data.find_first_of( separators );
|
|
419
|
-
if( pos != std::string::npos ) {
|
|
420
|
-
arg = token.data.substr( pos+1 );
|
|
421
|
-
token.data = token.data.substr( 0, pos );
|
|
422
|
-
}
|
|
423
|
-
}
|
|
424
|
-
tokens.push_back( token );
|
|
425
|
-
}
|
|
426
|
-
}
|
|
427
|
-
std::string separators;
|
|
428
|
-
};
|
|
429
|
-
|
|
430
|
-
template<typename ConfigT>
|
|
431
|
-
struct CommonArgProperties {
|
|
432
|
-
CommonArgProperties() {}
|
|
433
|
-
CommonArgProperties( Detail::BoundArgFunction<ConfigT> const& _boundField ) : boundField( _boundField ) {}
|
|
434
|
-
|
|
435
|
-
Detail::BoundArgFunction<ConfigT> boundField;
|
|
436
|
-
std::string description;
|
|
437
|
-
std::string detail;
|
|
438
|
-
std::string placeholder; // Only value if boundField takes an arg
|
|
439
|
-
|
|
440
|
-
bool takesArg() const {
|
|
441
|
-
return !placeholder.empty();
|
|
442
|
-
}
|
|
443
|
-
void validate() const {
|
|
444
|
-
if( !boundField.isSet() )
|
|
445
|
-
throw std::logic_error( "option not bound" );
|
|
446
|
-
}
|
|
447
|
-
};
|
|
448
|
-
struct OptionArgProperties {
|
|
449
|
-
std::vector<std::string> shortNames;
|
|
450
|
-
std::string longName;
|
|
451
|
-
|
|
452
|
-
bool hasShortName( std::string const& shortName ) const {
|
|
453
|
-
return std::find( shortNames.begin(), shortNames.end(), shortName ) != shortNames.end();
|
|
454
|
-
}
|
|
455
|
-
bool hasLongName( std::string const& _longName ) const {
|
|
456
|
-
return _longName == longName;
|
|
457
|
-
}
|
|
458
|
-
};
|
|
459
|
-
struct PositionalArgProperties {
|
|
460
|
-
PositionalArgProperties() : position( -1 ) {}
|
|
461
|
-
int position; // -1 means non-positional (floating)
|
|
462
|
-
|
|
463
|
-
bool isFixedPositional() const {
|
|
464
|
-
return position != -1;
|
|
465
|
-
}
|
|
466
|
-
};
|
|
467
|
-
|
|
468
|
-
template<typename ConfigT>
|
|
469
|
-
class CommandLine {
|
|
470
|
-
|
|
471
|
-
struct Arg : CommonArgProperties<ConfigT>, OptionArgProperties, PositionalArgProperties {
|
|
472
|
-
Arg() {}
|
|
473
|
-
Arg( Detail::BoundArgFunction<ConfigT> const& _boundField ) : CommonArgProperties<ConfigT>( _boundField ) {}
|
|
474
|
-
|
|
475
|
-
using CommonArgProperties<ConfigT>::placeholder; // !TBD
|
|
476
|
-
|
|
477
|
-
std::string dbgName() const {
|
|
478
|
-
if( !longName.empty() )
|
|
479
|
-
return "--" + longName;
|
|
480
|
-
if( !shortNames.empty() )
|
|
481
|
-
return "-" + shortNames[0];
|
|
482
|
-
return "positional args";
|
|
483
|
-
}
|
|
484
|
-
std::string commands() const {
|
|
485
|
-
std::ostringstream oss;
|
|
486
|
-
bool first = true;
|
|
487
|
-
std::vector<std::string>::const_iterator it = shortNames.begin(), itEnd = shortNames.end();
|
|
488
|
-
for(; it != itEnd; ++it ) {
|
|
489
|
-
if( first )
|
|
490
|
-
first = false;
|
|
491
|
-
else
|
|
492
|
-
oss << ", ";
|
|
493
|
-
oss << "-" << *it;
|
|
494
|
-
}
|
|
495
|
-
if( !longName.empty() ) {
|
|
496
|
-
if( !first )
|
|
497
|
-
oss << ", ";
|
|
498
|
-
oss << "--" << longName;
|
|
499
|
-
}
|
|
500
|
-
if( !placeholder.empty() )
|
|
501
|
-
oss << " <" << placeholder << ">";
|
|
502
|
-
return oss.str();
|
|
503
|
-
}
|
|
504
|
-
};
|
|
505
|
-
|
|
506
|
-
// NOTE: std::auto_ptr is deprecated in c++11/c++0x
|
|
507
|
-
#if defined(__cplusplus) && __cplusplus > 199711L
|
|
508
|
-
typedef std::unique_ptr<Arg> ArgAutoPtr;
|
|
509
|
-
#else
|
|
510
|
-
typedef std::auto_ptr<Arg> ArgAutoPtr;
|
|
511
|
-
#endif
|
|
512
|
-
|
|
513
|
-
friend void addOptName( Arg& arg, std::string const& optName )
|
|
514
|
-
{
|
|
515
|
-
if( optName.empty() )
|
|
516
|
-
return;
|
|
517
|
-
if( Detail::startsWith( optName, "--" ) ) {
|
|
518
|
-
if( !arg.longName.empty() )
|
|
519
|
-
throw std::logic_error( "Only one long opt may be specified. '"
|
|
520
|
-
+ arg.longName
|
|
521
|
-
+ "' already specified, now attempting to add '"
|
|
522
|
-
+ optName + "'" );
|
|
523
|
-
arg.longName = optName.substr( 2 );
|
|
524
|
-
}
|
|
525
|
-
else if( Detail::startsWith( optName, "-" ) )
|
|
526
|
-
arg.shortNames.push_back( optName.substr( 1 ) );
|
|
527
|
-
else
|
|
528
|
-
throw std::logic_error( "option must begin with - or --. Option was: '" + optName + "'" );
|
|
529
|
-
}
|
|
530
|
-
friend void setPositionalArg( Arg& arg, int position )
|
|
531
|
-
{
|
|
532
|
-
arg.position = position;
|
|
533
|
-
}
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
class ArgBuilder {
|
|
537
|
-
public:
|
|
538
|
-
ArgBuilder( Arg* arg ) : m_arg( arg ) {}
|
|
539
|
-
|
|
540
|
-
// Bind a non-boolean data member (requires placeholder string)
|
|
541
|
-
template<typename C, typename M>
|
|
542
|
-
void bind( M C::* field, std::string const& placeholder ) {
|
|
543
|
-
m_arg->boundField = new Detail::BoundDataMember<C,M>( field );
|
|
544
|
-
m_arg->placeholder = placeholder;
|
|
545
|
-
}
|
|
546
|
-
// Bind a boolean data member (no placeholder required)
|
|
547
|
-
template<typename C>
|
|
548
|
-
void bind( bool C::* field ) {
|
|
549
|
-
m_arg->boundField = new Detail::BoundDataMember<C,bool>( field );
|
|
550
|
-
}
|
|
551
|
-
|
|
552
|
-
// Bind a method taking a single, non-boolean argument (requires a placeholder string)
|
|
553
|
-
template<typename C, typename M>
|
|
554
|
-
void bind( void (C::* unaryMethod)( M ), std::string const& placeholder ) {
|
|
555
|
-
m_arg->boundField = new Detail::BoundUnaryMethod<C,M>( unaryMethod );
|
|
556
|
-
m_arg->placeholder = placeholder;
|
|
557
|
-
}
|
|
558
|
-
|
|
559
|
-
// Bind a method taking a single, boolean argument (no placeholder string required)
|
|
560
|
-
template<typename C>
|
|
561
|
-
void bind( void (C::* unaryMethod)( bool ) ) {
|
|
562
|
-
m_arg->boundField = new Detail::BoundUnaryMethod<C,bool>( unaryMethod );
|
|
563
|
-
}
|
|
564
|
-
|
|
565
|
-
// Bind a method that takes no arguments (will be called if opt is present)
|
|
566
|
-
template<typename C>
|
|
567
|
-
void bind( void (C::* nullaryMethod)() ) {
|
|
568
|
-
m_arg->boundField = new Detail::BoundNullaryMethod<C>( nullaryMethod );
|
|
569
|
-
}
|
|
570
|
-
|
|
571
|
-
// Bind a free function taking a single argument - the object to operate on (no placeholder string required)
|
|
572
|
-
template<typename C>
|
|
573
|
-
void bind( void (* unaryFunction)( C& ) ) {
|
|
574
|
-
m_arg->boundField = new Detail::BoundUnaryFunction<C>( unaryFunction );
|
|
575
|
-
}
|
|
576
|
-
|
|
577
|
-
// Bind a free function taking a single argument - the object to operate on (requires a placeholder string)
|
|
578
|
-
template<typename C, typename T>
|
|
579
|
-
void bind( void (* binaryFunction)( C&, T ), std::string const& placeholder ) {
|
|
580
|
-
m_arg->boundField = new Detail::BoundBinaryFunction<C, T>( binaryFunction );
|
|
581
|
-
m_arg->placeholder = placeholder;
|
|
582
|
-
}
|
|
583
|
-
|
|
584
|
-
ArgBuilder& describe( std::string const& description ) {
|
|
585
|
-
m_arg->description = description;
|
|
586
|
-
return *this;
|
|
587
|
-
}
|
|
588
|
-
ArgBuilder& detail( std::string const& detail ) {
|
|
589
|
-
m_arg->detail = detail;
|
|
590
|
-
return *this;
|
|
591
|
-
}
|
|
592
|
-
|
|
593
|
-
protected:
|
|
594
|
-
Arg* m_arg;
|
|
595
|
-
};
|
|
596
|
-
|
|
597
|
-
class OptBuilder : public ArgBuilder {
|
|
598
|
-
public:
|
|
599
|
-
OptBuilder( Arg* arg ) : ArgBuilder( arg ) {}
|
|
600
|
-
OptBuilder( OptBuilder& other ) : ArgBuilder( other ) {}
|
|
601
|
-
|
|
602
|
-
OptBuilder& operator[]( std::string const& optName ) {
|
|
603
|
-
addOptName( *ArgBuilder::m_arg, optName );
|
|
604
|
-
return *this;
|
|
605
|
-
}
|
|
606
|
-
};
|
|
607
|
-
|
|
608
|
-
public:
|
|
609
|
-
|
|
610
|
-
CommandLine()
|
|
611
|
-
: m_boundProcessName( new Detail::NullBinder<ConfigT>() ),
|
|
612
|
-
m_highestSpecifiedArgPosition( 0 ),
|
|
613
|
-
m_throwOnUnrecognisedTokens( false )
|
|
614
|
-
{}
|
|
615
|
-
CommandLine( CommandLine const& other )
|
|
616
|
-
: m_boundProcessName( other.m_boundProcessName ),
|
|
617
|
-
m_options ( other.m_options ),
|
|
618
|
-
m_positionalArgs( other.m_positionalArgs ),
|
|
619
|
-
m_highestSpecifiedArgPosition( other.m_highestSpecifiedArgPosition ),
|
|
620
|
-
m_throwOnUnrecognisedTokens( other.m_throwOnUnrecognisedTokens )
|
|
621
|
-
{
|
|
622
|
-
if( other.m_floatingArg.get() )
|
|
623
|
-
m_floatingArg = ArgAutoPtr( new Arg( *other.m_floatingArg ) );
|
|
624
|
-
}
|
|
625
|
-
|
|
626
|
-
CommandLine& setThrowOnUnrecognisedTokens( bool shouldThrow = true ) {
|
|
627
|
-
m_throwOnUnrecognisedTokens = shouldThrow;
|
|
628
|
-
return *this;
|
|
629
|
-
}
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
OptBuilder operator[]( std::string const& optName ) {
|
|
633
|
-
m_options.push_back( Arg() );
|
|
634
|
-
addOptName( m_options.back(), optName );
|
|
635
|
-
OptBuilder builder( &m_options.back() );
|
|
636
|
-
return builder;
|
|
637
|
-
}
|
|
638
|
-
|
|
639
|
-
ArgBuilder operator[]( int position ) {
|
|
640
|
-
m_positionalArgs.insert( std::make_pair( position, Arg() ) );
|
|
641
|
-
if( position > m_highestSpecifiedArgPosition )
|
|
642
|
-
m_highestSpecifiedArgPosition = position;
|
|
643
|
-
setPositionalArg( m_positionalArgs[position], position );
|
|
644
|
-
ArgBuilder builder( &m_positionalArgs[position] );
|
|
645
|
-
return builder;
|
|
646
|
-
}
|
|
647
|
-
|
|
648
|
-
// Invoke this with the _ instance
|
|
649
|
-
ArgBuilder operator[]( UnpositionalTag ) {
|
|
650
|
-
if( m_floatingArg.get() )
|
|
651
|
-
throw std::logic_error( "Only one unpositional argument can be added" );
|
|
652
|
-
m_floatingArg = ArgAutoPtr( new Arg() );
|
|
653
|
-
ArgBuilder builder( m_floatingArg.get() );
|
|
654
|
-
return builder;
|
|
655
|
-
}
|
|
656
|
-
|
|
657
|
-
template<typename C, typename M>
|
|
658
|
-
void bindProcessName( M C::* field ) {
|
|
659
|
-
m_boundProcessName = new Detail::BoundDataMember<C,M>( field );
|
|
660
|
-
}
|
|
661
|
-
template<typename C, typename M>
|
|
662
|
-
void bindProcessName( void (C::*_unaryMethod)( M ) ) {
|
|
663
|
-
m_boundProcessName = new Detail::BoundUnaryMethod<C,M>( _unaryMethod );
|
|
664
|
-
}
|
|
665
|
-
|
|
666
|
-
void optUsage( std::ostream& os, std::size_t indent = 0, std::size_t width = Detail::consoleWidth ) const {
|
|
667
|
-
typename std::vector<Arg>::const_iterator itBegin = m_options.begin(), itEnd = m_options.end(), it;
|
|
668
|
-
std::size_t maxWidth = 0;
|
|
669
|
-
for( it = itBegin; it != itEnd; ++it )
|
|
670
|
-
maxWidth = (std::max)( maxWidth, it->commands().size() );
|
|
671
|
-
|
|
672
|
-
for( it = itBegin; it != itEnd; ++it ) {
|
|
673
|
-
Detail::Text usage( it->commands(), Detail::TextAttributes()
|
|
674
|
-
.setWidth( maxWidth+indent )
|
|
675
|
-
.setIndent( indent ) );
|
|
676
|
-
Detail::Text desc( it->description, Detail::TextAttributes()
|
|
677
|
-
.setWidth( width - maxWidth - 3 ) );
|
|
678
|
-
|
|
679
|
-
for( std::size_t i = 0; i < (std::max)( usage.size(), desc.size() ); ++i ) {
|
|
680
|
-
std::string usageCol = i < usage.size() ? usage[i] : "";
|
|
681
|
-
os << usageCol;
|
|
682
|
-
|
|
683
|
-
if( i < desc.size() && !desc[i].empty() )
|
|
684
|
-
os << std::string( indent + 2 + maxWidth - usageCol.size(), ' ' )
|
|
685
|
-
<< desc[i];
|
|
686
|
-
os << "\n";
|
|
687
|
-
}
|
|
688
|
-
}
|
|
689
|
-
}
|
|
690
|
-
std::string optUsage() const {
|
|
691
|
-
std::ostringstream oss;
|
|
692
|
-
optUsage( oss );
|
|
693
|
-
return oss.str();
|
|
694
|
-
}
|
|
695
|
-
|
|
696
|
-
void argSynopsis( std::ostream& os ) const {
|
|
697
|
-
for( int i = 1; i <= m_highestSpecifiedArgPosition; ++i ) {
|
|
698
|
-
if( i > 1 )
|
|
699
|
-
os << " ";
|
|
700
|
-
typename std::map<int, Arg>::const_iterator it = m_positionalArgs.find( i );
|
|
701
|
-
if( it != m_positionalArgs.end() )
|
|
702
|
-
os << "<" << it->second.placeholder << ">";
|
|
703
|
-
else if( m_floatingArg.get() )
|
|
704
|
-
os << "<" << m_floatingArg->placeholder << ">";
|
|
705
|
-
else
|
|
706
|
-
throw std::logic_error( "non consecutive positional arguments with no floating args" );
|
|
707
|
-
}
|
|
708
|
-
// !TBD No indication of mandatory args
|
|
709
|
-
if( m_floatingArg.get() ) {
|
|
710
|
-
if( m_highestSpecifiedArgPosition > 1 )
|
|
711
|
-
os << " ";
|
|
712
|
-
os << "[<" << m_floatingArg->placeholder << "> ...]";
|
|
713
|
-
}
|
|
714
|
-
}
|
|
715
|
-
std::string argSynopsis() const {
|
|
716
|
-
std::ostringstream oss;
|
|
717
|
-
argSynopsis( oss );
|
|
718
|
-
return oss.str();
|
|
719
|
-
}
|
|
720
|
-
|
|
721
|
-
void usage( std::ostream& os, std::string const& procName ) const {
|
|
722
|
-
validate();
|
|
723
|
-
os << "usage:\n " << procName << " ";
|
|
724
|
-
argSynopsis( os );
|
|
725
|
-
if( !m_options.empty() ) {
|
|
726
|
-
os << " [options]\n\nwhere options are: \n";
|
|
727
|
-
optUsage( os, 2 );
|
|
728
|
-
}
|
|
729
|
-
os << "\n";
|
|
730
|
-
}
|
|
731
|
-
std::string usage( std::string const& procName ) const {
|
|
732
|
-
std::ostringstream oss;
|
|
733
|
-
usage( oss, procName );
|
|
734
|
-
return oss.str();
|
|
735
|
-
}
|
|
736
|
-
|
|
737
|
-
ConfigT parse( int argc, char const * const * argv ) const {
|
|
738
|
-
ConfigT config;
|
|
739
|
-
parseInto( argc, argv, config );
|
|
740
|
-
return config;
|
|
741
|
-
}
|
|
742
|
-
|
|
743
|
-
std::vector<Parser::Token> parseInto( int argc, char const * const * argv, ConfigT& config ) const {
|
|
744
|
-
std::string processName = argv[0];
|
|
745
|
-
std::size_t lastSlash = processName.find_last_of( "/\\" );
|
|
746
|
-
if( lastSlash != std::string::npos )
|
|
747
|
-
processName = processName.substr( lastSlash+1 );
|
|
748
|
-
m_boundProcessName.set( config, processName );
|
|
749
|
-
std::vector<Parser::Token> tokens;
|
|
750
|
-
Parser parser;
|
|
751
|
-
parser.parseIntoTokens( argc, argv, tokens );
|
|
752
|
-
return populate( tokens, config );
|
|
753
|
-
}
|
|
754
|
-
|
|
755
|
-
std::vector<Parser::Token> populate( std::vector<Parser::Token> const& tokens, ConfigT& config ) const {
|
|
756
|
-
validate();
|
|
757
|
-
std::vector<Parser::Token> unusedTokens = populateOptions( tokens, config );
|
|
758
|
-
unusedTokens = populateFixedArgs( unusedTokens, config );
|
|
759
|
-
unusedTokens = populateFloatingArgs( unusedTokens, config );
|
|
760
|
-
return unusedTokens;
|
|
761
|
-
}
|
|
762
|
-
|
|
763
|
-
std::vector<Parser::Token> populateOptions( std::vector<Parser::Token> const& tokens, ConfigT& config ) const {
|
|
764
|
-
std::vector<Parser::Token> unusedTokens;
|
|
765
|
-
std::vector<std::string> errors;
|
|
766
|
-
for( std::size_t i = 0; i < tokens.size(); ++i ) {
|
|
767
|
-
Parser::Token const& token = tokens[i];
|
|
768
|
-
typename std::vector<Arg>::const_iterator it = m_options.begin(), itEnd = m_options.end();
|
|
769
|
-
for(; it != itEnd; ++it ) {
|
|
770
|
-
Arg const& arg = *it;
|
|
771
|
-
|
|
772
|
-
try {
|
|
773
|
-
if( ( token.type == Parser::Token::ShortOpt && arg.hasShortName( token.data ) ) ||
|
|
774
|
-
( token.type == Parser::Token::LongOpt && arg.hasLongName( token.data ) ) ) {
|
|
775
|
-
if( arg.takesArg() ) {
|
|
776
|
-
if( i == tokens.size()-1 || tokens[i+1].type != Parser::Token::Positional )
|
|
777
|
-
errors.push_back( "Expected argument to option: " + token.data );
|
|
778
|
-
else
|
|
779
|
-
arg.boundField.set( config, tokens[++i].data );
|
|
780
|
-
}
|
|
781
|
-
else {
|
|
782
|
-
arg.boundField.setFlag( config );
|
|
783
|
-
}
|
|
784
|
-
break;
|
|
785
|
-
}
|
|
786
|
-
}
|
|
787
|
-
catch( std::exception& ex ) {
|
|
788
|
-
errors.push_back( std::string( ex.what() ) + "\n- while parsing: (" + arg.commands() + ")" );
|
|
789
|
-
}
|
|
790
|
-
}
|
|
791
|
-
if( it == itEnd ) {
|
|
792
|
-
if( token.type == Parser::Token::Positional || !m_throwOnUnrecognisedTokens )
|
|
793
|
-
unusedTokens.push_back( token );
|
|
794
|
-
else if( m_throwOnUnrecognisedTokens )
|
|
795
|
-
errors.push_back( "unrecognised option: " + token.data );
|
|
796
|
-
}
|
|
797
|
-
}
|
|
798
|
-
if( !errors.empty() ) {
|
|
799
|
-
std::ostringstream oss;
|
|
800
|
-
for( std::vector<std::string>::const_iterator it = errors.begin(), itEnd = errors.end();
|
|
801
|
-
it != itEnd;
|
|
802
|
-
++it ) {
|
|
803
|
-
if( it != errors.begin() )
|
|
804
|
-
oss << "\n";
|
|
805
|
-
oss << *it;
|
|
806
|
-
}
|
|
807
|
-
throw std::runtime_error( oss.str() );
|
|
808
|
-
}
|
|
809
|
-
return unusedTokens;
|
|
810
|
-
}
|
|
811
|
-
std::vector<Parser::Token> populateFixedArgs( std::vector<Parser::Token> const& tokens, ConfigT& config ) const {
|
|
812
|
-
std::vector<Parser::Token> unusedTokens;
|
|
813
|
-
int position = 1;
|
|
814
|
-
for( std::size_t i = 0; i < tokens.size(); ++i ) {
|
|
815
|
-
Parser::Token const& token = tokens[i];
|
|
816
|
-
typename std::map<int, Arg>::const_iterator it = m_positionalArgs.find( position );
|
|
817
|
-
if( it != m_positionalArgs.end() )
|
|
818
|
-
it->second.boundField.set( config, token.data );
|
|
819
|
-
else
|
|
820
|
-
unusedTokens.push_back( token );
|
|
821
|
-
if( token.type == Parser::Token::Positional )
|
|
822
|
-
position++;
|
|
823
|
-
}
|
|
824
|
-
return unusedTokens;
|
|
825
|
-
}
|
|
826
|
-
std::vector<Parser::Token> populateFloatingArgs( std::vector<Parser::Token> const& tokens, ConfigT& config ) const {
|
|
827
|
-
if( !m_floatingArg.get() )
|
|
828
|
-
return tokens;
|
|
829
|
-
std::vector<Parser::Token> unusedTokens;
|
|
830
|
-
for( std::size_t i = 0; i < tokens.size(); ++i ) {
|
|
831
|
-
Parser::Token const& token = tokens[i];
|
|
832
|
-
if( token.type == Parser::Token::Positional )
|
|
833
|
-
m_floatingArg->boundField.set( config, token.data );
|
|
834
|
-
else
|
|
835
|
-
unusedTokens.push_back( token );
|
|
836
|
-
}
|
|
837
|
-
return unusedTokens;
|
|
838
|
-
}
|
|
839
|
-
|
|
840
|
-
void validate() const
|
|
841
|
-
{
|
|
842
|
-
if( m_options.empty() && m_positionalArgs.empty() && !m_floatingArg.get() )
|
|
843
|
-
throw std::logic_error( "No options or arguments specified" );
|
|
844
|
-
|
|
845
|
-
for( typename std::vector<Arg>::const_iterator it = m_options.begin(),
|
|
846
|
-
itEnd = m_options.end();
|
|
847
|
-
it != itEnd; ++it )
|
|
848
|
-
it->validate();
|
|
849
|
-
}
|
|
850
|
-
|
|
851
|
-
private:
|
|
852
|
-
Detail::BoundArgFunction<ConfigT> m_boundProcessName;
|
|
853
|
-
std::vector<Arg> m_options;
|
|
854
|
-
std::map<int, Arg> m_positionalArgs;
|
|
855
|
-
ArgAutoPtr m_floatingArg;
|
|
856
|
-
int m_highestSpecifiedArgPosition;
|
|
857
|
-
bool m_throwOnUnrecognisedTokens;
|
|
858
|
-
};
|
|
859
|
-
|
|
860
|
-
} // end namespace Clara
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
STITCH_CLARA_CLOSE_NAMESPACE
|
|
864
|
-
#undef STITCH_CLARA_OPEN_NAMESPACE
|
|
865
|
-
#undef STITCH_CLARA_CLOSE_NAMESPACE
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
#endif // TWOBLUECUBES_CLARA_H_INCLUDED
|