genkaio 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.bundle/config +2 -0
- data/.gitignore +2 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +7 -0
- data/Gemfile.lock +34 -0
- data/LICENSE.txt +21 -0
- data/README.md +78 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/genkaio +66 -0
- data/bin/setup +8 -0
- data/demo.gif +0 -0
- data/genkaio.gemspec +28 -0
- data/lib/.genkaio.rb.swp +0 -0
- data/lib/dic/dicdata_2019_1108 +212408 -0
- data/lib/genkaio/version.rb +3 -0
- data/lib/genkaio.rb +73 -0
- data/pkg/genkaio-0.0.1.gem +0 -0
- data/vendor/bundle/ruby/2.5.0/bin/genkaio +27 -0
- data/vendor/bundle/ruby/2.5.0/bin/htmldiff +29 -0
- data/vendor/bundle/ruby/2.5.0/bin/ldiff +29 -0
- data/vendor/bundle/ruby/2.5.0/bin/rake +27 -0
- data/vendor/bundle/ruby/2.5.0/bin/rspec +27 -0
- data/vendor/bundle/ruby/2.5.0/cache/diff-lcs-1.3.gem +0 -0
- data/vendor/bundle/ruby/2.5.0/cache/rake-12.3.3.gem +0 -0
- data/vendor/bundle/ruby/2.5.0/cache/rspec-3.9.0.gem +0 -0
- data/vendor/bundle/ruby/2.5.0/cache/rspec-core-3.9.0.gem +0 -0
- data/vendor/bundle/ruby/2.5.0/cache/rspec-expectations-3.9.0.gem +0 -0
- data/vendor/bundle/ruby/2.5.0/cache/rspec-mocks-3.9.0.gem +0 -0
- data/vendor/bundle/ruby/2.5.0/cache/rspec-support-3.9.0.gem +0 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/.rspec +1 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/Code-of-Conduct.md +74 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/Contributing.md +83 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/History.md +220 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/License.md +39 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/Manifest.txt +37 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/README.rdoc +84 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/Rakefile +57 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/autotest/discover.rb +1 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/bin/htmldiff +32 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/bin/ldiff +6 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/docs/COPYING.txt +339 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/docs/artistic.txt +127 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/array.rb +7 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/block.rb +37 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/callbacks.rb +322 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/change.rb +181 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/htmldiff.rb +149 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/hunk.rb +276 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/internals.rb +307 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/ldiff.rb +167 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/string.rb +5 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs.rb +725 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff-lcs.rb +3 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/change_spec.rb +65 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/diff_spec.rb +47 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/fixtures/ds1.csv +50 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/fixtures/ds2.csv +51 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/hunk_spec.rb +72 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/issues_spec.rb +49 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/lcs_spec.rb +56 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/ldiff_spec.rb +47 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/patch_spec.rb +422 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/sdiff_spec.rb +214 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/spec_helper.rb +321 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/traverse_balanced_spec.rb +310 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/traverse_sequences_spec.rb +139 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/CONTRIBUTING.rdoc +43 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/Gemfile +3 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/History.rdoc +2344 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/MIT-LICENSE +21 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/README.rdoc +156 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/Rakefile +41 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/azure-pipelines.yml +11 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/bin/bundle +105 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/bin/console +7 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/bin/rake +29 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/bin/rdoc +29 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/bin/rubocop +29 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/bin/setup +6 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/doc/command_line_usage.rdoc +158 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/doc/example/Rakefile1 +38 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/doc/example/Rakefile2 +35 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/doc/example/a.c +6 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/doc/example/b.c +6 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/doc/example/main.c +11 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/doc/glossary.rdoc +42 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/doc/jamis.rb +592 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/doc/proto_rake.rdoc +127 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/doc/rake.1 +156 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/doc/rakefile.rdoc +622 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/doc/rational.rdoc +151 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/exe/rake +27 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/application.rb +824 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/backtrace.rb +24 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/clean.rb +78 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/cloneable.rb +17 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/cpu_counter.rb +107 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/default_loader.rb +15 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/dsl_definition.rb +195 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/early_time.rb +22 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/ext/core.rb +26 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/ext/string.rb +176 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/file_creation_task.rb +25 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/file_list.rb +435 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/file_task.rb +54 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/file_utils.rb +137 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/file_utils_ext.rb +145 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/invocation_chain.rb +57 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/invocation_exception_mixin.rb +17 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/late_time.rb +18 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/linked_list.rb +112 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/loaders/makefile.rb +54 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/multi_task.rb +14 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/name_space.rb +38 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/packagetask.rb +207 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/phony.rb +16 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/private_reader.rb +21 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/promise.rb +100 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/pseudo_status.rb +30 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/rake_module.rb +67 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/rake_test_loader.rb +27 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/rule_recursion_overflow_error.rb +20 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/scope.rb +43 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/task.rb +413 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/task_argument_error.rb +8 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/task_arguments.rb +109 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/task_manager.rb +324 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/tasklib.rb +12 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/testtask.rb +224 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/thread_history_display.rb +49 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/thread_pool.rb +163 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/trace_output.rb +23 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/version.rb +10 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/win32.rb +51 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake.rb +71 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/rake.gemspec +42 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-3.9.0/LICENSE.md +27 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-3.9.0/README.md +43 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-3.9.0/lib/rspec/version.rb +5 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-3.9.0/lib/rspec.rb +3 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/.document +5 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/.yardopts +8 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/Changelog.md +2265 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/LICENSE.md +26 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/README.md +384 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/exe/rspec +4 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/autorun.rb +3 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/backtrace_formatter.rb +65 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/bisect/coordinator.rb +62 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/bisect/example_minimizer.rb +173 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/bisect/fork_runner.rb +134 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/bisect/server.rb +61 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/bisect/shell_command.rb +126 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/bisect/shell_runner.rb +73 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/bisect/utilities.rb +58 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/configuration.rb +2336 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/configuration_options.rb +233 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/did_you_mean.rb +46 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/drb.rb +113 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/dsl.rb +98 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/example.rb +656 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/example_group.rb +889 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/example_status_persister.rb +235 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/filter_manager.rb +231 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/flat_map.rb +20 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/base_bisect_formatter.rb +45 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/base_formatter.rb +70 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/base_text_formatter.rb +75 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/bisect_drb_formatter.rb +29 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/bisect_progress_formatter.rb +157 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/console_codes.rb +68 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/deprecation_formatter.rb +223 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/documentation_formatter.rb +102 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/exception_presenter.rb +508 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/failure_list_formatter.rb +23 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/fallback_message_formatter.rb +28 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/helpers.rb +110 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/html_formatter.rb +153 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/html_printer.rb +414 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/html_snippet_extractor.rb +120 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/json_formatter.rb +102 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/profile_formatter.rb +68 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/progress_formatter.rb +29 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/protocol.rb +182 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/snippet_extractor.rb +134 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters/syntax_highlighter.rb +91 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/formatters.rb +272 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/hooks.rb +632 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/invocations.rb +87 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/memoized_helpers.rb +554 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/metadata.rb +498 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/metadata_filter.rb +255 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/minitest_assertions_adapter.rb +31 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/mocking_adapters/flexmock.rb +31 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/mocking_adapters/mocha.rb +57 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/mocking_adapters/null.rb +14 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/mocking_adapters/rr.rb +31 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/mocking_adapters/rspec.rb +32 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/notifications.rb +521 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/option_parser.rb +317 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/ordering.rb +158 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/output_wrapper.rb +29 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/pending.rb +165 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/profiler.rb +34 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/project_initializer/.rspec +1 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/project_initializer/spec/spec_helper.rb +100 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/project_initializer.rb +48 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/rake_task.rb +188 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/reporter.rb +265 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/ruby_project.rb +53 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/runner.rb +204 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/sandbox.rb +37 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/set.rb +54 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/shared_context.rb +55 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/shared_example_group.rb +269 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/shell_escape.rb +49 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/test_unit_assertions_adapter.rb +30 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/version.rb +9 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/warnings.rb +40 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core/world.rb +275 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.9.0/lib/rspec/core.rb +186 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/.document +5 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/.yardopts +6 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/Changelog.md +1170 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/LICENSE.md +25 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/README.md +320 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/expectations/block_snippet_extractor.rb +253 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/expectations/configuration.rb +215 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/expectations/expectation_target.rb +127 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/expectations/fail_with.rb +39 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/expectations/failure_aggregator.rb +194 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/expectations/handler.rb +170 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/expectations/minitest_integration.rb +58 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/expectations/syntax.rb +132 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/expectations/version.rb +8 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/expectations.rb +82 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/aliased_matcher.rb +116 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/all.rb +86 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/base_matcher.rb +193 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/be.rb +288 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/be_between.rb +77 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/be_instance_of.rb +26 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/be_kind_of.rb +20 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/be_within.rb +72 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/change.rb +428 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/compound.rb +276 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/contain_exactly.rb +302 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/cover.rb +24 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/eq.rb +40 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/eql.rb +34 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/equal.rb +81 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/exist.rb +90 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/has.rb +103 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/have_attributes.rb +114 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/include.rb +149 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/match.rb +106 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/operators.rb +128 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/output.rb +200 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/raise_error.rb +230 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/respond_to.rb +174 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/satisfy.rb +60 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/start_or_end_with.rb +94 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/throw_symbol.rb +132 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/yield.rb +432 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in.rb +52 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/composable.rb +171 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/dsl.rb +534 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/english_phrasing.rb +58 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/expecteds_for_multiple_diffs.rb +82 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/fail_matchers.rb +42 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/generated_descriptions.rb +41 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/matcher_delegator.rb +35 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/matcher_protocol.rb +99 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers.rb +1038 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/.document +5 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/.yardopts +6 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/Changelog.md +1125 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/LICENSE.md +25 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/README.md +463 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/any_instance/chain.rb +111 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/any_instance/error_generator.rb +31 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/any_instance/expect_chain_chain.rb +31 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/any_instance/expectation_chain.rb +50 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/any_instance/message_chains.rb +83 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/any_instance/proxy.rb +116 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/any_instance/recorder.rb +289 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/any_instance/stub_chain.rb +51 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/any_instance/stub_chain_chain.rb +23 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/any_instance.rb +11 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/argument_list_matcher.rb +100 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/argument_matchers.rb +322 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/configuration.rb +212 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/error_generator.rb +369 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/example_methods.rb +434 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/instance_method_stasher.rb +146 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/marshal_extension.rb +41 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/matchers/expectation_customization.rb +20 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/matchers/have_received.rb +134 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/matchers/receive.rb +132 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/matchers/receive_message_chain.rb +82 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/matchers/receive_messages.rb +77 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/message_chain.rb +87 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/message_expectation.rb +751 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/method_double.rb +287 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/method_reference.rb +202 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/minitest_integration.rb +68 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/mutate_const.rb +339 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/object_reference.rb +149 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/order_group.rb +81 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/proxy.rb +503 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/space.rb +238 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/standalone.rb +3 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/syntax.rb +325 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/targets.rb +124 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/test_double.rb +171 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/verifying_double.rb +129 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/verifying_message_expectation.rb +54 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/verifying_proxy.rb +220 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks/version.rb +9 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.9.0/lib/rspec/mocks.rb +130 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/Changelog.md +275 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/LICENSE.md +23 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/README.md +40 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/caller_filter.rb +83 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/comparable_version.rb +46 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/differ.rb +215 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/directory_maker.rb +63 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/encoded_string.rb +165 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/fuzzy_matcher.rb +48 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/hunk_generator.rb +47 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/matcher_definition.rb +42 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/method_signature_verifier.rb +438 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/mutex.rb +73 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/object_formatter.rb +275 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/recursive_const_methods.rb +76 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/reentrant_mutex.rb +53 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/ruby_features.rb +176 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/source/location.rb +21 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/source/node.rb +110 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/source/token.rb +87 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/source.rb +75 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/spec/deprecation_helpers.rb +64 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/spec/formatting_support.rb +9 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/spec/in_sub_process.rb +69 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/spec/library_wide_checks.rb +150 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/spec/shell_out.rb +89 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/spec/stderr_splitter.rb +63 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/spec/string_matcher.rb +46 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/spec/with_isolated_directory.rb +13 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/spec/with_isolated_stderr.rb +13 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/spec.rb +81 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/version.rb +7 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support/warnings.rb +39 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.9.0/lib/rspec/support.rb +149 -0
- data/vendor/bundle/ruby/2.5.0/specifications/diff-lcs-1.3.gemspec +61 -0
- data/vendor/bundle/ruby/2.5.0/specifications/rake-12.3.3.gemspec +49 -0
- data/vendor/bundle/ruby/2.5.0/specifications/rspec-3.9.0.gemspec +43 -0
- data/vendor/bundle/ruby/2.5.0/specifications/rspec-core-3.9.0.gemspec +63 -0
- data/vendor/bundle/ruby/2.5.0/specifications/rspec-expectations-3.9.0.gemspec +51 -0
- data/vendor/bundle/ruby/2.5.0/specifications/rspec-mocks-3.9.0.gemspec +51 -0
- data/vendor/bundle/ruby/2.5.0/specifications/rspec-support-3.9.0.gemspec +39 -0
- metadata +411 -0
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
module RSpec
|
|
2
|
+
module Matchers
|
|
3
|
+
module BuiltIn
|
|
4
|
+
# @api private
|
|
5
|
+
# Provides the implementation for `raise_error`.
|
|
6
|
+
# Not intended to be instantiated directly.
|
|
7
|
+
# rubocop:disable ClassLength
|
|
8
|
+
# rubocop:disable RescueException
|
|
9
|
+
class RaiseError
|
|
10
|
+
include Composable
|
|
11
|
+
|
|
12
|
+
def initialize(expected_error_or_message=nil, expected_message=nil, &block)
|
|
13
|
+
@block = block
|
|
14
|
+
@actual_error = nil
|
|
15
|
+
@warn_about_bare_error = expected_error_or_message.nil?
|
|
16
|
+
|
|
17
|
+
case expected_error_or_message
|
|
18
|
+
when nil
|
|
19
|
+
@expected_error = Exception
|
|
20
|
+
@expected_message = expected_message
|
|
21
|
+
when String
|
|
22
|
+
@expected_error = Exception
|
|
23
|
+
@expected_message = expected_error_or_message
|
|
24
|
+
else
|
|
25
|
+
@expected_error = expected_error_or_message
|
|
26
|
+
@expected_message = expected_message
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# @api public
|
|
31
|
+
# Specifies the expected error message.
|
|
32
|
+
def with_message(expected_message)
|
|
33
|
+
raise_message_already_set if @expected_message
|
|
34
|
+
@warn_about_bare_error = false
|
|
35
|
+
@expected_message = expected_message
|
|
36
|
+
self
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# rubocop:disable MethodLength
|
|
40
|
+
# @private
|
|
41
|
+
def matches?(given_proc, negative_expectation=false, &block)
|
|
42
|
+
@given_proc = given_proc
|
|
43
|
+
@block ||= block
|
|
44
|
+
@raised_expected_error = false
|
|
45
|
+
@with_expected_message = false
|
|
46
|
+
@eval_block = false
|
|
47
|
+
@eval_block_passed = false
|
|
48
|
+
|
|
49
|
+
return false unless Proc === given_proc
|
|
50
|
+
|
|
51
|
+
begin
|
|
52
|
+
given_proc.call
|
|
53
|
+
rescue Exception => @actual_error
|
|
54
|
+
if values_match?(@expected_error, @actual_error) ||
|
|
55
|
+
values_match?(@expected_error, @actual_error.message)
|
|
56
|
+
@raised_expected_error = true
|
|
57
|
+
@with_expected_message = verify_message
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
warn_about_bare_error if warning_about_bare_error && !negative_expectation
|
|
62
|
+
eval_block if !negative_expectation && ready_to_eval_block?
|
|
63
|
+
|
|
64
|
+
expectation_matched?
|
|
65
|
+
end
|
|
66
|
+
# rubocop:enable MethodLength
|
|
67
|
+
|
|
68
|
+
# @private
|
|
69
|
+
def does_not_match?(given_proc)
|
|
70
|
+
warn_for_false_positives
|
|
71
|
+
!matches?(given_proc, :negative_expectation) && Proc === given_proc
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# @private
|
|
75
|
+
def supports_block_expectations?
|
|
76
|
+
true
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def expects_call_stack_jump?
|
|
80
|
+
true
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
# @api private
|
|
84
|
+
# @return [String]
|
|
85
|
+
def failure_message
|
|
86
|
+
@eval_block ? @actual_error.message : "expected #{expected_error}#{given_error}"
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
# @api private
|
|
90
|
+
# @return [String]
|
|
91
|
+
def failure_message_when_negated
|
|
92
|
+
"expected no #{expected_error}#{given_error}"
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
# @api private
|
|
96
|
+
# @return [String]
|
|
97
|
+
def description
|
|
98
|
+
"raise #{expected_error}"
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
private
|
|
102
|
+
|
|
103
|
+
def expectation_matched?
|
|
104
|
+
error_and_message_match? && block_matches?
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
def error_and_message_match?
|
|
108
|
+
@raised_expected_error && @with_expected_message
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
def block_matches?
|
|
112
|
+
@eval_block ? @eval_block_passed : true
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
def ready_to_eval_block?
|
|
116
|
+
@raised_expected_error && @with_expected_message && @block
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
def eval_block
|
|
120
|
+
@eval_block = true
|
|
121
|
+
begin
|
|
122
|
+
@block[@actual_error]
|
|
123
|
+
@eval_block_passed = true
|
|
124
|
+
rescue Exception => err
|
|
125
|
+
@actual_error = err
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
def verify_message
|
|
130
|
+
return true if @expected_message.nil?
|
|
131
|
+
values_match?(@expected_message, @actual_error.message.to_s)
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
def warn_for_false_positives
|
|
135
|
+
expression = if expecting_specific_exception? && @expected_message
|
|
136
|
+
"`expect { }.not_to raise_error(SpecificErrorClass, message)`"
|
|
137
|
+
elsif expecting_specific_exception?
|
|
138
|
+
"`expect { }.not_to raise_error(SpecificErrorClass)`"
|
|
139
|
+
elsif @expected_message
|
|
140
|
+
"`expect { }.not_to raise_error(message)`"
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
return unless expression
|
|
144
|
+
|
|
145
|
+
warn_about_negative_false_positive expression
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
def handle_warning(message)
|
|
149
|
+
RSpec::Expectations.configuration.false_positives_handler.call(message)
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
def warning_about_bare_error
|
|
153
|
+
@warn_about_bare_error && @block.nil?
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
def warn_about_bare_error
|
|
157
|
+
handle_warning("Using the `raise_error` matcher without providing a specific " \
|
|
158
|
+
"error or message risks false positives, since `raise_error` " \
|
|
159
|
+
"will match when Ruby raises a `NoMethodError`, `NameError` or " \
|
|
160
|
+
"`ArgumentError`, potentially allowing the expectation to pass " \
|
|
161
|
+
"without even executing the method you are intending to call. " \
|
|
162
|
+
"#{warning}"\
|
|
163
|
+
"Instead consider providing a specific error class or message. " \
|
|
164
|
+
"This message can be suppressed by setting: " \
|
|
165
|
+
"`RSpec::Expectations.configuration.on_potential_false" \
|
|
166
|
+
"_positives = :nothing`")
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
def warn_about_negative_false_positive(expression)
|
|
170
|
+
handle_warning("Using #{expression} risks false positives, since literally " \
|
|
171
|
+
"any other error would cause the expectation to pass, " \
|
|
172
|
+
"including those raised by Ruby (e.g. NoMethodError, NameError " \
|
|
173
|
+
"and ArgumentError), meaning the code you are intending to test " \
|
|
174
|
+
"may not even get reached. Instead consider using " \
|
|
175
|
+
"`expect { }.not_to raise_error` or `expect { }.to raise_error" \
|
|
176
|
+
"(DifferentSpecificErrorClass)`. This message can be suppressed by " \
|
|
177
|
+
"setting: `RSpec::Expectations.configuration.on_potential_false" \
|
|
178
|
+
"_positives = :nothing`")
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
def expected_error
|
|
182
|
+
case @expected_message
|
|
183
|
+
when nil
|
|
184
|
+
if RSpec::Support.is_a_matcher?(@expected_error)
|
|
185
|
+
"Exception with #{description_of(@expected_error)}"
|
|
186
|
+
else
|
|
187
|
+
description_of(@expected_error)
|
|
188
|
+
end
|
|
189
|
+
when Regexp
|
|
190
|
+
"#{@expected_error} with message matching #{description_of(@expected_message)}"
|
|
191
|
+
else
|
|
192
|
+
"#{@expected_error} with #{description_of(@expected_message)}"
|
|
193
|
+
end
|
|
194
|
+
end
|
|
195
|
+
|
|
196
|
+
def format_backtrace(backtrace)
|
|
197
|
+
formatter = Matchers.configuration.backtrace_formatter
|
|
198
|
+
formatter.format_backtrace(backtrace)
|
|
199
|
+
end
|
|
200
|
+
|
|
201
|
+
def given_error
|
|
202
|
+
return " but was not given a block" unless Proc === @given_proc
|
|
203
|
+
return " but nothing was raised" unless @actual_error
|
|
204
|
+
|
|
205
|
+
backtrace = format_backtrace(@actual_error.backtrace)
|
|
206
|
+
[
|
|
207
|
+
", got #{description_of(@actual_error)} with backtrace:",
|
|
208
|
+
*backtrace
|
|
209
|
+
].join("\n # ")
|
|
210
|
+
end
|
|
211
|
+
|
|
212
|
+
def expecting_specific_exception?
|
|
213
|
+
@expected_error != Exception
|
|
214
|
+
end
|
|
215
|
+
|
|
216
|
+
def raise_message_already_set
|
|
217
|
+
raise "`expect { }.to raise_error(message).with_message(message)` is not valid. " \
|
|
218
|
+
'The matcher only allows the expected message to be specified once'
|
|
219
|
+
end
|
|
220
|
+
|
|
221
|
+
def warning
|
|
222
|
+
warning = "Actual error raised was #{description_of(@actual_error)}. "
|
|
223
|
+
warning if @actual_error
|
|
224
|
+
end
|
|
225
|
+
end
|
|
226
|
+
# rubocop:enable RescueException
|
|
227
|
+
# rubocop:enable ClassLength
|
|
228
|
+
end
|
|
229
|
+
end
|
|
230
|
+
end
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
RSpec::Support.require_rspec_support "method_signature_verifier"
|
|
2
|
+
|
|
3
|
+
module RSpec
|
|
4
|
+
module Matchers
|
|
5
|
+
module BuiltIn
|
|
6
|
+
# @api private
|
|
7
|
+
# Provides the implementation for `respond_to`.
|
|
8
|
+
# Not intended to be instantiated directly.
|
|
9
|
+
class RespondTo < BaseMatcher
|
|
10
|
+
def initialize(*names)
|
|
11
|
+
@names = names
|
|
12
|
+
@expected_arity = nil
|
|
13
|
+
@expected_keywords = []
|
|
14
|
+
@unlimited_arguments = nil
|
|
15
|
+
@arbitrary_keywords = nil
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# @api public
|
|
19
|
+
# Specifies the number of expected arguments.
|
|
20
|
+
#
|
|
21
|
+
# @example
|
|
22
|
+
# expect(obj).to respond_to(:message).with(3).arguments
|
|
23
|
+
def with(n)
|
|
24
|
+
@expected_arity = n
|
|
25
|
+
self
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# @api public
|
|
29
|
+
# Specifies keyword arguments, if any.
|
|
30
|
+
#
|
|
31
|
+
# @example
|
|
32
|
+
# expect(obj).to respond_to(:message).with_keywords(:color, :shape)
|
|
33
|
+
# @example with an expected number of arguments
|
|
34
|
+
# expect(obj).to respond_to(:message).with(3).arguments.and_keywords(:color, :shape)
|
|
35
|
+
def with_keywords(*keywords)
|
|
36
|
+
@expected_keywords = keywords
|
|
37
|
+
self
|
|
38
|
+
end
|
|
39
|
+
alias :and_keywords :with_keywords
|
|
40
|
+
|
|
41
|
+
# @api public
|
|
42
|
+
# Specifies that the method accepts any keyword, i.e. the method has
|
|
43
|
+
# a splatted keyword parameter of the form **kw_args.
|
|
44
|
+
#
|
|
45
|
+
# @example
|
|
46
|
+
# expect(obj).to respond_to(:message).with_any_keywords
|
|
47
|
+
def with_any_keywords
|
|
48
|
+
@arbitrary_keywords = true
|
|
49
|
+
self
|
|
50
|
+
end
|
|
51
|
+
alias :and_any_keywords :with_any_keywords
|
|
52
|
+
|
|
53
|
+
# @api public
|
|
54
|
+
# Specifies that the number of arguments has no upper limit, i.e. the
|
|
55
|
+
# method has a splatted parameter of the form *args.
|
|
56
|
+
#
|
|
57
|
+
# @example
|
|
58
|
+
# expect(obj).to respond_to(:message).with_unlimited_arguments
|
|
59
|
+
def with_unlimited_arguments
|
|
60
|
+
@unlimited_arguments = true
|
|
61
|
+
self
|
|
62
|
+
end
|
|
63
|
+
alias :and_unlimited_arguments :with_unlimited_arguments
|
|
64
|
+
|
|
65
|
+
# @api public
|
|
66
|
+
# No-op. Intended to be used as syntactic sugar when using `with`.
|
|
67
|
+
#
|
|
68
|
+
# @example
|
|
69
|
+
# expect(obj).to respond_to(:message).with(3).arguments
|
|
70
|
+
def argument
|
|
71
|
+
self
|
|
72
|
+
end
|
|
73
|
+
alias :arguments :argument
|
|
74
|
+
|
|
75
|
+
# @private
|
|
76
|
+
def matches?(actual)
|
|
77
|
+
find_failing_method_names(actual, :reject).empty?
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
# @private
|
|
81
|
+
def does_not_match?(actual)
|
|
82
|
+
find_failing_method_names(actual, :select).empty?
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
# @api private
|
|
86
|
+
# @return [String]
|
|
87
|
+
def failure_message
|
|
88
|
+
"expected #{actual_formatted} to respond to #{@failing_method_names.map { |name| description_of(name) }.join(', ')}#{with_arity}"
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
# @api private
|
|
92
|
+
# @return [String]
|
|
93
|
+
def failure_message_when_negated
|
|
94
|
+
failure_message.sub(/to respond to/, 'not to respond to')
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
# @api private
|
|
98
|
+
# @return [String]
|
|
99
|
+
def description
|
|
100
|
+
"respond to #{pp_names}#{with_arity}"
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
private
|
|
104
|
+
|
|
105
|
+
def find_failing_method_names(actual, filter_method)
|
|
106
|
+
@actual = actual
|
|
107
|
+
@failing_method_names = @names.__send__(filter_method) do |name|
|
|
108
|
+
@actual.respond_to?(name) && matches_arity?(actual, name)
|
|
109
|
+
end
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
def matches_arity?(actual, name)
|
|
113
|
+
expectation = Support::MethodSignatureExpectation.new
|
|
114
|
+
|
|
115
|
+
if @expected_arity.is_a?(Range)
|
|
116
|
+
expectation.min_count = @expected_arity.min
|
|
117
|
+
expectation.max_count = @expected_arity.max
|
|
118
|
+
else
|
|
119
|
+
expectation.min_count = @expected_arity
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
expectation.keywords = @expected_keywords
|
|
123
|
+
expectation.expect_unlimited_arguments = @unlimited_arguments
|
|
124
|
+
expectation.expect_arbitrary_keywords = @arbitrary_keywords
|
|
125
|
+
|
|
126
|
+
return true if expectation.empty?
|
|
127
|
+
|
|
128
|
+
Support::StrictSignatureVerifier.new(method_signature_for(actual, name)).
|
|
129
|
+
with_expectation(expectation).valid?
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
def method_signature_for(actual, name)
|
|
133
|
+
method_handle = Support.method_handle_for(actual, name)
|
|
134
|
+
|
|
135
|
+
if name == :new && method_handle.owner === ::Class && ::Class === actual
|
|
136
|
+
Support::MethodSignature.new(actual.instance_method(:initialize))
|
|
137
|
+
else
|
|
138
|
+
Support::MethodSignature.new(method_handle)
|
|
139
|
+
end
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
def with_arity
|
|
143
|
+
str = ''.dup
|
|
144
|
+
str << " with #{with_arity_string}" if @expected_arity
|
|
145
|
+
str << " #{str.length == 0 ? 'with' : 'and'} #{with_keywords_string}" if @expected_keywords && @expected_keywords.count > 0
|
|
146
|
+
str << " #{str.length == 0 ? 'with' : 'and'} unlimited arguments" if @unlimited_arguments
|
|
147
|
+
str << " #{str.length == 0 ? 'with' : 'and'} any keywords" if @arbitrary_keywords
|
|
148
|
+
str
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
def with_arity_string
|
|
152
|
+
"#{@expected_arity} argument#{@expected_arity == 1 ? '' : 's'}"
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
def with_keywords_string
|
|
156
|
+
kw_str = case @expected_keywords.count
|
|
157
|
+
when 1
|
|
158
|
+
@expected_keywords.first.inspect
|
|
159
|
+
when 2
|
|
160
|
+
@expected_keywords.map(&:inspect).join(' and ')
|
|
161
|
+
else
|
|
162
|
+
"#{@expected_keywords[0...-1].map(&:inspect).join(', ')}, and #{@expected_keywords.last.inspect}"
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
"keyword#{@expected_keywords.count == 1 ? '' : 's'} #{kw_str}"
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
def pp_names
|
|
169
|
+
@names.length == 1 ? "##{@names.first}" : description_of(@names)
|
|
170
|
+
end
|
|
171
|
+
end
|
|
172
|
+
end
|
|
173
|
+
end
|
|
174
|
+
end
|
data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/satisfy.rb
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
module RSpec
|
|
2
|
+
module Matchers
|
|
3
|
+
module BuiltIn
|
|
4
|
+
# @api private
|
|
5
|
+
# Provides the implementation for `satisfy`.
|
|
6
|
+
# Not intended to be instantiated directly.
|
|
7
|
+
class Satisfy < BaseMatcher
|
|
8
|
+
def initialize(description=nil, &block)
|
|
9
|
+
@description = description
|
|
10
|
+
@block = block
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
# @private
|
|
14
|
+
def matches?(actual, &block)
|
|
15
|
+
@block = block if block
|
|
16
|
+
@actual = actual
|
|
17
|
+
@block.call(actual)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# @private
|
|
21
|
+
def description
|
|
22
|
+
@description ||= "satisfy #{block_representation}"
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# @api private
|
|
26
|
+
# @return [String]
|
|
27
|
+
def failure_message
|
|
28
|
+
"expected #{actual_formatted} to #{description}"
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# @api private
|
|
32
|
+
# @return [String]
|
|
33
|
+
def failure_message_when_negated
|
|
34
|
+
"expected #{actual_formatted} not to #{description}"
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
private
|
|
38
|
+
|
|
39
|
+
if RSpec::Support::RubyFeatures.ripper_supported?
|
|
40
|
+
def block_representation
|
|
41
|
+
if (block_snippet = extract_block_snippet)
|
|
42
|
+
"expression `#{block_snippet}`"
|
|
43
|
+
else
|
|
44
|
+
'block'
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def extract_block_snippet
|
|
49
|
+
return nil unless @block
|
|
50
|
+
Expectations::BlockSnippetExtractor.try_extracting_single_line_body_of(@block, matcher_name)
|
|
51
|
+
end
|
|
52
|
+
else
|
|
53
|
+
def block_representation
|
|
54
|
+
'block'
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
module RSpec
|
|
2
|
+
module Matchers
|
|
3
|
+
module BuiltIn
|
|
4
|
+
# @api private
|
|
5
|
+
# Base class for the `end_with` and `start_with` matchers.
|
|
6
|
+
# Not intended to be instantiated directly.
|
|
7
|
+
class StartOrEndWith < BaseMatcher
|
|
8
|
+
def initialize(*expected)
|
|
9
|
+
@actual_does_not_have_ordered_elements = false
|
|
10
|
+
@expected = expected.length == 1 ? expected.first : expected
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
# @api private
|
|
14
|
+
# @return [String]
|
|
15
|
+
def failure_message
|
|
16
|
+
super.tap do |msg|
|
|
17
|
+
if @actual_does_not_have_ordered_elements
|
|
18
|
+
msg << ", but it does not have ordered elements"
|
|
19
|
+
elsif !actual.respond_to?(:[])
|
|
20
|
+
msg << ", but it cannot be indexed using #[]"
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# @api private
|
|
26
|
+
# @return [String]
|
|
27
|
+
def description
|
|
28
|
+
return super unless Hash === expected
|
|
29
|
+
english_name = EnglishPhrasing.split_words(self.class.matcher_name)
|
|
30
|
+
description_of_expected = surface_descriptions_in(expected).inspect
|
|
31
|
+
"#{english_name} #{description_of_expected}"
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
private
|
|
35
|
+
|
|
36
|
+
def match(_expected, actual)
|
|
37
|
+
return false unless actual.respond_to?(:[])
|
|
38
|
+
|
|
39
|
+
begin
|
|
40
|
+
return true if subsets_comparable? && subset_matches?
|
|
41
|
+
element_matches?
|
|
42
|
+
rescue ArgumentError
|
|
43
|
+
@actual_does_not_have_ordered_elements = true
|
|
44
|
+
return false
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def subsets_comparable?
|
|
49
|
+
# Structs support the Enumerable interface but don't really have
|
|
50
|
+
# the semantics of a subset of a larger set...
|
|
51
|
+
return false if Struct === expected
|
|
52
|
+
|
|
53
|
+
expected.respond_to?(:length)
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# For RSpec 3.1, the base class was named `StartAndEndWith`. For SemVer reasons,
|
|
58
|
+
# we still provide this constant until 4.0.
|
|
59
|
+
# @deprecated Use StartOrEndWith instead.
|
|
60
|
+
# @private
|
|
61
|
+
StartAndEndWith = StartOrEndWith
|
|
62
|
+
|
|
63
|
+
# @api private
|
|
64
|
+
# Provides the implementation for `start_with`.
|
|
65
|
+
# Not intended to be instantiated directly.
|
|
66
|
+
class StartWith < StartOrEndWith
|
|
67
|
+
private
|
|
68
|
+
|
|
69
|
+
def subset_matches?
|
|
70
|
+
values_match?(expected, actual[0, expected.length])
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def element_matches?
|
|
74
|
+
values_match?(expected, actual[0])
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
# @api private
|
|
79
|
+
# Provides the implementation for `end_with`.
|
|
80
|
+
# Not intended to be instantiated directly.
|
|
81
|
+
class EndWith < StartOrEndWith
|
|
82
|
+
private
|
|
83
|
+
|
|
84
|
+
def subset_matches?
|
|
85
|
+
values_match?(expected, actual[-expected.length, expected.length])
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
def element_matches?
|
|
89
|
+
values_match?(expected, actual[-1])
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
end
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
module RSpec
|
|
2
|
+
module Matchers
|
|
3
|
+
module BuiltIn
|
|
4
|
+
# @api private
|
|
5
|
+
# Provides the implementation for `throw_symbol`.
|
|
6
|
+
# Not intended to be instantiated directly.
|
|
7
|
+
class ThrowSymbol
|
|
8
|
+
include Composable
|
|
9
|
+
|
|
10
|
+
def initialize(expected_symbol=nil, expected_arg=nil)
|
|
11
|
+
@expected_symbol = expected_symbol
|
|
12
|
+
@expected_arg = expected_arg
|
|
13
|
+
@caught_symbol = @caught_arg = nil
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# rubocop:disable MethodLength
|
|
17
|
+
# @private
|
|
18
|
+
def matches?(given_proc)
|
|
19
|
+
@block = given_proc
|
|
20
|
+
return false unless Proc === given_proc
|
|
21
|
+
|
|
22
|
+
begin
|
|
23
|
+
if @expected_symbol.nil?
|
|
24
|
+
given_proc.call
|
|
25
|
+
else
|
|
26
|
+
@caught_arg = catch :proc_did_not_throw_anything do
|
|
27
|
+
catch @expected_symbol do
|
|
28
|
+
given_proc.call
|
|
29
|
+
throw :proc_did_not_throw_anything, :nothing_thrown
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
if @caught_arg == :nothing_thrown
|
|
34
|
+
@caught_arg = nil
|
|
35
|
+
else
|
|
36
|
+
@caught_symbol = @expected_symbol
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# Ruby 1.8 uses NameError with `symbol'
|
|
41
|
+
# Ruby 1.9 uses ArgumentError with :symbol
|
|
42
|
+
rescue NameError, ArgumentError => e
|
|
43
|
+
unless (match_data = e.message.match(/uncaught throw (`|\:)([a-zA-Z0-9_]*)(')?/))
|
|
44
|
+
other_exception = e
|
|
45
|
+
raise
|
|
46
|
+
end
|
|
47
|
+
@caught_symbol = match_data.captures[1].to_sym
|
|
48
|
+
rescue => other_exception
|
|
49
|
+
raise
|
|
50
|
+
ensure
|
|
51
|
+
# rubocop:disable EnsureReturn
|
|
52
|
+
unless other_exception
|
|
53
|
+
if @expected_symbol.nil?
|
|
54
|
+
return !!@caught_symbol
|
|
55
|
+
else
|
|
56
|
+
if @expected_arg.nil?
|
|
57
|
+
return @caught_symbol == @expected_symbol
|
|
58
|
+
else
|
|
59
|
+
return (@caught_symbol == @expected_symbol) && values_match?(@expected_arg, @caught_arg)
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
# rubocop:enable EnsureReturn
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
# rubocop:enable MethodLength
|
|
67
|
+
|
|
68
|
+
def does_not_match?(given_proc)
|
|
69
|
+
!matches?(given_proc) && Proc === given_proc
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
# @api private
|
|
73
|
+
# @return [String]
|
|
74
|
+
def failure_message
|
|
75
|
+
"expected #{expected} to be thrown, #{actual_result}"
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
# @api private
|
|
79
|
+
# @return [String]
|
|
80
|
+
def failure_message_when_negated
|
|
81
|
+
"expected #{expected('no Symbol')}#{' not' if @expected_symbol} to be thrown, #{actual_result}"
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
# @api private
|
|
85
|
+
# @return [String]
|
|
86
|
+
def description
|
|
87
|
+
"throw #{expected}"
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
# @api private
|
|
91
|
+
# Indicates this matcher matches against a block.
|
|
92
|
+
# @return [True]
|
|
93
|
+
def supports_block_expectations?
|
|
94
|
+
true
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
def expects_call_stack_jump?
|
|
98
|
+
true
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
private
|
|
102
|
+
|
|
103
|
+
def actual_result
|
|
104
|
+
return "but was not a block" unless Proc === @block
|
|
105
|
+
"got #{caught}"
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
def expected(symbol_desc='a Symbol')
|
|
109
|
+
throw_description(@expected_symbol || symbol_desc, @expected_arg)
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
def caught
|
|
113
|
+
throw_description(@caught_symbol || 'nothing', @caught_arg)
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
def throw_description(symbol, arg)
|
|
117
|
+
symbol_description = symbol.is_a?(String) ? symbol : description_of(symbol)
|
|
118
|
+
|
|
119
|
+
arg_description = if arg
|
|
120
|
+
" with #{description_of arg}"
|
|
121
|
+
elsif @expected_arg && @caught_symbol == @expected_symbol
|
|
122
|
+
" with no argument"
|
|
123
|
+
else
|
|
124
|
+
""
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
symbol_description + arg_description
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
end
|