guesswhat 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +9 -0
- data/CODE_OF_CONDUCT.md +49 -0
- data/Gemfile +4 -0
- data/README.md +36 -0
- data/Rakefile +4 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/guesswhat.gemspec +25 -0
- data/lib/guesswhat/version.rb +3 -0
- data/lib/guesswhat.rb +5 -0
- data/tasks/rspec.rake +3 -0
- data/vendor/bundle/bin/console +23 -0
- data/vendor/bundle/bin/htmldiff +25 -0
- data/vendor/bundle/bin/ldiff +25 -0
- data/vendor/bundle/bin/rake +23 -0
- data/vendor/bundle/bin/rspec +23 -0
- data/vendor/bundle/bin/setup +23 -0
- data/vendor/bundle/cache/diff-lcs-1.2.5.gem +0 -0
- data/vendor/bundle/cache/rake-10.5.0.gem +0 -0
- data/vendor/bundle/cache/rspec-3.4.0.gem +0 -0
- data/vendor/bundle/cache/rspec-core-3.4.4.gem +0 -0
- data/vendor/bundle/cache/rspec-expectations-3.4.0.gem +0 -0
- data/vendor/bundle/cache/rspec-mocks-3.4.1.gem +0 -0
- data/vendor/bundle/cache/rspec-support-3.4.1.gem +0 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/.autotest +3 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/.gemtest +0 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/.hoerc +2 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/.rspec +2 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/.travis.yml +22 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/Contributing.rdoc +64 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/Gemfile +20 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/History.rdoc +152 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/License.rdoc +39 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/Manifest.txt +38 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/README.rdoc +85 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/Rakefile +41 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/autotest/discover.rb +1 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/bin/htmldiff +32 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/bin/ldiff +6 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/docs/COPYING.txt +339 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/docs/artistic.txt +127 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs/array.rb +7 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs/block.rb +37 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs/callbacks.rb +322 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs/change.rb +177 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs/htmldiff.rb +149 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs/hunk.rb +276 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs/internals.rb +301 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs/ldiff.rb +195 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs/string.rb +5 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs.rb +805 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff-lcs.rb +3 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/spec/change_spec.rb +65 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/spec/diff_spec.rb +47 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/spec/hunk_spec.rb +72 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/spec/issues_spec.rb +24 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/spec/lcs_spec.rb +54 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/spec/patch_spec.rb +414 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/spec/sdiff_spec.rb +214 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/spec/spec_helper.rb +290 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/spec/traverse_balanced_spec.rb +310 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/spec/traverse_sequences_spec.rb +139 -0
- data/vendor/bundle/gems/rake-10.5.0/.autotest +7 -0
- data/vendor/bundle/gems/rake-10.5.0/.rubocop.yml +27 -0
- data/vendor/bundle/gems/rake-10.5.0/.togglerc +7 -0
- data/vendor/bundle/gems/rake-10.5.0/CONTRIBUTING.rdoc +38 -0
- data/vendor/bundle/gems/rake-10.5.0/History.rdoc +659 -0
- data/vendor/bundle/gems/rake-10.5.0/MIT-LICENSE +21 -0
- data/vendor/bundle/gems/rake-10.5.0/Manifest.txt +166 -0
- data/vendor/bundle/gems/rake-10.5.0/README.rdoc +139 -0
- data/vendor/bundle/gems/rake-10.5.0/Rakefile +81 -0
- data/vendor/bundle/gems/rake-10.5.0/bin/rake +33 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/command_line_usage.rdoc +158 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/example/Rakefile1 +38 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/example/Rakefile2 +35 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/example/a.c +6 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/example/b.c +6 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/example/main.c +11 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/glossary.rdoc +42 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/jamis.rb +591 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/proto_rake.rdoc +127 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/rake.1 +141 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/rakefile.rdoc +624 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/rational.rdoc +151 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.4.14.rdoc +23 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.4.15.rdoc +35 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.5.0.rdoc +53 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.5.3.rdoc +78 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.5.4.rdoc +46 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.6.0.rdoc +141 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.7.0.rdoc +119 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.7.1.rdoc +59 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.7.2.rdoc +121 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.7.3.rdoc +47 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.8.0.rdoc +114 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.8.2.rdoc +165 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.8.3.rdoc +112 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.8.4.rdoc +147 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.8.5.rdoc +53 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.8.6.rdoc +37 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.8.7.rdoc +55 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.9.0.rdoc +112 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.9.1.rdoc +52 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.9.2.2.rdoc +55 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.9.2.rdoc +49 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.9.3.rdoc +102 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.9.4.rdoc +60 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.9.5.rdoc +55 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.9.6.rdoc +64 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-10.0.0.rdoc +178 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-10.0.1.rdoc +58 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-10.0.2.rdoc +53 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-10.0.3.rdoc +191 -0
- data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-10.1.0.rdoc +61 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/alt_system.rb +110 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/application.rb +790 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/backtrace.rb +23 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/clean.rb +76 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/cloneable.rb +16 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/contrib/.document +1 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/contrib/compositepublisher.rb +21 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/contrib/ftptools.rb +137 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/contrib/publisher.rb +81 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/contrib/rubyforgepublisher.rb +18 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/contrib/sshpublisher.rb +61 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/contrib/sys.rb +4 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/cpu_counter.rb +125 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/default_loader.rb +14 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/dsl_definition.rb +201 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/early_time.rb +21 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/ext/core.rb +25 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/ext/module.rb +2 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/ext/pathname.rb +25 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/ext/string.rb +175 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/ext/time.rb +18 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/file_creation_task.rb +24 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/file_list.rb +428 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/file_task.rb +46 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/file_utils.rb +128 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/file_utils_ext.rb +144 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/gempackagetask.rb +4 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/invocation_chain.rb +56 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/invocation_exception_mixin.rb +16 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/late_time.rb +17 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/linked_list.rb +103 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/loaders/makefile.rb +53 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/multi_task.rb +13 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/name_space.rb +38 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/packagetask.rb +199 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/pathmap.rb +3 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/phony.rb +15 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/private_reader.rb +20 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/promise.rb +99 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/pseudo_status.rb +29 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/rake_module.rb +38 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/rake_test_loader.rb +22 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/rdoctask.rb +4 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/ruby182_test_unit_fix.rb +29 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/rule_recursion_overflow_error.rb +20 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/runtest.rb +27 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/scope.rb +42 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/task.rb +383 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/task_argument_error.rb +7 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/task_arguments.rb +98 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/task_manager.rb +307 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/tasklib.rb +24 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/testtask.rb +213 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/thread_history_display.rb +48 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/thread_pool.rb +164 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/trace_output.rb +22 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/version.rb +7 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake/win32.rb +56 -0
- data/vendor/bundle/gems/rake-10.5.0/lib/rake.rb +79 -0
- data/vendor/bundle/gems/rake-10.5.0/rakelib/publish.rake +20 -0
- data/vendor/bundle/gems/rake-10.5.0/rakelib/test_times.rake +25 -0
- data/vendor/bundle/gems/rake-10.5.0/test/file_creation.rb +34 -0
- data/vendor/bundle/gems/rake-10.5.0/test/helper.rb +129 -0
- data/vendor/bundle/gems/rake-10.5.0/test/support/rakefile_definitions.rb +478 -0
- data/vendor/bundle/gems/rake-10.5.0/test/support/ruby_runner.rb +34 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_private_reader.rb +42 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake.rb +40 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_application.rb +643 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_application_options.rb +468 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_backtrace.rb +119 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_clean.rb +61 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_cpu_counter.rb +68 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_definitions.rb +84 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_directory_task.rb +76 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_dsl.rb +40 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_early_time.rb +31 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_extension.rb +59 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_file_creation_task.rb +56 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_file_list.rb +670 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_file_list_path_map.rb +8 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_file_task.rb +197 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_file_utils.rb +314 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_ftp_file.rb +74 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_functional.rb +482 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_invocation_chain.rb +64 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_late_time.rb +18 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_linked_list.rb +84 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_makefile_loader.rb +46 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_multi_task.rb +64 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_name_space.rb +57 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_package_task.rb +79 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_path_map.rb +168 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_path_map_explode.rb +34 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_path_map_partial.rb +18 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_pathname_extensions.rb +15 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_pseudo_status.rb +21 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_rake_test_loader.rb +20 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_reduce_compat.rb +26 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_require.rb +40 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_rules.rb +388 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_scope.rb +44 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_task.rb +393 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_task_argument_parsing.rb +119 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_task_arguments.rb +127 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_task_lib.rb +9 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_task_manager.rb +178 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_task_manager_argument_resolution.rb +19 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_task_with_arguments.rb +172 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_test_task.rb +146 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_thread_pool.rb +145 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_top_level_functions.rb +71 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_rake_win32.rb +72 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_thread_history_display.rb +101 -0
- data/vendor/bundle/gems/rake-10.5.0/test/test_trace_output.rb +52 -0
- data/vendor/bundle/gems/rspec-3.4.0/LICENSE.md +27 -0
- data/vendor/bundle/gems/rspec-3.4.0/README.md +39 -0
- data/vendor/bundle/gems/rspec-3.4.0/lib/rspec/version.rb +5 -0
- data/vendor/bundle/gems/rspec-3.4.0/lib/rspec.rb +3 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/.document +5 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/.yardopts +8 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/Changelog.md +1972 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/LICENSE.md +26 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/README.md +384 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/exe/rspec +4 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/autorun.rb +3 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/backtrace_formatter.rb +65 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/bisect/coordinator.rb +66 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/bisect/example_minimizer.rb +169 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/bisect/runner.rb +139 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/bisect/server.rb +61 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/configuration.rb +1869 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/configuration_options.rb +191 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/drb.rb +111 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/dsl.rb +96 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/example.rb +631 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/example_group.rb +816 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/example_status_persister.rb +235 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/filter_manager.rb +231 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/flat_map.rb +20 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters/base_formatter.rb +70 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters/base_text_formatter.rb +77 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters/bisect_formatter.rb +68 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters/bisect_progress_formatter.rb +144 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters/console_codes.rb +65 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters/deprecation_formatter.rb +223 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters/documentation_formatter.rb +70 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters/exception_presenter.rb +482 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters/fallback_message_formatter.rb +28 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters/helpers.rb +109 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters/html_formatter.rb +151 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters/html_printer.rb +414 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters/html_snippet_extractor.rb +116 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters/json_formatter.rb +96 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters/profile_formatter.rb +68 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters/progress_formatter.rb +28 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters/protocol.rb +181 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters/snippet_extractor.rb +136 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters.rb +255 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/hooks.rb +638 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/memoized_helpers.rb +532 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/metadata.rb +498 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/metadata_filter.rb +231 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/minitest_assertions_adapter.rb +31 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/mocking_adapters/flexmock.rb +31 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/mocking_adapters/mocha.rb +57 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/mocking_adapters/null.rb +14 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/mocking_adapters/rr.rb +31 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/mocking_adapters/rspec.rb +32 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/notifications.rb +499 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/option_parser.rb +319 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/ordering.rb +158 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/pending.rb +165 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/profiler.rb +32 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/project_initializer/.rspec +2 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/project_initializer/spec/spec_helper.rb +96 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/project_initializer.rb +48 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/rake_task.rb +167 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/reporter.rb +236 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/ruby_project.rb +53 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/runner.rb +183 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/sandbox.rb +37 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/set.rb +49 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/shared_context.rb +55 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/shared_example_group.rb +212 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/shell_escape.rb +49 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/source/location.rb +13 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/source/node.rb +93 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/source/syntax_highlighter.rb +71 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/source/token.rb +86 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/source.rb +76 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/test_unit_assertions_adapter.rb +30 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/version.rb +9 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/warnings.rb +40 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/world.rb +213 -0
- data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core.rb +181 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/.document +5 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/.yardopts +6 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/Changelog.md +979 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/LICENSE.md +25 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/README.md +303 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/expectations/configuration.rb +164 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/expectations/expectation_target.rb +113 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/expectations/fail_with.rb +31 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/expectations/failure_aggregator.rb +194 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/expectations/handler.rb +170 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/expectations/minitest_integration.rb +31 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/expectations/syntax.rb +132 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/expectations/version.rb +8 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/expectations.rb +81 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/aliased_matcher.rb +116 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/all.rb +85 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/base_matcher.rb +181 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/be.rb +285 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/be_between.rb +77 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/be_instance_of.rb +22 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/be_kind_of.rb +16 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/be_within.rb +72 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/change.rb +354 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/compound.rb +272 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/contain_exactly.rb +286 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/cover.rb +24 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/eq.rb +40 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/eql.rb +34 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/equal.rb +81 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/exist.rb +86 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/has.rb +103 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/have_attributes.rb +114 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/include.rb +130 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/match.rb +106 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/operators.rb +128 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/output.rb +200 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/raise_error.rb +228 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/respond_to.rb +90 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/satisfy.rb +37 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/start_or_end_with.rb +94 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/throw_symbol.rb +132 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/yield.rb +419 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in.rb +52 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/composable.rb +185 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/dsl.rb +453 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/english_phrasing.rb +42 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/expecteds_for_multiple_diffs.rb +73 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/fail_matchers.rb +42 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/generated_descriptions.rb +42 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/matcher_delegator.rb +35 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/matcher_protocol.rb +99 -0
- data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers.rb +1037 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/.document +5 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/.yardopts +6 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/Changelog.md +991 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/LICENSE.md +25 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/README.md +445 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/any_instance/chain.rb +110 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/any_instance/error_generator.rb +31 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/any_instance/expect_chain_chain.rb +35 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/any_instance/expectation_chain.rb +48 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/any_instance/message_chains.rb +83 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/any_instance/proxy.rb +116 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/any_instance/recorder.rb +268 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/any_instance/stub_chain.rb +46 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/any_instance/stub_chain_chain.rb +27 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/any_instance.rb +11 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/argument_list_matcher.rb +100 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/argument_matchers.rb +320 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/configuration.rb +205 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/error_generator.rb +367 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/example_methods.rb +422 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/instance_method_stasher.rb +135 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/marshal_extension.rb +41 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/matchers/expectation_customization.rb +20 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/matchers/have_received.rb +128 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/matchers/receive.rb +130 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/matchers/receive_message_chain.rb +80 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/matchers/receive_messages.rb +75 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/message_chain.rb +87 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/message_expectation.rb +717 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/method_double.rb +287 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/method_reference.rb +192 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/mutate_const.rb +335 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/object_reference.rb +149 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/order_group.rb +81 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/proxy.rb +484 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/space.rb +238 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/standalone.rb +3 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/syntax.rb +325 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/targets.rb +97 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/test_double.rb +170 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/verifying_double.rb +129 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/verifying_message_expectation.rb +54 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/verifying_proxy.rb +213 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/version.rb +9 -0
- data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks.rb +126 -0
- data/vendor/bundle/gems/rspec-support-3.4.1/Changelog.md +151 -0
- data/vendor/bundle/gems/rspec-support-3.4.1/LICENSE.md +23 -0
- data/vendor/bundle/gems/rspec-support-3.4.1/README.md +40 -0
- data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/caller_filter.rb +83 -0
- data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/comparable_version.rb +46 -0
- data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/differ.rb +215 -0
- data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/directory_maker.rb +63 -0
- data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/encoded_string.rb +155 -0
- data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/fuzzy_matcher.rb +48 -0
- data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/hunk_generator.rb +47 -0
- data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/matcher_definition.rb +42 -0
- data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/method_signature_verifier.rb +290 -0
- data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/mutex.rb +73 -0
- data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/object_formatter.rb +108 -0
- data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/recursive_const_methods.rb +76 -0
- data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/reentrant_mutex.rb +53 -0
- data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/ruby_features.rb +149 -0
- data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/spec/deprecation_helpers.rb +64 -0
- data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/spec/formatting_support.rb +9 -0
- data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/spec/in_sub_process.rb +52 -0
- data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/spec/library_wide_checks.rb +152 -0
- data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/spec/shell_out.rb +71 -0
- data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/spec/stderr_splitter.rb +63 -0
- data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/spec/string_matcher.rb +46 -0
- data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/spec/with_isolated_directory.rb +9 -0
- data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/spec/with_isolated_stderr.rb +13 -0
- data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/spec.rb +81 -0
- data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/version.rb +7 -0
- data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/version_checker.rb +53 -0
- data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/warnings.rb +39 -0
- data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support.rb +139 -0
- data/vendor/bundle/specifications/diff-lcs-1.2.5.gemspec +68 -0
- data/vendor/bundle/specifications/rake-10.5.0.gemspec +43 -0
- data/vendor/bundle/specifications/rspec-3.4.0.gemspec +42 -0
- data/vendor/bundle/specifications/rspec-core-3.4.4.gemspec +65 -0
- data/vendor/bundle/specifications/rspec-expectations-3.4.0.gemspec +50 -0
- data/vendor/bundle/specifications/rspec-mocks-3.4.1.gemspec +50 -0
- data/vendor/bundle/specifications/rspec-support-3.4.1.gemspec +41 -0
- metadata +532 -0
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
module RSpec
|
|
2
|
+
module Expectations
|
|
3
|
+
# @private
|
|
4
|
+
class FailureAggregator
|
|
5
|
+
attr_reader :block_label, :metadata
|
|
6
|
+
|
|
7
|
+
def aggregate
|
|
8
|
+
RSpec::Support.with_failure_notifier(self) do
|
|
9
|
+
begin
|
|
10
|
+
yield
|
|
11
|
+
rescue ExpectationNotMetError => e
|
|
12
|
+
# Normally, expectation failures will be notified via the `call` method, below,
|
|
13
|
+
# but since the failure notifier uses a thread local variable, failing expectations
|
|
14
|
+
# in another thread will still raise. We handle that here and categorize it as part
|
|
15
|
+
# of `failures` rather than letting it fall through and be categorized as part of
|
|
16
|
+
# `other_errors`.
|
|
17
|
+
failures << e
|
|
18
|
+
rescue Support::AllExceptionsExceptOnesWeMustNotRescue => e
|
|
19
|
+
# While it is normally a bad practice to rescue `Exception`, it's important we do
|
|
20
|
+
# so here. It's low risk (`notify_aggregated_failures` below will re-raise the exception,
|
|
21
|
+
# or raise a `MultipleExpectationsNotMetError` that includes the exception), and it's
|
|
22
|
+
# essential that the user is notified of expectation failures that may have already
|
|
23
|
+
# occurred in the `aggregate_failures` block. Those expectation failures may provide
|
|
24
|
+
# important diagnostics for understanding why this exception occurred, and if we simply
|
|
25
|
+
# allowed this exception to be raised as-is, it would (wrongly) suggest to the user
|
|
26
|
+
# that the expectation passed when it did not, which would be quite confusing.
|
|
27
|
+
other_errors << e
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
notify_aggregated_failures
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def failures
|
|
35
|
+
@failures ||= []
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def other_errors
|
|
39
|
+
@other_errors ||= []
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# This method is defined to satisfy the callable interface
|
|
43
|
+
# expected by `RSpec::Support.with_failure_notifier`.
|
|
44
|
+
def call(failure, options)
|
|
45
|
+
source_id = options[:source_id]
|
|
46
|
+
return if source_id && @seen_source_ids.key?(source_id)
|
|
47
|
+
|
|
48
|
+
@seen_source_ids[source_id] = true
|
|
49
|
+
assign_backtrace(failure) unless failure.backtrace
|
|
50
|
+
failures << failure
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
private
|
|
54
|
+
|
|
55
|
+
if RSpec::Support::Ruby.jruby?
|
|
56
|
+
# On JRuby, `caller` and `raise` produce different backtraces with regards to `.java`
|
|
57
|
+
# stack frames. It's important that we use `raise` for JRuby to produce a backtrace
|
|
58
|
+
# that has a continuous common section with the raised `MultipleExpectationsNotMetError`,
|
|
59
|
+
# so that rspec-core's truncation logic can work properly on it to list the backtrace
|
|
60
|
+
# relative to the `aggregate_failures` block.
|
|
61
|
+
def assign_backtrace(failure)
|
|
62
|
+
raise failure
|
|
63
|
+
rescue failure.class => e
|
|
64
|
+
failure.set_backtrace(e.backtrace)
|
|
65
|
+
end
|
|
66
|
+
else
|
|
67
|
+
# Using `caller` performs better (and is simpler) than `raise` on most Rubies.
|
|
68
|
+
def assign_backtrace(failure)
|
|
69
|
+
failure.set_backtrace(caller)
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def initialize(block_label, metadata)
|
|
74
|
+
@block_label = block_label
|
|
75
|
+
@metadata = metadata
|
|
76
|
+
@seen_source_ids = {} # don't want to load stdlib set
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def notify_aggregated_failures
|
|
80
|
+
all_errors = failures + other_errors
|
|
81
|
+
|
|
82
|
+
case all_errors.size
|
|
83
|
+
when 0 then return nil
|
|
84
|
+
when 1 then RSpec::Support.notify_failure all_errors.first
|
|
85
|
+
else RSpec::Support.notify_failure MultipleExpectationsNotMetError.new(self)
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
# Exception raised from `aggregate_failures` when multiple expectations fail.
|
|
91
|
+
class MultipleExpectationsNotMetError
|
|
92
|
+
# @return [String] The fully formatted exception message.
|
|
93
|
+
def message
|
|
94
|
+
@message ||= (["#{summary}:"] + enumerated_failures + enumerated_errors).join("\n\n")
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
# @return [Array<RSpec::Expectations::ExpectationNotMetError>] The list of expectation failures.
|
|
98
|
+
def failures
|
|
99
|
+
@failure_aggregator.failures
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
# @return [Array<Exception>] The list of other exceptions.
|
|
103
|
+
def other_errors
|
|
104
|
+
@failure_aggregator.other_errors
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
# @return [Array<Exception>] The list of expectation failures and other exceptions, combined.
|
|
108
|
+
attr_reader :all_exceptions
|
|
109
|
+
|
|
110
|
+
# @return [String] The user-assigned label for the aggregation block.
|
|
111
|
+
def aggregation_block_label
|
|
112
|
+
@failure_aggregator.block_label
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
# @return [Hash] The metadata hash passed to `aggregate_failures`.
|
|
116
|
+
def aggregation_metadata
|
|
117
|
+
@failure_aggregator.metadata
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
# @return [String] A summary of the failure, including the block label and a count of failures.
|
|
121
|
+
def summary
|
|
122
|
+
"Got #{exception_count_description} from failure aggregation " \
|
|
123
|
+
"block#{block_description}"
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
# return [String] A description of the failure/error counts.
|
|
127
|
+
def exception_count_description
|
|
128
|
+
failure_count = pluralize("failure", failures.size)
|
|
129
|
+
return failure_count if other_errors.empty?
|
|
130
|
+
error_count = pluralize("other error", other_errors.size)
|
|
131
|
+
"#{failure_count} and #{error_count}"
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
private
|
|
135
|
+
|
|
136
|
+
def initialize(failure_aggregator)
|
|
137
|
+
@failure_aggregator = failure_aggregator
|
|
138
|
+
@all_exceptions = failures + other_errors
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
def block_description
|
|
142
|
+
return "" unless aggregation_block_label
|
|
143
|
+
" #{aggregation_block_label.inspect}"
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
def pluralize(noun, count)
|
|
147
|
+
"#{count} #{noun}#{'s' unless count == 1}"
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
def enumerated(exceptions, index_offset)
|
|
151
|
+
exceptions.each_with_index.map do |exception, index|
|
|
152
|
+
index += index_offset
|
|
153
|
+
formatted_message = yield exception
|
|
154
|
+
"#{index_label index}#{indented formatted_message, index}"
|
|
155
|
+
end
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
def enumerated_failures
|
|
159
|
+
enumerated(failures, 0, &:message)
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
def enumerated_errors
|
|
163
|
+
enumerated(other_errors, failures.size) do |error|
|
|
164
|
+
"#{error.class}: #{error.message}"
|
|
165
|
+
end
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
def indented(failure_message, index)
|
|
169
|
+
line_1, *rest = failure_message.strip.lines.to_a
|
|
170
|
+
first_line_indentation = ' ' * (longest_index_label_width - width_of_label(index))
|
|
171
|
+
|
|
172
|
+
first_line_indentation + line_1 + rest.map do |line|
|
|
173
|
+
line =~ /\S/ ? indentation + line : line
|
|
174
|
+
end.join
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
def indentation
|
|
178
|
+
@indentation ||= ' ' * longest_index_label_width
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
def longest_index_label_width
|
|
182
|
+
@longest_index_label_width ||= width_of_label(failures.size)
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
def width_of_label(index)
|
|
186
|
+
index_label(index).chars.count
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
def index_label(index)
|
|
190
|
+
" #{index + 1}) "
|
|
191
|
+
end
|
|
192
|
+
end
|
|
193
|
+
end
|
|
194
|
+
end
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
module RSpec
|
|
2
|
+
module Expectations
|
|
3
|
+
# @private
|
|
4
|
+
module ExpectationHelper
|
|
5
|
+
def self.check_message(msg)
|
|
6
|
+
unless msg.nil? || msg.respond_to?(:to_str) || msg.respond_to?(:call)
|
|
7
|
+
::Kernel.warn [
|
|
8
|
+
"WARNING: ignoring the provided expectation message argument (",
|
|
9
|
+
msg.inspect,
|
|
10
|
+
") since it is not a string or a proc."
|
|
11
|
+
].join
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# Returns an RSpec-3+ compatible matcher, wrapping a legacy one
|
|
16
|
+
# in an adapter if necessary.
|
|
17
|
+
#
|
|
18
|
+
# @private
|
|
19
|
+
def self.modern_matcher_from(matcher)
|
|
20
|
+
LegacyMatcherAdapter::RSpec2.wrap(matcher) ||
|
|
21
|
+
LegacyMatcherAdapter::RSpec1.wrap(matcher) || matcher
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def self.with_matcher(handler, matcher, message)
|
|
25
|
+
check_message(message)
|
|
26
|
+
matcher = modern_matcher_from(matcher)
|
|
27
|
+
yield matcher
|
|
28
|
+
ensure
|
|
29
|
+
::RSpec::Matchers.last_expectation_handler = handler
|
|
30
|
+
::RSpec::Matchers.last_matcher = matcher
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def self.handle_failure(matcher, message, failure_message_method)
|
|
34
|
+
message = message.call if message.respond_to?(:call)
|
|
35
|
+
message ||= matcher.__send__(failure_message_method)
|
|
36
|
+
|
|
37
|
+
if matcher.respond_to?(:diffable?) && matcher.diffable?
|
|
38
|
+
::RSpec::Expectations.fail_with message, matcher.expected, matcher.actual
|
|
39
|
+
else
|
|
40
|
+
::RSpec::Expectations.fail_with message
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# @private
|
|
46
|
+
class PositiveExpectationHandler
|
|
47
|
+
def self.handle_matcher(actual, initial_matcher, message=nil, &block)
|
|
48
|
+
ExpectationHelper.with_matcher(self, initial_matcher, message) do |matcher|
|
|
49
|
+
return ::RSpec::Matchers::BuiltIn::PositiveOperatorMatcher.new(actual) unless initial_matcher
|
|
50
|
+
matcher.matches?(actual, &block) || ExpectationHelper.handle_failure(matcher, message, :failure_message)
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def self.verb
|
|
55
|
+
"should"
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def self.should_method
|
|
59
|
+
:should
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def self.opposite_should_method
|
|
63
|
+
:should_not
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# @private
|
|
68
|
+
class NegativeExpectationHandler
|
|
69
|
+
def self.handle_matcher(actual, initial_matcher, message=nil, &block)
|
|
70
|
+
ExpectationHelper.with_matcher(self, initial_matcher, message) do |matcher|
|
|
71
|
+
return ::RSpec::Matchers::BuiltIn::NegativeOperatorMatcher.new(actual) unless initial_matcher
|
|
72
|
+
!(does_not_match?(matcher, actual, &block) || ExpectationHelper.handle_failure(matcher, message, :failure_message_when_negated))
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def self.does_not_match?(matcher, actual, &block)
|
|
77
|
+
if matcher.respond_to?(:does_not_match?)
|
|
78
|
+
matcher.does_not_match?(actual, &block)
|
|
79
|
+
else
|
|
80
|
+
!matcher.matches?(actual, &block)
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def self.verb
|
|
85
|
+
"should not"
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
def self.should_method
|
|
89
|
+
:should_not
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
def self.opposite_should_method
|
|
93
|
+
:should
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
# Wraps a matcher written against one of the legacy protocols in
|
|
98
|
+
# order to present the current protocol.
|
|
99
|
+
#
|
|
100
|
+
# @private
|
|
101
|
+
class LegacyMatcherAdapter < Matchers::MatcherDelegator
|
|
102
|
+
def initialize(matcher)
|
|
103
|
+
super
|
|
104
|
+
::RSpec.warn_deprecation(<<-EOS.gsub(/^\s+\|/, ''), :type => "legacy_matcher")
|
|
105
|
+
|#{matcher.class.name || matcher.inspect} implements a legacy RSpec matcher
|
|
106
|
+
|protocol. For the current protocol you should expose the failure messages
|
|
107
|
+
|via the `failure_message` and `failure_message_when_negated` methods.
|
|
108
|
+
|(Used from #{CallerFilter.first_non_rspec_line})
|
|
109
|
+
EOS
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
def self.wrap(matcher)
|
|
113
|
+
new(matcher) if interface_matches?(matcher)
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
# Starting in RSpec 1.2 (and continuing through all 2.x releases),
|
|
117
|
+
# the failure message protocol was:
|
|
118
|
+
# * `failure_message_for_should`
|
|
119
|
+
# * `failure_message_for_should_not`
|
|
120
|
+
# @private
|
|
121
|
+
class RSpec2 < self
|
|
122
|
+
def failure_message
|
|
123
|
+
base_matcher.failure_message_for_should
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
def failure_message_when_negated
|
|
127
|
+
base_matcher.failure_message_for_should_not
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
def self.interface_matches?(matcher)
|
|
131
|
+
(
|
|
132
|
+
!matcher.respond_to?(:failure_message) &&
|
|
133
|
+
matcher.respond_to?(:failure_message_for_should)
|
|
134
|
+
) || (
|
|
135
|
+
!matcher.respond_to?(:failure_message_when_negated) &&
|
|
136
|
+
matcher.respond_to?(:failure_message_for_should_not)
|
|
137
|
+
)
|
|
138
|
+
end
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
# Before RSpec 1.2, the failure message protocol was:
|
|
142
|
+
# * `failure_message`
|
|
143
|
+
# * `negative_failure_message`
|
|
144
|
+
# @private
|
|
145
|
+
class RSpec1 < self
|
|
146
|
+
def failure_message
|
|
147
|
+
base_matcher.failure_message
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
def failure_message_when_negated
|
|
151
|
+
base_matcher.negative_failure_message
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
# Note: `failure_message` is part of the RSpec 3 protocol
|
|
155
|
+
# (paired with `failure_message_when_negated`), so we don't check
|
|
156
|
+
# for `failure_message` here.
|
|
157
|
+
def self.interface_matches?(matcher)
|
|
158
|
+
!matcher.respond_to?(:failure_message_when_negated) &&
|
|
159
|
+
matcher.respond_to?(:negative_failure_message)
|
|
160
|
+
end
|
|
161
|
+
end
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
# RSpec 3.0 was released with the class name misspelled. For SemVer compatibility,
|
|
165
|
+
# we will provide this misspelled alias until 4.0.
|
|
166
|
+
# @deprecated Use LegacyMatcherAdapter instead.
|
|
167
|
+
# @private
|
|
168
|
+
LegacyMacherAdapter = LegacyMatcherAdapter
|
|
169
|
+
end
|
|
170
|
+
end
|
data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/expectations/minitest_integration.rb
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
require 'rspec/expectations'
|
|
2
|
+
|
|
3
|
+
Minitest::Test.class_eval do
|
|
4
|
+
include ::RSpec::Matchers
|
|
5
|
+
|
|
6
|
+
def expect(*a, &b)
|
|
7
|
+
assert(true) # so each expectation gets counted in minitest's assertion stats
|
|
8
|
+
super
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Convert a `MultipleExpectationsNotMetError` to a `Minitest::Assertion` error so
|
|
12
|
+
# it gets counted in minitest's summary stats as a failure rather than an error.
|
|
13
|
+
# It would be nice to make `MultipleExpectationsNotMetError` subclass
|
|
14
|
+
# `Minitest::Assertion`, but Minitest's implementation does not treat subclasses
|
|
15
|
+
# the same, so this is the best we can do.
|
|
16
|
+
def aggregate_failures(*args, &block)
|
|
17
|
+
super
|
|
18
|
+
rescue RSpec::Expectations::MultipleExpectationsNotMetError => e
|
|
19
|
+
assertion_failed = Minitest::Assertion.new(e.message)
|
|
20
|
+
assertion_failed.set_backtrace e.backtrace
|
|
21
|
+
raise assertion_failed
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
module RSpec
|
|
26
|
+
module Expectations
|
|
27
|
+
remove_const :ExpectationNotMetError
|
|
28
|
+
# Exception raised when an expectation fails.
|
|
29
|
+
ExpectationNotMetError = ::Minitest::Assertion
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
module RSpec
|
|
2
|
+
module Expectations
|
|
3
|
+
# @api private
|
|
4
|
+
# Provides methods for enabling and disabling the available
|
|
5
|
+
# syntaxes provided by rspec-expectations.
|
|
6
|
+
module Syntax
|
|
7
|
+
module_function
|
|
8
|
+
|
|
9
|
+
# @api private
|
|
10
|
+
# Determines where we add `should` and `should_not`.
|
|
11
|
+
def default_should_host
|
|
12
|
+
@default_should_host ||= ::Object.ancestors.last
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# @api private
|
|
16
|
+
# Instructs rspec-expectations to warn on first usage of `should` or `should_not`.
|
|
17
|
+
# Enabled by default. This is largely here to facilitate testing.
|
|
18
|
+
def warn_about_should!
|
|
19
|
+
@warn_about_should = true
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# @api private
|
|
23
|
+
# Generates a deprecation warning for the given method if no warning
|
|
24
|
+
# has already been issued.
|
|
25
|
+
def warn_about_should_unless_configured(method_name)
|
|
26
|
+
return unless @warn_about_should
|
|
27
|
+
|
|
28
|
+
RSpec.deprecate(
|
|
29
|
+
"Using `#{method_name}` from rspec-expectations' old `:should` syntax without explicitly enabling the syntax",
|
|
30
|
+
:replacement => "the new `:expect` syntax or explicitly enable `:should` with `config.expect_with(:rspec) { |c| c.syntax = :should }`"
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
@warn_about_should = false
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# @api private
|
|
37
|
+
# Enables the `should` syntax.
|
|
38
|
+
def enable_should(syntax_host=default_should_host)
|
|
39
|
+
@warn_about_should = false if syntax_host == default_should_host
|
|
40
|
+
return if should_enabled?(syntax_host)
|
|
41
|
+
|
|
42
|
+
syntax_host.module_exec do
|
|
43
|
+
def should(matcher=nil, message=nil, &block)
|
|
44
|
+
::RSpec::Expectations::Syntax.warn_about_should_unless_configured(__method__)
|
|
45
|
+
::RSpec::Expectations::PositiveExpectationHandler.handle_matcher(self, matcher, message, &block)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def should_not(matcher=nil, message=nil, &block)
|
|
49
|
+
::RSpec::Expectations::Syntax.warn_about_should_unless_configured(__method__)
|
|
50
|
+
::RSpec::Expectations::NegativeExpectationHandler.handle_matcher(self, matcher, message, &block)
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# @api private
|
|
56
|
+
# Disables the `should` syntax.
|
|
57
|
+
def disable_should(syntax_host=default_should_host)
|
|
58
|
+
return unless should_enabled?(syntax_host)
|
|
59
|
+
|
|
60
|
+
syntax_host.module_exec do
|
|
61
|
+
undef should
|
|
62
|
+
undef should_not
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# @api private
|
|
67
|
+
# Enables the `expect` syntax.
|
|
68
|
+
def enable_expect(syntax_host=::RSpec::Matchers)
|
|
69
|
+
return if expect_enabled?(syntax_host)
|
|
70
|
+
|
|
71
|
+
syntax_host.module_exec do
|
|
72
|
+
def expect(value=::RSpec::Expectations::ExpectationTarget::UndefinedValue, &block)
|
|
73
|
+
::RSpec::Expectations::ExpectationTarget.for(value, block)
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
# @api private
|
|
79
|
+
# Disables the `expect` syntax.
|
|
80
|
+
def disable_expect(syntax_host=::RSpec::Matchers)
|
|
81
|
+
return unless expect_enabled?(syntax_host)
|
|
82
|
+
|
|
83
|
+
syntax_host.module_exec do
|
|
84
|
+
undef expect
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
# @api private
|
|
89
|
+
# Indicates whether or not the `should` syntax is enabled.
|
|
90
|
+
def should_enabled?(syntax_host=default_should_host)
|
|
91
|
+
syntax_host.method_defined?(:should)
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
# @api private
|
|
95
|
+
# Indicates whether or not the `expect` syntax is enabled.
|
|
96
|
+
def expect_enabled?(syntax_host=::RSpec::Matchers)
|
|
97
|
+
syntax_host.method_defined?(:expect)
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
if defined?(BasicObject)
|
|
104
|
+
# The legacy `:should` syntax adds the following methods directly to
|
|
105
|
+
# `BasicObject` so that they are available off of any object. Note, however,
|
|
106
|
+
# that this syntax does not always play nice with delegate/proxy objects.
|
|
107
|
+
# We recommend you use the non-monkeypatching `:expect` syntax instead.
|
|
108
|
+
class BasicObject
|
|
109
|
+
# @method should
|
|
110
|
+
# Passes if `matcher` returns true. Available on every `Object`.
|
|
111
|
+
# @example
|
|
112
|
+
# actual.should eq expected
|
|
113
|
+
# actual.should match /expression/
|
|
114
|
+
# @param [Matcher]
|
|
115
|
+
# matcher
|
|
116
|
+
# @param [String] message optional message to display when the expectation fails
|
|
117
|
+
# @return [Boolean] true if the expectation succeeds (else raises)
|
|
118
|
+
# @note This is only available when you have enabled the `:should` syntax.
|
|
119
|
+
# @see RSpec::Matchers
|
|
120
|
+
|
|
121
|
+
# @method should_not
|
|
122
|
+
# Passes if `matcher` returns false. Available on every `Object`.
|
|
123
|
+
# @example
|
|
124
|
+
# actual.should_not eq expected
|
|
125
|
+
# @param [Matcher]
|
|
126
|
+
# matcher
|
|
127
|
+
# @param [String] message optional message to display when the expectation fails
|
|
128
|
+
# @return [Boolean] false if the negative expectation succeeds (else raises)
|
|
129
|
+
# @note This is only available when you have enabled the `:should` syntax.
|
|
130
|
+
# @see RSpec::Matchers
|
|
131
|
+
end
|
|
132
|
+
end
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
require 'rspec/support'
|
|
2
|
+
RSpec::Support.require_rspec_support "caller_filter"
|
|
3
|
+
RSpec::Support.require_rspec_support "warnings"
|
|
4
|
+
RSpec::Support.require_rspec_support "object_formatter"
|
|
5
|
+
|
|
6
|
+
require 'rspec/matchers'
|
|
7
|
+
|
|
8
|
+
RSpec::Support.define_optimized_require_for_rspec(:expectations) { |f| require_relative(f) }
|
|
9
|
+
|
|
10
|
+
%w[
|
|
11
|
+
expectation_target
|
|
12
|
+
configuration
|
|
13
|
+
fail_with
|
|
14
|
+
handler
|
|
15
|
+
version
|
|
16
|
+
].each { |file| RSpec::Support.require_rspec_expectations(file) }
|
|
17
|
+
|
|
18
|
+
module RSpec
|
|
19
|
+
# RSpec::Expectations provides a simple, readable API to express
|
|
20
|
+
# the expected outcomes in a code example. To express an expected
|
|
21
|
+
# outcome, wrap an object or block in `expect`, call `to` or `to_not`
|
|
22
|
+
# (aliased as `not_to`) and pass it a matcher object:
|
|
23
|
+
#
|
|
24
|
+
# expect(order.total).to eq(Money.new(5.55, :USD))
|
|
25
|
+
# expect(list).to include(user)
|
|
26
|
+
# expect(message).not_to match(/foo/)
|
|
27
|
+
# expect { do_something }.to raise_error
|
|
28
|
+
#
|
|
29
|
+
# The last form (the block form) is needed to match against ruby constructs
|
|
30
|
+
# that are not objects, but can only be observed when executing a block
|
|
31
|
+
# of code. This includes raising errors, throwing symbols, yielding,
|
|
32
|
+
# and changing values.
|
|
33
|
+
#
|
|
34
|
+
# When `expect(...).to` is invoked with a matcher, it turns around
|
|
35
|
+
# and calls `matcher.matches?(<object wrapped by expect>)`. For example,
|
|
36
|
+
# in the expression:
|
|
37
|
+
#
|
|
38
|
+
# expect(order.total).to eq(Money.new(5.55, :USD))
|
|
39
|
+
#
|
|
40
|
+
# ...`eq(Money.new(5.55, :USD))` returns a matcher object, and it results
|
|
41
|
+
# in the equivalent of `eq.matches?(order.total)`. If `matches?` returns
|
|
42
|
+
# `true`, the expectation is met and execution continues. If `false`, then
|
|
43
|
+
# the spec fails with the message returned by `eq.failure_message`.
|
|
44
|
+
#
|
|
45
|
+
# Given the expression:
|
|
46
|
+
#
|
|
47
|
+
# expect(order.entries).not_to include(entry)
|
|
48
|
+
#
|
|
49
|
+
# ...the `not_to` method (also available as `to_not`) invokes the equivalent of
|
|
50
|
+
# `include.matches?(order.entries)`, but it interprets `false` as success, and
|
|
51
|
+
# `true` as a failure, using the message generated by
|
|
52
|
+
# `include.failure_message_when_negated`.
|
|
53
|
+
#
|
|
54
|
+
# rspec-expectations ships with a standard set of useful matchers, and writing
|
|
55
|
+
# your own matchers is quite simple.
|
|
56
|
+
#
|
|
57
|
+
# See [RSpec::Matchers](../RSpec/Matchers) for more information about the
|
|
58
|
+
# built-in matchers that ship with rspec-expectations, and how to write your
|
|
59
|
+
# own custom matchers.
|
|
60
|
+
module Expectations
|
|
61
|
+
# Exception raised when an expectation fails.
|
|
62
|
+
#
|
|
63
|
+
# @note We subclass Exception so that in a stub implementation if
|
|
64
|
+
# the user sets an expectation, it can't be caught in their
|
|
65
|
+
# code by a bare `rescue`.
|
|
66
|
+
# @api public
|
|
67
|
+
class ExpectationNotMetError < Exception
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
# Exception raised from `aggregate_failures` when multiple expectations fail.
|
|
71
|
+
#
|
|
72
|
+
# @note The constant is defined here but the extensive logic of this class
|
|
73
|
+
# is lazily defined when `FailureAggregator` is autoloaded, since we do
|
|
74
|
+
# not need to waste time defining that functionality unless
|
|
75
|
+
# `aggregate_failures` is used.
|
|
76
|
+
class MultipleExpectationsNotMetError < ExpectationNotMetError
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
autoload :FailureAggregator, "rspec/expectations/failure_aggregator"
|
|
80
|
+
end
|
|
81
|
+
end
|