opal-rspec 0.6.2 → 0.7.0.rc.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (710) hide show
  1. checksums.yaml +4 -4
  2. data/.gitmodules +5 -5
  3. data/.travis.yml +47 -19
  4. data/Appraisals +9 -0
  5. data/CHANGELOG.md +4 -6
  6. data/Gemfile +9 -9
  7. data/README.md +2 -2
  8. data/Rakefile +4 -182
  9. data/bin/console +14 -0
  10. data/{util/create_requires.rb → bin/generate_requires} +20 -10
  11. data/bin/opal +3 -0
  12. data/bin/opal-rspec +3 -0
  13. data/bin/setup +7 -0
  14. data/config.ru +13 -11
  15. data/example/Gemfile +5 -1
  16. data/exe/opal-rspec +78 -0
  17. data/gemfiles/.bundle/config +2 -0
  18. data/gemfiles/opal_0.11.gemfile +14 -0
  19. data/gemfiles/opal_master.gemfile +14 -0
  20. data/{opal → lib-opal}/opal-rspec.rb +0 -0
  21. data/lib-opal/opal/rspec.rb +5 -0
  22. data/{opal → lib-opal}/opal/rspec/async.rb +3 -2
  23. data/lib-opal/opal/rspec/async/core_ext.rb +23 -0
  24. data/lib-opal/opal/rspec/async/example.rb +187 -0
  25. data/{opal → lib-opal}/opal/rspec/async/example_group.rb +1 -1
  26. data/{opal → lib-opal}/opal/rspec/async/hooks.rb +4 -2
  27. data/lib-opal/opal/rspec/async/legacy.rb +49 -0
  28. data/lib-opal/opal/rspec/async/reporter.rb +17 -0
  29. data/lib-opal/opal/rspec/async/runner.rb +44 -0
  30. data/lib-opal/opal/rspec/autorun.rb +3 -0
  31. data/lib-opal/opal/rspec/browser.rb +13 -0
  32. data/lib-opal/opal/rspec/default_config.rb +12 -0
  33. data/{opal → lib-opal}/opal/rspec/fixes.rb +0 -0
  34. data/{opal/opal/rspec/fixes/opal/compatibility.rb → lib-opal/opal/rspec/fixes/opal.rb} +35 -0
  35. data/{opal → lib-opal}/opal/rspec/fixes/rspec.rb +0 -0
  36. data/{opal → lib-opal}/opal/rspec/fixes/rspec/caller_filter.rb +0 -0
  37. data/{opal → lib-opal}/opal/rspec/fixes/rspec/core.rb +0 -0
  38. data/{opal → lib-opal}/opal/rspec/fixes/rspec/core/configuration.rb +9 -0
  39. data/{opal → lib-opal}/opal/rspec/fixes/rspec/core/example.rb +0 -0
  40. data/{opal → lib-opal}/opal/rspec/fixes/rspec/core/formatters.rb +0 -0
  41. data/{opal → lib-opal}/opal/rspec/fixes/rspec/core/formatters/backtrace_formatter.rb +0 -0
  42. data/{opal → lib-opal}/opal/rspec/fixes/rspec/core/formatters/console_codes.rb +0 -0
  43. data/{opal → lib-opal}/opal/rspec/fixes/rspec/core/formatters/deprecation_formatter.rb +0 -0
  44. data/{opal → lib-opal}/opal/rspec/fixes/rspec/core/formatters/generated_deprecation_message.rb +0 -0
  45. data/lib-opal/opal/rspec/fixes/rspec/core/formatters/json_formatter.rb +15 -0
  46. data/{opal → lib-opal}/opal/rspec/fixes/rspec/core/formatters/loader.rb +6 -0
  47. data/{opal → lib-opal}/opal/rspec/fixes/rspec/core/metadata.rb +0 -0
  48. data/{opal → lib-opal}/opal/rspec/fixes/rspec/core/notifications.rb +0 -0
  49. data/{opal → lib-opal}/opal/rspec/fixes/rspec/core/notifications/examples_notification.rb +0 -0
  50. data/{opal → lib-opal}/opal/rspec/fixes/rspec/core/notifications/failed_example_notification.rb +0 -0
  51. data/lib-opal/opal/rspec/fixes/rspec/core/notifications/summary_notification.rb +21 -0
  52. data/{opal → lib-opal}/opal/rspec/fixes/rspec/core/ordering.rb +0 -0
  53. data/{opal → lib-opal}/opal/rspec/fixes/rspec/core/ordering/random.rb +0 -0
  54. data/{opal → lib-opal}/opal/rspec/fixes/rspec/core/warnings.rb +10 -1
  55. data/{opal → lib-opal}/opal/rspec/fixes/rspec/example_groups.rb +0 -0
  56. data/{opal → lib-opal}/opal/rspec/fixes/rspec/expectations.rb +0 -0
  57. data/{opal → lib-opal}/opal/rspec/fixes/rspec/expectations/fail_with.rb +0 -0
  58. data/{opal → lib-opal}/opal/rspec/fixes/rspec/matchers.rb +0 -0
  59. data/{opal → lib-opal}/opal/rspec/fixes/rspec/matchers/built_in.rb +0 -0
  60. data/{opal → lib-opal}/opal/rspec/fixes/rspec/matchers/built_in/all.rb +0 -0
  61. data/{opal → lib-opal}/opal/rspec/fixes/rspec/matchers/built_in/compound.rb +0 -0
  62. data/{opal → lib-opal}/opal/rspec/fixes/rspec/matchers/built_in/start_and_end_with.rb +0 -0
  63. data/{opal → lib-opal}/opal/rspec/fixes/rspec/matchers/built_in/yield.rb +0 -0
  64. data/{opal → lib-opal}/opal/rspec/fixes/rspec/matchers/pretty.rb +0 -0
  65. data/{opal → lib-opal}/opal/rspec/fixes/rspec/mocks.rb +0 -0
  66. data/{opal → lib-opal}/opal/rspec/fixes/rspec/mocks/error_generator.rb +0 -0
  67. data/lib-opal/opal/rspec/fixes/rspec/mocks/space.rb +41 -0
  68. data/{opal → lib-opal}/opal/rspec/fixes/rspec/mocks/test_double.rb +0 -0
  69. data/{opal → lib-opal}/opal/rspec/fixes/rspec/mocks/verifying_double.rb +0 -0
  70. data/{opal → lib-opal}/opal/rspec/fixes/rspec/support.rb +1 -0
  71. data/{opal → lib-opal}/opal/rspec/fixes/rspec/support/encoded_string.rb +0 -0
  72. data/lib-opal/opal/rspec/fixes/rspec/support/formatter_support.rb +34 -0
  73. data/{opal → lib-opal}/opal/rspec/fixes/rspec/support/recursive_const_methods.rb +0 -0
  74. data/{opal → lib-opal}/opal/rspec/fixes/rspec/support/spec.rb +0 -0
  75. data/{opal → lib-opal}/opal/rspec/fixes/rspec/support/spec/stderr_splitter.rb +0 -0
  76. data/{opal → lib-opal}/opal/rspec/fixes/rspec/support/warnings.rb +0 -2
  77. data/{opal → lib-opal}/opal/rspec/formatter/browser_formatter.rb +0 -0
  78. data/{opal → lib-opal}/opal/rspec/formatter/document_io.rb +0 -0
  79. data/{opal → lib-opal}/opal/rspec/formatter/element.rb +0 -0
  80. data/{opal → lib-opal}/opal/rspec/formatter/html_printer.rb +0 -0
  81. data/{opal → lib-opal}/opal/rspec/formatter/noop_flush_string_io.rb +2 -0
  82. data/{opal → lib-opal}/opal/rspec/pre_require_fixes.rb +1 -1
  83. data/{opal → lib-opal}/opal/rspec/requires.rb +5 -2
  84. data/lib-opal/opal/rspec/spec_opts.rb.erb +1 -0
  85. data/{opal → lib-opal}/opal/rspec/sprockets_runner.rb.erb +0 -0
  86. data/lib/opal/rspec.rb +37 -28
  87. data/lib/opal/rspec/cached_environment.rb +7 -4
  88. data/lib/opal/rspec/locator.rb +38 -0
  89. data/lib/opal/rspec/rake_task.rb +12 -130
  90. data/lib/opal/rspec/runner.rb +136 -0
  91. data/lib/opal/rspec/sprockets_environment.rb +5 -3
  92. data/lib/opal/rspec/version.rb +1 -1
  93. data/opal-rspec.gemspec +32 -20
  94. data/rspec-core/spec/files_to_exclude.txt +12 -0
  95. data/rspec-core/spec/filters.rb +211 -0
  96. data/rspec-core/spec/fixes/missing_constants.rb +34 -0
  97. data/{spec/rspec/core → rspec-core/spec/fixes}/sandboxing.rb +0 -0
  98. data/rspec-core/spec/fixes/shared_examples.rb +6 -0
  99. data/rspec-core/spec/requires.rb +41 -0
  100. data/{spec/rspec/expectations/spec_files_exclude.txt → rspec-expectations/spec/files_to_exclude.txt} +0 -0
  101. data/rspec-expectations/spec/filters.rb +188 -0
  102. data/{spec/rspec/expectations/fixes/not_compatible.rb → rspec-expectations/spec/fixes/missing_constants.rb} +4 -0
  103. data/rspec-expectations/spec/fixes/shared_examples.rb +15 -0
  104. data/rspec-expectations/spec/requires.rb +32 -0
  105. data/{spec/rspec/mocks/spec_files_exclude.txt → rspec-mocks/spec/files_to_exclude.txt} +0 -0
  106. data/rspec-mocks/spec/filters.rb +98 -0
  107. data/rspec-mocks/spec/fixes/shared_examples.rb +6 -0
  108. data/rspec-mocks/spec/requires.rb +22 -0
  109. data/{spec/rspec/support/spec_files_exclude.txt → rspec-support/spec/files_to_exclude.txt} +0 -0
  110. data/rspec-support/spec/filters.rb +17 -0
  111. data/{spec/rspec/mocks → rspec-support/spec}/fixes/missing_constants.rb +0 -0
  112. data/{spec/rspec/core → rspec-support/spec}/fixes/shared_examples.rb +1 -0
  113. data/{spec/rspec/core/require_specs.rb → rspec-support/spec/requires.rb} +14 -8
  114. data/spec-opal-passing/spec_helper.rb +3 -0
  115. data/spec-opal-passing/tautology_spec.rb +21 -0
  116. data/{spec/rspec/core/opal_alternates/rspec → spec-opal-rspec}/core/example_group_spec.rb +0 -0
  117. data/{spec/rspec/core/opal_alternates/rspec → spec-opal-rspec}/core/failed_example_notification_spec.rb +0 -0
  118. data/{spec/rspec/core/opal_alternates/rspec → spec-opal-rspec}/core/hooks_spec.rb +0 -0
  119. data/{spec/rspec/core/opal_alternates/rspec → spec-opal-rspec}/core/memoized_helpers_spec.rb +3 -3
  120. data/{spec/rspec/core/opal_alternates/rspec → spec-opal-rspec}/core/metadata_spec.rb +0 -0
  121. data/{spec/rspec/expectations/opal_alternates → spec-opal-rspec/expectations}/be_instance_of_spec.rb +0 -0
  122. data/{spec/rspec/expectations/opal_alternates → spec-opal-rspec/expectations}/dsl_spec.rb +0 -0
  123. data/{spec/rspec/expectations/opal_alternates → spec-opal-rspec/expectations}/expectation_target_spec.rb +0 -0
  124. data/{spec/rspec/expectations/opal_alternates → spec-opal-rspec/expectations}/yield_spec.rb +0 -0
  125. data/{spec/opal → spec-opal}/after_hooks_spec.rb +0 -0
  126. data/{spec/opal → spec-opal}/around_hooks_spec.rb +0 -89
  127. data/{spec/opal → spec-opal}/async_spec.rb +1 -53
  128. data/{spec/opal → spec-opal}/before_hooks_spec.rb +0 -0
  129. data/{spec/mri/unit/opal/rspec/opal/browser_formatter_spec.rb → spec-opal/browser-formatter/opal_browser_formatter_spec.rb} +1 -1
  130. data/{spec/opal → spec-opal}/example_spec.rb +0 -0
  131. data/spec-opal/legacy_async_spec.rb +189 -0
  132. data/{spec/opal → spec-opal}/matchers_spec.rb +0 -0
  133. data/{spec/opal → spec-opal}/mock_spec.rb +0 -0
  134. data/{spec → spec-opal}/other/color_on_by_default_spec.rb +0 -0
  135. data/{spec → spec-opal}/other/dummy_spec.rb +0 -0
  136. data/{spec → spec-opal}/other/formatter_dependency.rb +0 -0
  137. data/{spec → spec-opal}/other/ignored_spec.opal +0 -0
  138. data/{spec → spec-opal}/other/test_formatter.rb +0 -0
  139. data/{spec/opal → spec-opal}/should_syntax_spec.rb +0 -0
  140. data/{spec/opal → spec-opal}/skip_pending_spec.rb +0 -0
  141. data/{spec/opal → spec-opal}/spec_helper.rb +4 -0
  142. data/{spec/mri/integration/rack → spec-opal}/sprockets_runner_js_errors.rb.erb +5 -7
  143. data/{spec/opal → spec-opal}/subject_spec.rb +0 -0
  144. data/{rspec-core/spec/rspec/core/resources/a_bar.rb → stubs/cgi/escape.rb} +0 -0
  145. data/{rspec-core/spec/rspec/core/resources/a_foo.rb → stubs/cgi/util.rb} +0 -0
  146. data/{rspec-core/spec/rspec/core/resources/acceptance/bar.rb → stubs/diff/lcs.rb} +0 -0
  147. data/{rspec-core/spec/rspec/core/resources/acceptance/foo_spec.rb → stubs/diff/lcs/assertions.rb} +0 -0
  148. data/{rspec-core/spec/support/fake_minitest/minitest.rb → stubs/diff/lcs/block.rb} +0 -0
  149. data/stubs/diff/lcs/callbacks.rb +0 -0
  150. data/stubs/diff/lcs/change.rb +0 -0
  151. data/stubs/diff/lcs/hunk.rb +0 -0
  152. data/stubs/diff/lcs/internals.rb +0 -0
  153. data/stubs/drb/drb.rb +0 -0
  154. data/stubs/minitest.rb +0 -0
  155. data/stubs/minitest/assertions.rb +0 -0
  156. data/stubs/minitest/unit.rb +0 -0
  157. data/stubs/mutex_m.rb +0 -0
  158. data/stubs/optparse.rb +0 -0
  159. data/stubs/prettyprint.rb +0 -0
  160. data/stubs/rubygems/bundler_version_finder.rb +0 -0
  161. data/stubs/rubygems/util.rb +0 -0
  162. data/stubs/shellwords.rb +0 -0
  163. data/stubs/socket.rb +0 -0
  164. data/stubs/tempfile.rb +0 -0
  165. data/stubs/test/unit/assertions.rb +0 -0
  166. data/stubs/uri.rb +0 -0
  167. data/tasks/building.rake +50 -0
  168. data/tasks/testing.rake +73 -0
  169. metadata +203 -651
  170. data/lib/opal/rspec/post_rack_locator.rb +0 -20
  171. data/lib/opal/rspec/pre_rack_locator.rb +0 -32
  172. data/opal/opal/rspec.rb +0 -23
  173. data/opal/opal/rspec/async/async_example.rb +0 -96
  174. data/opal/opal/rspec/async/legacy.rb +0 -49
  175. data/opal/opal/rspec/async/reporter.rb +0 -9
  176. data/opal/opal/rspec/fixes/opal.rb +0 -1
  177. data/opal/opal/rspec/fixes/rspec/core/formatters/json_formatter.rb +0 -10
  178. data/opal/opal/rspec/fixes/rspec/core/notifications/summary_notification.rb +0 -25
  179. data/opal/opal/rspec/fixes/rspec/mocks/space.rb +0 -37
  180. data/opal/opal/rspec/formatter/opal_closed_tty_io.rb +0 -27
  181. data/opal/opal/rspec/runner.rb +0 -91
  182. data/opal/opal/rspec/spec_opts.rb.erb +0 -27
  183. data/rspec-core/benchmarks/call_v_yield.rb +0 -81
  184. data/rspec-core/benchmarks/check_inclusion.rb +0 -125
  185. data/rspec-core/benchmarks/define_method_v_attr_reader_v_def.rb +0 -81
  186. data/rspec-core/benchmarks/eager_vs_lazy_metadata.rb +0 -126
  187. data/rspec-core/benchmarks/eager_vs_lazy_metadata/define_examples.rb +0 -22
  188. data/rspec-core/benchmarks/filter_object.rb +0 -35
  189. data/rspec-core/benchmarks/index_v_take_while.rb +0 -47
  190. data/rspec-core/benchmarks/map_then_flatten_vs_flat_map_benchmarks.rb +0 -94
  191. data/rspec-core/benchmarks/require_relative_v_require.rb +0 -75
  192. data/rspec-core/benchmarks/respond_to_v_defined.rb +0 -72
  193. data/rspec-core/benchmarks/several_regexps_v_one_big_one.rb +0 -86
  194. data/rspec-core/benchmarks/sort_by_v_shuffle.rb +0 -83
  195. data/rspec-core/benchmarks/to_proc_v_not_to_proc.rb +0 -539
  196. data/rspec-core/features/step_definitions/additional_cli_steps.rb +0 -126
  197. data/rspec-core/features/step_definitions/core_standalone_steps.rb +0 -12
  198. data/rspec-core/features/support/env.rb +0 -21
  199. data/rspec-core/features/support/require_expect_syntax_in_aruba_specs.rb +0 -29
  200. data/rspec-core/features/support/rubinius.rb +0 -6
  201. data/rspec-core/lib/rspec/autorun.rb +0 -2
  202. data/rspec-core/lib/rspec/core.rb +0 -169
  203. data/rspec-core/lib/rspec/core/backport_random.rb +0 -336
  204. data/rspec-core/lib/rspec/core/backtrace_formatter.rb +0 -66
  205. data/rspec-core/lib/rspec/core/configuration.rb +0 -1440
  206. data/rspec-core/lib/rspec/core/configuration_options.rb +0 -173
  207. data/rspec-core/lib/rspec/core/drb.rb +0 -111
  208. data/rspec-core/lib/rspec/core/dsl.rb +0 -93
  209. data/rspec-core/lib/rspec/core/example.rb +0 -502
  210. data/rspec-core/lib/rspec/core/example_group.rb +0 -606
  211. data/rspec-core/lib/rspec/core/filter_manager.rb +0 -259
  212. data/rspec-core/lib/rspec/core/flat_map.rb +0 -18
  213. data/rspec-core/lib/rspec/core/formatters.rb +0 -240
  214. data/rspec-core/lib/rspec/core/formatters/base_formatter.rb +0 -67
  215. data/rspec-core/lib/rspec/core/formatters/base_text_formatter.rb +0 -76
  216. data/rspec-core/lib/rspec/core/formatters/console_codes.rb +0 -64
  217. data/rspec-core/lib/rspec/core/formatters/deprecation_formatter.rb +0 -222
  218. data/rspec-core/lib/rspec/core/formatters/documentation_formatter.rb +0 -68
  219. data/rspec-core/lib/rspec/core/formatters/helpers.rb +0 -87
  220. data/rspec-core/lib/rspec/core/formatters/html_formatter.rb +0 -149
  221. data/rspec-core/lib/rspec/core/formatters/html_printer.rb +0 -403
  222. data/rspec-core/lib/rspec/core/formatters/json_formatter.rb +0 -94
  223. data/rspec-core/lib/rspec/core/formatters/profile_formatter.rb +0 -65
  224. data/rspec-core/lib/rspec/core/formatters/progress_formatter.rb +0 -28
  225. data/rspec-core/lib/rspec/core/formatters/protocol.rb +0 -163
  226. data/rspec-core/lib/rspec/core/formatters/snippet_extractor.rb +0 -104
  227. data/rspec-core/lib/rspec/core/hooks.rb +0 -591
  228. data/rspec-core/lib/rspec/core/memoized_helpers.rb +0 -472
  229. data/rspec-core/lib/rspec/core/metadata.rb +0 -437
  230. data/rspec-core/lib/rspec/core/metadata_filter.rb +0 -95
  231. data/rspec-core/lib/rspec/core/minitest_assertions_adapter.rb +0 -28
  232. data/rspec-core/lib/rspec/core/mocking_adapters/flexmock.rb +0 -31
  233. data/rspec-core/lib/rspec/core/mocking_adapters/mocha.rb +0 -57
  234. data/rspec-core/lib/rspec/core/mocking_adapters/null.rb +0 -14
  235. data/rspec-core/lib/rspec/core/mocking_adapters/rr.rb +0 -31
  236. data/rspec-core/lib/rspec/core/mocking_adapters/rspec.rb +0 -32
  237. data/rspec-core/lib/rspec/core/notifications.rb +0 -542
  238. data/rspec-core/lib/rspec/core/option_parser.rb +0 -222
  239. data/rspec-core/lib/rspec/core/ordering.rb +0 -155
  240. data/rspec-core/lib/rspec/core/pending.rb +0 -163
  241. data/rspec-core/lib/rspec/core/project_initializer.rb +0 -48
  242. data/rspec-core/lib/rspec/core/project_initializer/spec/spec_helper.rb +0 -89
  243. data/rspec-core/lib/rspec/core/rake_task.rb +0 -187
  244. data/rspec-core/lib/rspec/core/reporter.rb +0 -149
  245. data/rspec-core/lib/rspec/core/ruby_project.rb +0 -45
  246. data/rspec-core/lib/rspec/core/runner.rb +0 -158
  247. data/rspec-core/lib/rspec/core/shared_context.rb +0 -55
  248. data/rspec-core/lib/rspec/core/shared_example_group.rb +0 -182
  249. data/rspec-core/lib/rspec/core/test_unit_assertions_adapter.rb +0 -30
  250. data/rspec-core/lib/rspec/core/version.rb +0 -9
  251. data/rspec-core/lib/rspec/core/warnings.rb +0 -40
  252. data/rspec-core/lib/rspec/core/world.rb +0 -183
  253. data/rspec-core/spec/command_line/order_spec.rb +0 -213
  254. data/rspec-core/spec/rspec/core/backtrace_formatter_spec.rb +0 -306
  255. data/rspec-core/spec/rspec/core/configuration_options_spec.rb +0 -425
  256. data/rspec-core/spec/rspec/core/configuration_spec.rb +0 -1963
  257. data/rspec-core/spec/rspec/core/drb_spec.rb +0 -278
  258. data/rspec-core/spec/rspec/core/dsl_spec.rb +0 -85
  259. data/rspec-core/spec/rspec/core/example_execution_result_spec.rb +0 -142
  260. data/rspec-core/spec/rspec/core/example_group_constants_spec.rb +0 -16
  261. data/rspec-core/spec/rspec/core/example_group_spec.rb +0 -1621
  262. data/rspec-core/spec/rspec/core/example_spec.rb +0 -662
  263. data/rspec-core/spec/rspec/core/failed_example_notification_spec.rb +0 -25
  264. data/rspec-core/spec/rspec/core/filter_manager_spec.rb +0 -299
  265. data/rspec-core/spec/rspec/core/formatters/base_text_formatter_spec.rb +0 -182
  266. data/rspec-core/spec/rspec/core/formatters/console_codes_spec.rb +0 -65
  267. data/rspec-core/spec/rspec/core/formatters/deprecation_formatter_spec.rb +0 -225
  268. data/rspec-core/spec/rspec/core/formatters/documentation_formatter_spec.rb +0 -111
  269. data/rspec-core/spec/rspec/core/formatters/helpers_spec.rb +0 -104
  270. data/rspec-core/spec/rspec/core/formatters/html_formatter_spec.rb +0 -111
  271. data/rspec-core/spec/rspec/core/formatters/json_formatter_spec.rb +0 -183
  272. data/rspec-core/spec/rspec/core/formatters/profile_formatter_spec.rb +0 -99
  273. data/rspec-core/spec/rspec/core/formatters/progress_formatter_spec.rb +0 -55
  274. data/rspec-core/spec/rspec/core/formatters/snippet_extractor_spec.rb +0 -26
  275. data/rspec-core/spec/rspec/core/formatters_spec.rb +0 -160
  276. data/rspec-core/spec/rspec/core/hooks_filtering_spec.rb +0 -227
  277. data/rspec-core/spec/rspec/core/hooks_spec.rb +0 -447
  278. data/rspec-core/spec/rspec/core/memoized_helpers_spec.rb +0 -537
  279. data/rspec-core/spec/rspec/core/metadata_filter_spec.rb +0 -181
  280. data/rspec-core/spec/rspec/core/metadata_spec.rb +0 -642
  281. data/rspec-core/spec/rspec/core/notifications_spec.rb +0 -92
  282. data/rspec-core/spec/rspec/core/option_parser_spec.rb +0 -270
  283. data/rspec-core/spec/rspec/core/ordering_spec.rb +0 -102
  284. data/rspec-core/spec/rspec/core/pending_example_spec.rb +0 -221
  285. data/rspec-core/spec/rspec/core/pending_spec.rb +0 -8
  286. data/rspec-core/spec/rspec/core/project_initializer_spec.rb +0 -123
  287. data/rspec-core/spec/rspec/core/rake_task_spec.rb +0 -351
  288. data/rspec-core/spec/rspec/core/random_spec.rb +0 -47
  289. data/rspec-core/spec/rspec/core/reporter_spec.rb +0 -198
  290. data/rspec-core/spec/rspec/core/resources/a_spec.rb +0 -1
  291. data/rspec-core/spec/rspec/core/resources/custom_example_group_runner.rb +0 -14
  292. data/rspec-core/spec/rspec/core/resources/formatter_specs.rb +0 -58
  293. data/rspec-core/spec/rspec/core/resources/utf8_encoded.rb +0 -9
  294. data/rspec-core/spec/rspec/core/rspec_matchers_spec.rb +0 -45
  295. data/rspec-core/spec/rspec/core/ruby_project_spec.rb +0 -26
  296. data/rspec-core/spec/rspec/core/runner_spec.rb +0 -309
  297. data/rspec-core/spec/rspec/core/shared_context_spec.rb +0 -102
  298. data/rspec-core/spec/rspec/core/shared_example_group_spec.rb +0 -268
  299. data/rspec-core/spec/rspec/core/warnings_spec.rb +0 -72
  300. data/rspec-core/spec/rspec/core/world_spec.rb +0 -142
  301. data/rspec-core/spec/rspec/core_spec.rb +0 -103
  302. data/rspec-core/spec/spec_helper.rb +0 -89
  303. data/rspec-core/spec/support/config_options_helper.rb +0 -13
  304. data/rspec-core/spec/support/fake_minitest/minitest/minitest_assertions.rb +0 -4
  305. data/rspec-core/spec/support/fake_minitest/test/unit/assertions.rb +0 -6
  306. data/rspec-core/spec/support/formatter_support.rb +0 -263
  307. data/rspec-core/spec/support/helper_methods.rb +0 -26
  308. data/rspec-core/spec/support/isolated_home_directory.rb +0 -16
  309. data/rspec-core/spec/support/matchers.rb +0 -103
  310. data/rspec-core/spec/support/mathn_integration_support.rb +0 -12
  311. data/rspec-core/spec/support/sandboxing.rb +0 -50
  312. data/rspec-core/spec/support/shared_example_groups.rb +0 -43
  313. data/rspec-core/spec/support/spec_files.rb +0 -44
  314. data/rspec-expectations/benchmarks/2.x_vs_3.x_matcher_dsl_implementation.rb +0 -253
  315. data/rspec-expectations/benchmarks/autoload_v_require.rb +0 -25
  316. data/rspec-expectations/benchmarks/cloning_matchers.rb +0 -19
  317. data/rspec-expectations/benchmarks/default_messages_as_methods_v_blocks.rb +0 -27
  318. data/rspec-expectations/benchmarks/example_spec.rb +0 -9
  319. data/rspec-expectations/benchmarks/include_v_superclass.rb +0 -39
  320. data/rspec-expectations/benchmarks/match_array/failing_with_distinct_items.rb +0 -147
  321. data/rspec-expectations/benchmarks/match_array/failing_with_duplicate_items.rb +0 -122
  322. data/rspec-expectations/benchmarks/match_array/passing_with_distinct_items.rb +0 -154
  323. data/rspec-expectations/benchmarks/match_array/passing_with_duplicate_items.rb +0 -132
  324. data/rspec-expectations/benchmarks/match_array/rubyprof/passing_with_distinct_items.rb +0 -9
  325. data/rspec-expectations/benchmarks/matcher_dsl_vs_classes.rb +0 -180
  326. data/rspec-expectations/benchmarks/method_to_proc.rb +0 -72
  327. data/rspec-expectations/benchmarks/set_vs_array_include.rb +0 -68
  328. data/rspec-expectations/features/step_definitions/additional_cli_steps.rb +0 -22
  329. data/rspec-expectations/features/support/disallow_certain_apis.rb +0 -34
  330. data/rspec-expectations/features/support/env.rb +0 -21
  331. data/rspec-expectations/features/support/rubinius.rb +0 -6
  332. data/rspec-expectations/lib/rspec/expectations.rb +0 -68
  333. data/rspec-expectations/lib/rspec/expectations/configuration.rb +0 -147
  334. data/rspec-expectations/lib/rspec/expectations/expectation_target.rb +0 -119
  335. data/rspec-expectations/lib/rspec/expectations/fail_with.rb +0 -34
  336. data/rspec-expectations/lib/rspec/expectations/handler.rb +0 -167
  337. data/rspec-expectations/lib/rspec/expectations/minitest_integration.rb +0 -17
  338. data/rspec-expectations/lib/rspec/expectations/syntax.rb +0 -132
  339. data/rspec-expectations/lib/rspec/expectations/version.rb +0 -8
  340. data/rspec-expectations/lib/rspec/matchers.rb +0 -967
  341. data/rspec-expectations/lib/rspec/matchers/aliased_matcher.rb +0 -116
  342. data/rspec-expectations/lib/rspec/matchers/built_in.rb +0 -52
  343. data/rspec-expectations/lib/rspec/matchers/built_in/all.rb +0 -85
  344. data/rspec-expectations/lib/rspec/matchers/built_in/base_matcher.rb +0 -132
  345. data/rspec-expectations/lib/rspec/matchers/built_in/be.rb +0 -277
  346. data/rspec-expectations/lib/rspec/matchers/built_in/be_between.rb +0 -77
  347. data/rspec-expectations/lib/rspec/matchers/built_in/be_instance_of.rb +0 -22
  348. data/rspec-expectations/lib/rspec/matchers/built_in/be_kind_of.rb +0 -16
  349. data/rspec-expectations/lib/rspec/matchers/built_in/be_within.rb +0 -72
  350. data/rspec-expectations/lib/rspec/matchers/built_in/change.rb +0 -337
  351. data/rspec-expectations/lib/rspec/matchers/built_in/compound.rb +0 -258
  352. data/rspec-expectations/lib/rspec/matchers/built_in/contain_exactly.rb +0 -249
  353. data/rspec-expectations/lib/rspec/matchers/built_in/cover.rb +0 -24
  354. data/rspec-expectations/lib/rspec/matchers/built_in/eq.rb +0 -75
  355. data/rspec-expectations/lib/rspec/matchers/built_in/eql.rb +0 -34
  356. data/rspec-expectations/lib/rspec/matchers/built_in/equal.rb +0 -81
  357. data/rspec-expectations/lib/rspec/matchers/built_in/exist.rb +0 -86
  358. data/rspec-expectations/lib/rspec/matchers/built_in/has.rb +0 -101
  359. data/rspec-expectations/lib/rspec/matchers/built_in/have_attributes.rb +0 -84
  360. data/rspec-expectations/lib/rspec/matchers/built_in/include.rb +0 -105
  361. data/rspec-expectations/lib/rspec/matchers/built_in/match.rb +0 -29
  362. data/rspec-expectations/lib/rspec/matchers/built_in/operators.rb +0 -119
  363. data/rspec-expectations/lib/rspec/matchers/built_in/output.rb +0 -152
  364. data/rspec-expectations/lib/rspec/matchers/built_in/raise_error.rb +0 -174
  365. data/rspec-expectations/lib/rspec/matchers/built_in/respond_to.rb +0 -91
  366. data/rspec-expectations/lib/rspec/matchers/built_in/satisfy.rb +0 -39
  367. data/rspec-expectations/lib/rspec/matchers/built_in/start_and_end_with.rb +0 -82
  368. data/rspec-expectations/lib/rspec/matchers/built_in/throw_symbol.rb +0 -132
  369. data/rspec-expectations/lib/rspec/matchers/built_in/yield.rb +0 -420
  370. data/rspec-expectations/lib/rspec/matchers/composable.rb +0 -183
  371. data/rspec-expectations/lib/rspec/matchers/dsl.rb +0 -391
  372. data/rspec-expectations/lib/rspec/matchers/generated_descriptions.rb +0 -42
  373. data/rspec-expectations/lib/rspec/matchers/matcher_delegator.rb +0 -33
  374. data/rspec-expectations/lib/rspec/matchers/matcher_protocol.rb +0 -99
  375. data/rspec-expectations/lib/rspec/matchers/pretty.rb +0 -77
  376. data/rspec-expectations/spec/rspec/expectations/configuration_spec.rb +0 -226
  377. data/rspec-expectations/spec/rspec/expectations/expectation_target_spec.rb +0 -147
  378. data/rspec-expectations/spec/rspec/expectations/extensions/kernel_spec.rb +0 -69
  379. data/rspec-expectations/spec/rspec/expectations/fail_with_spec.rb +0 -73
  380. data/rspec-expectations/spec/rspec/expectations/handler_spec.rb +0 -200
  381. data/rspec-expectations/spec/rspec/expectations/minitest_integration_spec.rb +0 -25
  382. data/rspec-expectations/spec/rspec/expectations/syntax_spec.rb +0 -93
  383. data/rspec-expectations/spec/rspec/expectations_spec.rb +0 -15
  384. data/rspec-expectations/spec/rspec/matchers/aliased_matcher_spec.rb +0 -113
  385. data/rspec-expectations/spec/rspec/matchers/aliases_spec.rb +0 -455
  386. data/rspec-expectations/spec/rspec/matchers/built_in/all_spec.rb +0 -212
  387. data/rspec-expectations/spec/rspec/matchers/built_in/base_matcher_spec.rb +0 -140
  388. data/rspec-expectations/spec/rspec/matchers/built_in/be_between_spec.rb +0 -157
  389. data/rspec-expectations/spec/rspec/matchers/built_in/be_instance_of_spec.rb +0 -61
  390. data/rspec-expectations/spec/rspec/matchers/built_in/be_kind_of_spec.rb +0 -39
  391. data/rspec-expectations/spec/rspec/matchers/built_in/be_spec.rb +0 -685
  392. data/rspec-expectations/spec/rspec/matchers/built_in/be_within_spec.rb +0 -139
  393. data/rspec-expectations/spec/rspec/matchers/built_in/change_spec.rb +0 -829
  394. data/rspec-expectations/spec/rspec/matchers/built_in/compound_spec.rb +0 -537
  395. data/rspec-expectations/spec/rspec/matchers/built_in/contain_exactly_spec.rb +0 -556
  396. data/rspec-expectations/spec/rspec/matchers/built_in/cover_spec.rb +0 -67
  397. data/rspec-expectations/spec/rspec/matchers/built_in/eq_spec.rb +0 -176
  398. data/rspec-expectations/spec/rspec/matchers/built_in/eql_spec.rb +0 -39
  399. data/rspec-expectations/spec/rspec/matchers/built_in/equal_spec.rb +0 -130
  400. data/rspec-expectations/spec/rspec/matchers/built_in/exist_spec.rb +0 -139
  401. data/rspec-expectations/spec/rspec/matchers/built_in/has_spec.rb +0 -179
  402. data/rspec-expectations/spec/rspec/matchers/built_in/have_attributes_spec.rb +0 -177
  403. data/rspec-expectations/spec/rspec/matchers/built_in/include_spec.rb +0 -587
  404. data/rspec-expectations/spec/rspec/matchers/built_in/match_spec.rb +0 -100
  405. data/rspec-expectations/spec/rspec/matchers/built_in/operators_spec.rb +0 -250
  406. data/rspec-expectations/spec/rspec/matchers/built_in/output_spec.rb +0 -168
  407. data/rspec-expectations/spec/rspec/matchers/built_in/raise_error_spec.rb +0 -446
  408. data/rspec-expectations/spec/rspec/matchers/built_in/respond_to_spec.rb +0 -290
  409. data/rspec-expectations/spec/rspec/matchers/built_in/satisfy_spec.rb +0 -42
  410. data/rspec-expectations/spec/rspec/matchers/built_in/start_and_end_with_spec.rb +0 -347
  411. data/rspec-expectations/spec/rspec/matchers/built_in/throw_symbol_spec.rb +0 -133
  412. data/rspec-expectations/spec/rspec/matchers/built_in/yield_spec.rb +0 -643
  413. data/rspec-expectations/spec/rspec/matchers/composable_spec.rb +0 -77
  414. data/rspec-expectations/spec/rspec/matchers/define_negated_matcher_spec.rb +0 -199
  415. data/rspec-expectations/spec/rspec/matchers/description_generation_spec.rb +0 -189
  416. data/rspec-expectations/spec/rspec/matchers/dsl_spec.rb +0 -1036
  417. data/rspec-expectations/spec/rspec/matchers/legacy_spec.rb +0 -104
  418. data/rspec-expectations/spec/rspec/matchers_spec.rb +0 -108
  419. data/rspec-expectations/spec/spec_helper.rb +0 -94
  420. data/rspec-expectations/spec/support/matchers.rb +0 -54
  421. data/rspec-expectations/spec/support/shared_examples.rb +0 -101
  422. data/rspec-mocks/benchmarks/double_creation.rb +0 -66
  423. data/rspec-mocks/benchmarks/each_value_v_values_each.rb +0 -58
  424. data/rspec-mocks/benchmarks/find_original_method_early.rb +0 -64
  425. data/rspec-mocks/benchmarks/method_defined_at_any_visibility.rb +0 -101
  426. data/rspec-mocks/benchmarks/thread_safety.rb +0 -24
  427. data/rspec-mocks/benchmarks/transfer_nested_constants.rb +0 -77
  428. data/rspec-mocks/features/step_definitions/additional_cli_steps.rb +0 -21
  429. data/rspec-mocks/features/support/disallow_certain_apis.rb +0 -24
  430. data/rspec-mocks/features/support/env.rb +0 -22
  431. data/rspec-mocks/features/support/rubinius.rb +0 -6
  432. data/rspec-mocks/lib/rspec/mocks.rb +0 -126
  433. data/rspec-mocks/lib/rspec/mocks/any_instance.rb +0 -10
  434. data/rspec-mocks/lib/rspec/mocks/any_instance/chain.rb +0 -109
  435. data/rspec-mocks/lib/rspec/mocks/any_instance/expect_chain_chain.rb +0 -35
  436. data/rspec-mocks/lib/rspec/mocks/any_instance/expectation_chain.rb +0 -48
  437. data/rspec-mocks/lib/rspec/mocks/any_instance/message_chains.rb +0 -85
  438. data/rspec-mocks/lib/rspec/mocks/any_instance/proxy.rb +0 -116
  439. data/rspec-mocks/lib/rspec/mocks/any_instance/recorder.rb +0 -267
  440. data/rspec-mocks/lib/rspec/mocks/any_instance/stub_chain.rb +0 -45
  441. data/rspec-mocks/lib/rspec/mocks/any_instance/stub_chain_chain.rb +0 -27
  442. data/rspec-mocks/lib/rspec/mocks/argument_list_matcher.rb +0 -72
  443. data/rspec-mocks/lib/rspec/mocks/argument_matchers.rb +0 -282
  444. data/rspec-mocks/lib/rspec/mocks/configuration.rb +0 -157
  445. data/rspec-mocks/lib/rspec/mocks/error_generator.rb +0 -253
  446. data/rspec-mocks/lib/rspec/mocks/example_methods.rb +0 -379
  447. data/rspec-mocks/lib/rspec/mocks/instance_method_stasher.rb +0 -135
  448. data/rspec-mocks/lib/rspec/mocks/marshal_extension.rb +0 -41
  449. data/rspec-mocks/lib/rspec/mocks/matchers/expectation_customization.rb +0 -20
  450. data/rspec-mocks/lib/rspec/mocks/matchers/have_received.rb +0 -121
  451. data/rspec-mocks/lib/rspec/mocks/matchers/receive.rb +0 -106
  452. data/rspec-mocks/lib/rspec/mocks/matchers/receive_message_chain.rb +0 -66
  453. data/rspec-mocks/lib/rspec/mocks/matchers/receive_messages.rb +0 -71
  454. data/rspec-mocks/lib/rspec/mocks/message_chain.rb +0 -91
  455. data/rspec-mocks/lib/rspec/mocks/message_expectation.rb +0 -694
  456. data/rspec-mocks/lib/rspec/mocks/method_double.rb +0 -260
  457. data/rspec-mocks/lib/rspec/mocks/method_reference.rb +0 -155
  458. data/rspec-mocks/lib/rspec/mocks/mutate_const.rb +0 -324
  459. data/rspec-mocks/lib/rspec/mocks/object_reference.rb +0 -91
  460. data/rspec-mocks/lib/rspec/mocks/order_group.rb +0 -81
  461. data/rspec-mocks/lib/rspec/mocks/proxy.rb +0 -431
  462. data/rspec-mocks/lib/rspec/mocks/space.rb +0 -221
  463. data/rspec-mocks/lib/rspec/mocks/standalone.rb +0 -3
  464. data/rspec-mocks/lib/rspec/mocks/syntax.rb +0 -329
  465. data/rspec-mocks/lib/rspec/mocks/targets.rb +0 -97
  466. data/rspec-mocks/lib/rspec/mocks/test_double.rb +0 -135
  467. data/rspec-mocks/lib/rspec/mocks/verifying_double.rb +0 -127
  468. data/rspec-mocks/lib/rspec/mocks/verifying_message_expecation.rb +0 -62
  469. data/rspec-mocks/lib/rspec/mocks/verifying_proxy.rb +0 -171
  470. data/rspec-mocks/lib/rspec/mocks/version.rb +0 -9
  471. data/rspec-mocks/spec/rspec/mocks/and_call_original_spec.rb +0 -267
  472. data/rspec-mocks/spec/rspec/mocks/and_return_spec.rb +0 -21
  473. data/rspec-mocks/spec/rspec/mocks/and_wrap_original_spec.rb +0 -63
  474. data/rspec-mocks/spec/rspec/mocks/and_yield_spec.rb +0 -161
  475. data/rspec-mocks/spec/rspec/mocks/any_instance/message_chains_spec.rb +0 -39
  476. data/rspec-mocks/spec/rspec/mocks/any_instance_spec.rb +0 -1242
  477. data/rspec-mocks/spec/rspec/mocks/argument_matchers_spec.rb +0 -336
  478. data/rspec-mocks/spec/rspec/mocks/array_including_matcher_spec.rb +0 -39
  479. data/rspec-mocks/spec/rspec/mocks/at_least_spec.rb +0 -147
  480. data/rspec-mocks/spec/rspec/mocks/at_most_spec.rb +0 -113
  481. data/rspec-mocks/spec/rspec/mocks/before_all_spec.rb +0 -75
  482. data/rspec-mocks/spec/rspec/mocks/block_return_value_spec.rb +0 -68
  483. data/rspec-mocks/spec/rspec/mocks/combining_implementation_instructions_spec.rb +0 -196
  484. data/rspec-mocks/spec/rspec/mocks/configuration_spec.rb +0 -175
  485. data/rspec-mocks/spec/rspec/mocks/double_spec.rb +0 -830
  486. data/rspec-mocks/spec/rspec/mocks/example_methods_spec.rb +0 -11
  487. data/rspec-mocks/spec/rspec/mocks/expiration_spec.rb +0 -90
  488. data/rspec-mocks/spec/rspec/mocks/hash_excluding_matcher_spec.rb +0 -65
  489. data/rspec-mocks/spec/rspec/mocks/hash_including_matcher_spec.rb +0 -92
  490. data/rspec-mocks/spec/rspec/mocks/instance_method_stasher_spec.rb +0 -72
  491. data/rspec-mocks/spec/rspec/mocks/marshal_extension_spec.rb +0 -67
  492. data/rspec-mocks/spec/rspec/mocks/matchers/have_received_spec.rb +0 -513
  493. data/rspec-mocks/spec/rspec/mocks/matchers/receive_message_chain_spec.rb +0 -227
  494. data/rspec-mocks/spec/rspec/mocks/matchers/receive_messages_spec.rb +0 -148
  495. data/rspec-mocks/spec/rspec/mocks/matchers/receive_spec.rb +0 -525
  496. data/rspec-mocks/spec/rspec/mocks/methods_spec.rb +0 -24
  497. data/rspec-mocks/spec/rspec/mocks/mock_expectation_error_spec.rb +0 -20
  498. data/rspec-mocks/spec/rspec/mocks/mock_ordering_spec.rb +0 -112
  499. data/rspec-mocks/spec/rspec/mocks/multiple_return_value_spec.rb +0 -130
  500. data/rspec-mocks/spec/rspec/mocks/mutate_const_spec.rb +0 -561
  501. data/rspec-mocks/spec/rspec/mocks/nil_expectation_warning_spec.rb +0 -52
  502. data/rspec-mocks/spec/rspec/mocks/null_object_double_spec.rb +0 -135
  503. data/rspec-mocks/spec/rspec/mocks/once_counts_spec.rb +0 -50
  504. data/rspec-mocks/spec/rspec/mocks/order_group_spec.rb +0 -26
  505. data/rspec-mocks/spec/rspec/mocks/partial_double_spec.rb +0 -379
  506. data/rspec-mocks/spec/rspec/mocks/partial_double_using_mocks_directly_spec.rb +0 -83
  507. data/rspec-mocks/spec/rspec/mocks/precise_counts_spec.rb +0 -66
  508. data/rspec-mocks/spec/rspec/mocks/serialization_spec.rb +0 -89
  509. data/rspec-mocks/spec/rspec/mocks/should_syntax_spec.rb +0 -539
  510. data/rspec-mocks/spec/rspec/mocks/space_spec.rb +0 -242
  511. data/rspec-mocks/spec/rspec/mocks/spy_spec.rb +0 -127
  512. data/rspec-mocks/spec/rspec/mocks/stash_spec.rb +0 -43
  513. data/rspec-mocks/spec/rspec/mocks/stub_chain_spec.rb +0 -166
  514. data/rspec-mocks/spec/rspec/mocks/stub_implementation_spec.rb +0 -98
  515. data/rspec-mocks/spec/rspec/mocks/stub_spec.rb +0 -520
  516. data/rspec-mocks/spec/rspec/mocks/stubbed_message_expectations_spec.rb +0 -56
  517. data/rspec-mocks/spec/rspec/mocks/syntax_agnostic_message_matchers_spec.rb +0 -99
  518. data/rspec-mocks/spec/rspec/mocks/syntax_spec.rb +0 -7
  519. data/rspec-mocks/spec/rspec/mocks/test_double_spec.rb +0 -53
  520. data/rspec-mocks/spec/rspec/mocks/thrice_counts_spec.rb +0 -72
  521. data/rspec-mocks/spec/rspec/mocks/to_ary_spec.rb +0 -52
  522. data/rspec-mocks/spec/rspec/mocks/twice_counts_spec.rb +0 -64
  523. data/rspec-mocks/spec/rspec/mocks/verifying_doubles/class_double_with_class_loaded_spec.rb +0 -118
  524. data/rspec-mocks/spec/rspec/mocks/verifying_doubles/class_double_with_class_not_loaded_spec.rb +0 -58
  525. data/rspec-mocks/spec/rspec/mocks/verifying_doubles/construction_spec.rb +0 -54
  526. data/rspec-mocks/spec/rspec/mocks/verifying_doubles/expected_arg_verification_spec.rb +0 -81
  527. data/rspec-mocks/spec/rspec/mocks/verifying_doubles/instance_double_with_class_loaded_spec.rb +0 -195
  528. data/rspec-mocks/spec/rspec/mocks/verifying_doubles/instance_double_with_class_not_loaded_spec.rb +0 -57
  529. data/rspec-mocks/spec/rspec/mocks/verifying_doubles/method_visibility_spec.rb +0 -129
  530. data/rspec-mocks/spec/rspec/mocks/verifying_doubles/object_double_spec.rb +0 -68
  531. data/rspec-mocks/spec/rspec/mocks_spec.rb +0 -199
  532. data/rspec-mocks/spec/spec_helper.rb +0 -131
  533. data/rspec-mocks/spec/support/before_all_shared_example_group.rb +0 -16
  534. data/rspec-mocks/spec/support/doubled_classes.rb +0 -74
  535. data/rspec-mocks/spec/support/matchers.rb +0 -15
  536. data/rspec-support/benchmarks/caller.rb +0 -81
  537. data/rspec-support/lib/rspec/support.rb +0 -76
  538. data/rspec-support/lib/rspec/support/caller_filter.rb +0 -63
  539. data/rspec-support/lib/rspec/support/differ.rb +0 -214
  540. data/rspec-support/lib/rspec/support/directory_maker.rb +0 -61
  541. data/rspec-support/lib/rspec/support/encoded_string.rb +0 -69
  542. data/rspec-support/lib/rspec/support/fuzzy_matcher.rb +0 -48
  543. data/rspec-support/lib/rspec/support/hunk_generator.rb +0 -47
  544. data/rspec-support/lib/rspec/support/matcher_definition.rb +0 -31
  545. data/rspec-support/lib/rspec/support/method_signature_verifier.rb +0 -272
  546. data/rspec-support/lib/rspec/support/os.rb +0 -18
  547. data/rspec-support/lib/rspec/support/recursive_const_methods.rb +0 -76
  548. data/rspec-support/lib/rspec/support/ruby_features.rb +0 -45
  549. data/rspec-support/lib/rspec/support/spec.rb +0 -72
  550. data/rspec-support/lib/rspec/support/spec/deprecation_helpers.rb +0 -60
  551. data/rspec-support/lib/rspec/support/spec/formatting_support.rb +0 -9
  552. data/rspec-support/lib/rspec/support/spec/in_sub_process.rb +0 -43
  553. data/rspec-support/lib/rspec/support/spec/prevent_load_time_warnings.rb +0 -44
  554. data/rspec-support/lib/rspec/support/spec/shell_out.rb +0 -69
  555. data/rspec-support/lib/rspec/support/spec/stderr_splitter.rb +0 -52
  556. data/rspec-support/lib/rspec/support/spec/with_isolated_directory.rb +0 -9
  557. data/rspec-support/lib/rspec/support/spec/with_isolated_stderr.rb +0 -13
  558. data/rspec-support/lib/rspec/support/version.rb +0 -7
  559. data/rspec-support/lib/rspec/support/version_checker.rb +0 -53
  560. data/rspec-support/lib/rspec/support/warnings.rb +0 -39
  561. data/rspec-support/spec/rspec/support/caller_filter_spec.rb +0 -66
  562. data/rspec-support/spec/rspec/support/differ_spec.rb +0 -322
  563. data/rspec-support/spec/rspec/support/directory_maker_spec.rb +0 -58
  564. data/rspec-support/spec/rspec/support/encoded_string_spec.rb +0 -86
  565. data/rspec-support/spec/rspec/support/fuzzy_matcher_spec.rb +0 -179
  566. data/rspec-support/spec/rspec/support/method_signature_verifier_spec.rb +0 -357
  567. data/rspec-support/spec/rspec/support/os_spec.rb +0 -36
  568. data/rspec-support/spec/rspec/support/recursive_const_methods_spec.rb +0 -49
  569. data/rspec-support/spec/rspec/support/spec/in_sub_process_spec.rb +0 -36
  570. data/rspec-support/spec/rspec/support/spec/prevent_load_time_warnings_spec.rb +0 -10
  571. data/rspec-support/spec/rspec/support/spec/shell_out_spec.rb +0 -44
  572. data/rspec-support/spec/rspec/support/spec/stderr_splitter_spec.rb +0 -60
  573. data/rspec-support/spec/rspec/support/spec/with_isolated_std_err_spec.rb +0 -21
  574. data/rspec-support/spec/rspec/support/version_checker_spec.rb +0 -29
  575. data/rspec-support/spec/rspec/support/warnings_spec.rb +0 -66
  576. data/rspec-support/spec/rspec/support_spec.rb +0 -119
  577. data/rspec-support/spec/spec_helper.rb +0 -2
  578. data/rspec/lib/rspec.rb +0 -3
  579. data/rspec/lib/rspec/version.rb +0 -5
  580. data/spec/mri/integration/browser_spec.rb +0 -21
  581. data/spec/mri/integration/spec_opts_spec.rb +0 -81
  582. data/spec/mri/spec_helper.rb +0 -2
  583. data/spec/mri/support/capybara.rb +0 -14
  584. data/spec/mri/unit/opal/rspec/browser_formatter_spec.rb +0 -26
  585. data/spec/mri/unit/opal/rspec/cached_environment_spec.rb +0 -85
  586. data/spec/mri/unit/opal/rspec/rack/config.ru +0 -12
  587. data/spec/mri/unit/opal/rspec/rake_task_spec.rb +0 -320
  588. data/spec/mri/unit/opal/rspec/sprockets_environment_spec.rb +0 -55
  589. data/spec/mri/unit/opal/rspec/temp_dir_helper.rb +0 -19
  590. data/spec/opal/expected_failures.txt +0 -40
  591. data/spec/rspec/core/config.rb +0 -5
  592. data/spec/rspec/core/config.ru +0 -4
  593. data/spec/rspec/core/core_spec_loader.rb +0 -46
  594. data/spec/rspec/core/filter/core/async/example_group.txt +0 -13
  595. data/spec/rspec/core/filter/core/async/hooks.rb +0 -11
  596. data/spec/rspec/core/filter/core/async/memoized_helpers.txt +0 -3
  597. data/spec/rspec/core/filter/core/async/metadata.rb +0 -4
  598. data/spec/rspec/core/filter/core/bugs/filter_manager.txt +0 -4
  599. data/spec/rspec/core/filter/core/bugs/formatters.txt +0 -4
  600. data/spec/rspec/core/filter/core/bugs/memoized_helpers.rb +0 -5
  601. data/spec/rspec/core/filter/core/bugs/metadata.txt +0 -5
  602. data/spec/rspec/core/filter/core/bugs/sandbox/subject_issue_test.rb +0 -328
  603. data/spec/rspec/core/filter/core/bugs/warnings_deprecations.txt +0 -3
  604. data/spec/rspec/core/filter/core/unsupported/core.txt +0 -5
  605. data/spec/rspec/core/filter/core/unsupported/example.txt +0 -7
  606. data/spec/rspec/core/filter/core/unsupported/example_group.txt +0 -13
  607. data/spec/rspec/core/filter/core/unsupported/filter_manager.txt +0 -7
  608. data/spec/rspec/core/filter/core/unsupported/formatters.txt +0 -27
  609. data/spec/rspec/core/filter/core/unsupported/hooks.txt +0 -2
  610. data/spec/rspec/core/filter/core/unsupported/memoized_helpers.txt +0 -6
  611. data/spec/rspec/core/filter/core/unsupported/metadata.txt +0 -14
  612. data/spec/rspec/core/filter/core/unsupported/notifications.txt +0 -8
  613. data/spec/rspec/core/filter/core/unsupported/world.txt +0 -3
  614. data/spec/rspec/core/fixes/missing_constants.rb +0 -20
  615. data/spec/rspec/core/spec_files_exclude.txt +0 -41
  616. data/spec/rspec/expectations/config.rb +0 -21
  617. data/spec/rspec/expectations/config.ru +0 -4
  618. data/spec/rspec/expectations/expectation_spec_loader.rb +0 -110
  619. data/spec/rspec/expectations/filter/bugs/aliased_matcher.txt +0 -2
  620. data/spec/rspec/expectations/filter/bugs/base_matcher.txt +0 -2
  621. data/spec/rspec/expectations/filter/bugs/be_spec.txt +0 -2
  622. data/spec/rspec/expectations/filter/bugs/configuration.txt +0 -5
  623. data/spec/rspec/expectations/filter/bugs/contain_exactly.rb +0 -8
  624. data/spec/rspec/expectations/filter/bugs/define_negated_matcher.rb +0 -8
  625. data/spec/rspec/expectations/filter/bugs/dsl.rb +0 -15
  626. data/spec/rspec/expectations/filter/bugs/equal.txt +0 -3
  627. data/spec/rspec/expectations/filter/bugs/expectation_target.rb +0 -4
  628. data/spec/rspec/expectations/filter/bugs/expectations.rb +0 -4
  629. data/spec/rspec/expectations/filter/bugs/operators.txt +0 -2
  630. data/spec/rspec/expectations/filter/bugs/raise_error.txt +0 -2
  631. data/spec/rspec/expectations/filter/bugs/respond_to.rb +0 -7
  632. data/spec/rspec/expectations/filter/bugs/sandbox/undef.rb +0 -20
  633. data/spec/rspec/expectations/filter/unsupported/aliases.txt +0 -5
  634. data/spec/rspec/expectations/filter/unsupported/be.txt +0 -2
  635. data/spec/rspec/expectations/filter/unsupported/be_instance_of.txt +0 -3
  636. data/spec/rspec/expectations/filter/unsupported/change.txt +0 -2
  637. data/spec/rspec/expectations/filter/unsupported/configuration.txt +0 -2
  638. data/spec/rspec/expectations/filter/unsupported/contain_exactly.txt +0 -2
  639. data/spec/rspec/expectations/filter/unsupported/description_generation.txt +0 -6
  640. data/spec/rspec/expectations/filter/unsupported/dsl.rb +0 -10
  641. data/spec/rspec/expectations/filter/unsupported/eq.txt +0 -10
  642. data/spec/rspec/expectations/filter/unsupported/equal.txt +0 -3
  643. data/spec/rspec/expectations/filter/unsupported/expectation_target.txt +0 -2
  644. data/spec/rspec/expectations/filter/unsupported/expectations.txt +0 -8
  645. data/spec/rspec/expectations/filter/unsupported/has.txt +0 -2
  646. data/spec/rspec/expectations/filter/unsupported/include.txt +0 -3
  647. data/spec/rspec/expectations/filter/unsupported/match.txt +0 -2
  648. data/spec/rspec/expectations/filter/unsupported/matchers.txt +0 -11
  649. data/spec/rspec/expectations/filter/unsupported/output.txt +0 -14
  650. data/spec/rspec/expectations/filter/unsupported/raise_error.txt +0 -3
  651. data/spec/rspec/expectations/filter/unsupported/syntax.txt +0 -3
  652. data/spec/rspec/expectations/filter/unsupported/yield.txt +0 -2
  653. data/spec/rspec/expectations/fixes/example_patches.rb +0 -15
  654. data/spec/rspec/expectations/fixes/missing_constants.rb +0 -12
  655. data/spec/rspec/expectations/require_specs.rb +0 -15
  656. data/spec/rspec/expectations/shared_examples.rb +0 -47
  657. data/spec/rspec/expectations/spec_helper_opal.rb +0 -13
  658. data/spec/rspec/filter_processor.rb +0 -93
  659. data/spec/rspec/mocks/config.ru +0 -4
  660. data/spec/rspec/mocks/filter/bugs/and_call_original.rb +0 -11
  661. data/spec/rspec/mocks/filter/bugs/and_wrap_original.txt +0 -2
  662. data/spec/rspec/mocks/filter/bugs/and_yield.rb +0 -4
  663. data/spec/rspec/mocks/filter/bugs/any_instance.rb +0 -18
  664. data/spec/rspec/mocks/filter/bugs/configuration.txt +0 -2
  665. data/spec/rspec/mocks/filter/bugs/expiration.txt +0 -2
  666. data/spec/rspec/mocks/filter/bugs/instance_method_stasher.txt +0 -2
  667. data/spec/rspec/mocks/filter/bugs/mocks.txt +0 -6
  668. data/spec/rspec/mocks/filter/bugs/mutate_const.txt +0 -2
  669. data/spec/rspec/mocks/filter/bugs/partial_double.rb +0 -7
  670. data/spec/rspec/mocks/filter/bugs/receive.rb +0 -7
  671. data/spec/rspec/mocks/filter/bugs/should_syntax.txt +0 -5
  672. data/spec/rspec/mocks/filter/bugs/space.txt +0 -2
  673. data/spec/rspec/mocks/filter/bugs/spy.txt +0 -5
  674. data/spec/rspec/mocks/filter/bugs/stub_implementation.rb +0 -5
  675. data/spec/rspec/mocks/filter/unsupported/and_call_original.rb +0 -7
  676. data/spec/rspec/mocks/filter/unsupported/and_return.rb +0 -4
  677. data/spec/rspec/mocks/filter/unsupported/any_instance.rb +0 -6
  678. data/spec/rspec/mocks/filter/unsupported/argument_matchers.rb +0 -7
  679. data/spec/rspec/mocks/filter/unsupported/combining_implementation_instructions.rb +0 -4
  680. data/spec/rspec/mocks/filter/unsupported/double.rb +0 -13
  681. data/spec/rspec/mocks/filter/unsupported/have_received.txt +0 -2
  682. data/spec/rspec/mocks/filter/unsupported/instance_double_with_class_loaded.rb +0 -10
  683. data/spec/rspec/mocks/filter/unsupported/mocks.rb +0 -8
  684. data/spec/rspec/mocks/filter/unsupported/nil_expectation_warning.rb +0 -4
  685. data/spec/rspec/mocks/filter/unsupported/partial_double.rb +0 -4
  686. data/spec/rspec/mocks/filter/unsupported/receive.txt +0 -13
  687. data/spec/rspec/mocks/filter/unsupported/receive_messages.txt +0 -2
  688. data/spec/rspec/mocks/filter/unsupported/should_syntax.txt +0 -1
  689. data/spec/rspec/mocks/filter/unsupported/space.rb +0 -7
  690. data/spec/rspec/mocks/fixes/doubled_classes.rb +0 -76
  691. data/spec/rspec/mocks/mocks_spec_loader.rb +0 -91
  692. data/spec/rspec/mocks/require_specs.rb +0 -14
  693. data/spec/rspec/mocks/spec_helper_opal.rb +0 -131
  694. data/spec/rspec/opal_rspec_spec_loader.rb +0 -371
  695. data/spec/rspec/shared/opal/fixes/deprecation_helpers.rb +0 -31
  696. data/spec/rspec/shared/opal/fixes/rspec_helpers.rb +0 -6
  697. data/spec/rspec/shared/opal/separator_formatter.rb +0 -14
  698. data/spec/rspec/support/config.rb +0 -5
  699. data/spec/rspec/support/config.ru +0 -4
  700. data/spec/rspec/support/filter/bugs/recursive_const_methods.txt +0 -3
  701. data/spec/rspec/support/filter/bugs/sandbox/basic_object.rb +0 -30
  702. data/spec/rspec/support/filter/bugs/stderr_splitter_spec.txt +0 -2
  703. data/spec/rspec/support/filter/bugs/support.txt +0 -2
  704. data/spec/rspec/support/filter/unsupported/fuzzy_matcher.rb +0 -4
  705. data/spec/rspec/support/filter/unsupported/support.rb +0 -4
  706. data/spec/rspec/support/filter/unsupported/warnings.txt +0 -6
  707. data/spec/rspec/support/fixes/missing_constants.rb +0 -3
  708. data/spec/rspec/support/require_specs.rb +0 -14
  709. data/spec/rspec/support/spec_helper.rb +0 -27
  710. data/spec/rspec/support/support_spec_loader.rb +0 -38
@@ -1,66 +0,0 @@
1
- module RSpec
2
- module Core
3
- # @private
4
- class BacktraceFormatter
5
- # @private
6
- attr_accessor :exclusion_patterns, :inclusion_patterns
7
-
8
- def initialize
9
- @full_backtrace = false
10
-
11
- patterns = %w[ /lib\d*/ruby/ bin/ exe/rspec ]
12
- patterns << "org/jruby/" if RUBY_PLATFORM == 'java'
13
- patterns.map! { |s| Regexp.new(s.gsub("/", File::SEPARATOR)) }
14
-
15
- @exclusion_patterns = [Regexp.union(RSpec::CallerFilter::IGNORE_REGEX, *patterns)]
16
- @inclusion_patterns = []
17
-
18
- return unless matches?(@exclusion_patterns, File.join(Dir.getwd, "lib", "foo.rb:13"))
19
- inclusion_patterns << Regexp.new(Dir.getwd)
20
- end
21
-
22
- attr_writer :full_backtrace
23
-
24
- def full_backtrace?
25
- @full_backtrace || exclusion_patterns.empty?
26
- end
27
-
28
- def filter_gem(gem_name)
29
- sep = File::SEPARATOR
30
- exclusion_patterns << /#{sep}#{gem_name}(-[^#{sep}]+)?#{sep}/
31
- end
32
-
33
- def format_backtrace(backtrace, options={})
34
- return backtrace if options[:full_backtrace]
35
-
36
- backtrace.map { |l| backtrace_line(l) }.compact.
37
- tap do |filtered|
38
- if filtered.empty?
39
- filtered.concat backtrace
40
- filtered << ""
41
- filtered << " Showing full backtrace because every line was filtered out."
42
- filtered << " See docs for RSpec::Configuration#backtrace_exclusion_patterns and"
43
- filtered << " RSpec::Configuration#backtrace_inclusion_patterns for more information."
44
- end
45
- end
46
- end
47
-
48
- def backtrace_line(line)
49
- Metadata.relative_path(line) unless exclude?(line)
50
- rescue SecurityError
51
- nil
52
- end
53
-
54
- def exclude?(line)
55
- return false if @full_backtrace
56
- matches?(exclusion_patterns, line) && !matches?(inclusion_patterns, line)
57
- end
58
-
59
- private
60
-
61
- def matches?(patterns, line)
62
- patterns.any? { |p| line =~ p }
63
- end
64
- end
65
- end
66
- end
@@ -1,1440 +0,0 @@
1
- RSpec::Support.require_rspec_core "backtrace_formatter"
2
- RSpec::Support.require_rspec_core "ruby_project"
3
- RSpec::Support.require_rspec_core "formatters/deprecation_formatter"
4
-
5
- module RSpec
6
- module Core
7
- # rubocop:disable Style/ClassLength
8
-
9
- # Stores runtime configuration information.
10
- #
11
- # Configuration options are loaded from `~/.rspec`, `.rspec`,
12
- # `.rspec-local`, command line switches, and the `SPEC_OPTS` environment
13
- # variable (listed in lowest to highest precedence; for example, an option
14
- # in `~/.rspec` can be overridden by an option in `.rspec-local`).
15
- #
16
- # @example Standard settings
17
- # RSpec.configure do |c|
18
- # c.drb = true
19
- # c.drb_port = 1234
20
- # c.default_path = 'behavior'
21
- # end
22
- #
23
- # @example Hooks
24
- # RSpec.configure do |c|
25
- # c.before(:suite) { establish_connection }
26
- # c.before(:example) { log_in_as :authorized }
27
- # c.around(:example) { |ex| Database.transaction(&ex) }
28
- # end
29
- #
30
- # @see RSpec.configure
31
- # @see Hooks
32
- class Configuration
33
- include RSpec::Core::Hooks
34
-
35
- # @private
36
- class MustBeConfiguredBeforeExampleGroupsError < StandardError; end
37
-
38
- # @private
39
- def self.define_reader(name)
40
- define_method(name) do
41
- variable = instance_variable_defined?("@#{name}") ? instance_variable_get("@#{name}") : nil
42
- value_for(name, variable)
43
- end
44
- end
45
-
46
- # @private
47
- def self.define_aliases(name, alias_name)
48
- alias_method alias_name, name
49
- alias_method "#{alias_name}=", "#{name}="
50
- define_predicate_for alias_name
51
- end
52
-
53
- # @private
54
- def self.define_predicate_for(*names)
55
- names.each { |name| alias_method "#{name}?", name }
56
- end
57
-
58
- # @private
59
- #
60
- # Invoked by the `add_setting` instance method. Use that method on a
61
- # `Configuration` instance rather than this class method.
62
- def self.add_setting(name, opts={})
63
- raise "Use the instance add_setting method if you want to set a default" if opts.key?(:default)
64
- attr_writer name
65
- add_read_only_setting name
66
-
67
- Array(opts[:alias_with]).each do |alias_name|
68
- define_aliases(name, alias_name)
69
- end
70
- end
71
-
72
- # @private
73
- #
74
- # As `add_setting` but only add the reader
75
- def self.add_read_only_setting(name, opts={})
76
- raise "Use the instance add_setting method if you want to set a default" if opts.key?(:default)
77
- define_reader name
78
- define_predicate_for name
79
- end
80
-
81
- # @macro [attach] add_setting
82
- # @!attribute [rw] $1
83
- # @!method $1=(value)
84
- #
85
- # @macro [attach] define_reader
86
- # @!attribute [r] $1
87
-
88
- # @macro add_setting
89
- # Path to use if no path is provided to the `rspec` command (default:
90
- # `"spec"`). Allows you to just type `rspec` instead of `rspec spec` to
91
- # run all the examples in the `spec` directory.
92
- #
93
- # Note: Other scripts invoking `rspec` indirectly will ignore this
94
- # setting.
95
- add_setting :default_path
96
-
97
- # @macro add_setting
98
- # Run examples over DRb (default: `false`). RSpec doesn't supply the DRb
99
- # server, but you can use tools like spork.
100
- add_setting :drb
101
-
102
- # @macro add_setting
103
- # The drb_port (default: nil).
104
- add_setting :drb_port
105
-
106
- # @macro add_setting
107
- # Default: `$stderr`.
108
- add_setting :error_stream
109
-
110
- # Indicates if the DSL has been exposed off of modules and `main`.
111
- # Default: true
112
- def expose_dsl_globally?
113
- Core::DSL.exposed_globally?
114
- end
115
-
116
- # Use this to expose the core RSpec DSL via `Module` and the `main`
117
- # object. It will be set automatically but you can override it to
118
- # remove the DSL.
119
- # Default: true
120
- def expose_dsl_globally=(value)
121
- if value
122
- Core::DSL.expose_globally!
123
- Core::SharedExampleGroup::TopLevelDSL.expose_globally!
124
- else
125
- Core::DSL.remove_globally!
126
- Core::SharedExampleGroup::TopLevelDSL.remove_globally!
127
- end
128
- end
129
-
130
- # Determines where deprecation warnings are printed.
131
- # Defaults to `$stderr`.
132
- # @return [IO, String] IO to write to or filename to write to
133
- define_reader :deprecation_stream
134
-
135
- # Determines where deprecation warnings are printed.
136
- # @param value [IO, String] IO to write to or filename to write to
137
- def deprecation_stream=(value)
138
- if @reporter && !value.equal?(@deprecation_stream)
139
- warn "RSpec's reporter has already been initialized with " \
140
- "#{deprecation_stream.inspect} as the deprecation stream, so your change to "\
141
- "`deprecation_stream` will be ignored. You should configure it earlier for " \
142
- "it to take effect, or use the `--deprecation-out` CLI option. " \
143
- "(Called from #{CallerFilter.first_non_rspec_line})"
144
- else
145
- @deprecation_stream = value
146
- end
147
- end
148
-
149
- # @macro add_setting
150
- # Clean up and exit after the first failure (default: `false`).
151
- add_setting :fail_fast
152
-
153
- # @macro add_setting
154
- # Prints the formatter output of your suite without running any
155
- # examples or hooks.
156
- add_setting :dry_run
157
-
158
- # @macro add_setting
159
- # The exit code to return if there are any failures (default: 1).
160
- add_setting :failure_exit_code
161
-
162
- # @macro define_reader
163
- # Indicates files configured to be required
164
- define_reader :requires
165
-
166
- # @macro define_reader
167
- # Returns dirs that have been prepended to the load path by the `-I` command line option
168
- define_reader :libs
169
-
170
- # @macro add_setting
171
- # Determines where RSpec will send its output.
172
- # Default: `$stdout`.
173
- define_reader :output_stream
174
-
175
- # Set the output stream for reporter
176
- # @attr value [IO] value for output, defaults to $stdout
177
- def output_stream=(value)
178
- if @reporter && !value.equal?(@output_stream)
179
- warn "RSpec's reporter has already been initialized with " \
180
- "#{output_stream.inspect} as the output stream, so your change to "\
181
- "`output_stream` will be ignored. You should configure it earlier for " \
182
- "it to take effect. (Called from #{CallerFilter.first_non_rspec_line})"
183
- else
184
- @output_stream = value
185
- end
186
- end
187
-
188
- # @macro define_reader
189
- # Load files matching this pattern (default: `'**{,/*/**}/*_spec.rb'`)
190
- define_reader :pattern
191
-
192
- # Set pattern to match files to load
193
- # @attr value [String] the filename pattern to filter spec files by
194
- def pattern=(value)
195
- update_pattern_attr :pattern, value
196
- end
197
-
198
- # @macro define_reader
199
- # Exclude files matching this pattern
200
- define_reader :exclude_pattern
201
-
202
- # Set pattern to match files to exclude
203
- # @attr value [String] the filename pattern to exclude spec files by
204
- def exclude_pattern=(value)
205
- update_pattern_attr :exclude_pattern, value
206
- end
207
-
208
- # @macro add_setting
209
- # Report the times for the slowest examples (default: `false`).
210
- # Use this to specify the number of examples to include in the profile.
211
- add_setting :profile_examples
212
-
213
- # @macro add_setting
214
- # Run all examples if none match the configured filters (default: `false`).
215
- add_setting :run_all_when_everything_filtered
216
-
217
- # @macro add_setting
218
- # Color to use to indicate success.
219
- # @param color [Symbol] defaults to `:green` but can be set to one of the
220
- # following: `[:black, :white, :red, :green, :yellow,
221
- # :blue, :magenta, :cyan]`
222
- add_setting :success_color
223
-
224
- # @macro add_setting
225
- # Color to use to print pending examples.
226
- # @param color [Symbol] defaults to `:yellow` but can be set to one of the
227
- # following: `[:black, :white, :red, :green, :yellow,
228
- # :blue, :magenta, :cyan]`
229
- add_setting :pending_color
230
-
231
- # @macro add_setting
232
- # Color to use to indicate failure.
233
- # @param color [Symbol] defaults to `:red` but can be set to one of the
234
- # following: `[:black, :white, :red, :green, :yellow,
235
- # :blue, :magenta, :cyan]`
236
- add_setting :failure_color
237
-
238
- # @macro add_setting
239
- # The default output color.
240
- # @param color [Symbol] defaults to `:white` but can be set to one of the
241
- # following:`[:black, :white, :red, :green, :yellow,
242
- # :blue, :magenta, :cyan]`
243
- add_setting :default_color
244
-
245
- # @macro add_setting
246
- # Color used when a pending example is fixed.
247
- # @param color [Symbol] defaults to `:blue` but can be set to one of the
248
- # following: `[:black, :white, :red, :green, :yellow,
249
- # :blue, :magenta, :cyan]`
250
- add_setting :fixed_color
251
-
252
- # @macro add_setting
253
- # Color used to print details.
254
- # @param color [Symbol] defaults to `:cyan` but can be set to one of the
255
- # following: `[:black, :white, :red, :green, :yellow,
256
- # :blue, :magenta, :cyan]`
257
- add_setting :detail_color
258
-
259
- # Deprecated. This config option was added in RSpec 2 to pave the way
260
- # for this being the default behavior in RSpec 3. Now this option is
261
- # a no-op.
262
- def treat_symbols_as_metadata_keys_with_true_values=(_value)
263
- RSpec.deprecate("RSpec::Core::Configuration#treat_symbols_as_metadata_keys_with_true_values=",
264
- :message => "RSpec::Core::Configuration#treat_symbols_as_metadata_keys_with_true_values= " \
265
- "is deprecated, it is now set to true as default and setting it to false has no effect.")
266
- end
267
-
268
- # Record the start time of the spec suite to measure load time
269
- add_setting :start_time
270
-
271
- # @private
272
- add_setting :tty
273
- # @private
274
- add_setting :include_or_extend_modules
275
- # @private
276
- attr_writer :files_to_run
277
- # @private
278
- add_setting :expecting_with_rspec
279
- # @private
280
- attr_accessor :filter_manager
281
- # @private
282
- attr_reader :backtrace_formatter, :ordering_manager
283
-
284
- def initialize
285
- # rubocop:disable Style/GlobalVars
286
- @start_time = $_rspec_core_load_started_at || ::RSpec::Core::Time.now
287
- # rubocop:enable Style/GlobalVars
288
- @expectation_frameworks = []
289
- @include_or_extend_modules = []
290
- @mock_framework = nil
291
- @files_or_directories_to_run = []
292
- @color = false
293
- @pattern = '**{,/*/**}/*_spec.rb'
294
- @exclude_pattern = ''
295
- @failure_exit_code = 1
296
- @spec_files_loaded = false
297
-
298
- @backtrace_formatter = BacktraceFormatter.new
299
-
300
- @default_path = 'spec'
301
- @deprecation_stream = $stderr
302
- @output_stream = $stdout
303
- @reporter = nil
304
- @reporter_buffer = nil
305
- @filter_manager = FilterManager.new
306
- @ordering_manager = Ordering::ConfigurationManager.new
307
- @preferred_options = {}
308
- @failure_color = :red
309
- @success_color = :green
310
- @pending_color = :yellow
311
- @default_color = :white
312
- @fixed_color = :blue
313
- @detail_color = :cyan
314
- @profile_examples = false
315
- @requires = []
316
- @libs = []
317
- @derived_metadata_blocks = []
318
- end
319
-
320
- # @private
321
- #
322
- # Used to set higher priority option values from the command line.
323
- def force(hash)
324
- ordering_manager.force(hash)
325
- @preferred_options.merge!(hash)
326
- end
327
-
328
- # @private
329
- def reset
330
- @spec_files_loaded = false
331
- @reporter = nil
332
- @formatter_loader = nil
333
- end
334
-
335
- # @overload add_setting(name)
336
- # @overload add_setting(name, opts)
337
- # @option opts [Symbol] :default
338
- #
339
- # set a default value for the generated getter and predicate methods:
340
- #
341
- # add_setting(:foo, :default => "default value")
342
- #
343
- # @option opts [Symbol] :alias_with
344
- #
345
- # Use `:alias_with` to alias the setter, getter, and predicate to another
346
- # name, or names:
347
- #
348
- # add_setting(:foo, :alias_with => :bar)
349
- # add_setting(:foo, :alias_with => [:bar, :baz])
350
- #
351
- # Adds a custom setting to the RSpec.configuration object.
352
- #
353
- # RSpec.configuration.add_setting :foo
354
- #
355
- # Used internally and by extension frameworks like rspec-rails, so they
356
- # can add config settings that are domain specific. For example:
357
- #
358
- # RSpec.configure do |c|
359
- # c.add_setting :use_transactional_fixtures,
360
- # :default => true,
361
- # :alias_with => :use_transactional_examples
362
- # end
363
- #
364
- # `add_setting` creates three methods on the configuration object, a
365
- # setter, a getter, and a predicate:
366
- #
367
- # RSpec.configuration.foo=(value)
368
- # RSpec.configuration.foo
369
- # RSpec.configuration.foo? # returns true if foo returns anything but nil or false
370
- def add_setting(name, opts={})
371
- default = opts.delete(:default)
372
- (class << self; self; end).class_exec do
373
- add_setting(name, opts)
374
- end
375
- __send__("#{name}=", default) if default
376
- end
377
-
378
- # Returns the configured mock framework adapter module
379
- def mock_framework
380
- if @mock_framework.nil?
381
- begin
382
- mock_with :rspec
383
- rescue LoadError
384
- mock_with :nothing
385
- end
386
- end
387
- @mock_framework
388
- end
389
-
390
- # Delegates to mock_framework=(framework)
391
- def mock_framework=(framework)
392
- mock_with framework
393
- end
394
-
395
- # Regexps used to exclude lines from backtraces.
396
- #
397
- # Excludes lines from ruby (and jruby) source, installed gems, anything
398
- # in any "bin" directory, and any of the rspec libs (outside gem
399
- # installs) by default.
400
- #
401
- # You can modify the list via the getter, or replace it with the setter.
402
- #
403
- # To override this behaviour and display a full backtrace, use
404
- # `--backtrace`on the command line, in a `.rspec` file, or in the
405
- # `rspec_options` attribute of RSpec's rake task.
406
- def backtrace_exclusion_patterns
407
- @backtrace_formatter.exclusion_patterns
408
- end
409
-
410
- # Set regular expressions used to exclude lines in backtrace
411
- # @param patterns [Regexp] set the backtrace exlusion pattern
412
- def backtrace_exclusion_patterns=(patterns)
413
- @backtrace_formatter.exclusion_patterns = patterns
414
- end
415
-
416
- # Regexps used to include lines in backtraces.
417
- #
418
- # Defaults to [Regexp.new Dir.getwd].
419
- #
420
- # Lines that match an exclusion _and_ an inclusion pattern
421
- # will be included.
422
- #
423
- # You can modify the list via the getter, or replace it with the setter.
424
- def backtrace_inclusion_patterns
425
- @backtrace_formatter.inclusion_patterns
426
- end
427
-
428
- # Set regular expressions used to include lines in backtrace
429
- # @attr patterns [Regexp] set backtrace_formatter inclusion_patterns
430
- def backtrace_inclusion_patterns=(patterns)
431
- @backtrace_formatter.inclusion_patterns = patterns
432
- end
433
-
434
- # Adds {#backtrace_exclusion_patterns} that will filter lines from
435
- # the named gems from backtraces.
436
- #
437
- # @param gem_names [Array<String>] Names of the gems to filter
438
- #
439
- # @example
440
- # RSpec.configure do |config|
441
- # config.filter_gems_from_backtrace "rack", "rake"
442
- # end
443
- #
444
- # @note The patterns this adds will match the named gems in their common
445
- # locations (e.g. system gems, vendored with bundler, installed as a
446
- # :git dependency with bundler, etc) but is not guaranteed to work for
447
- # all possible gem locations. For example, if you have the gem source
448
- # in a directory with a completely unrelated name, and use bundler's
449
- # :path option, this will not filter it.
450
- def filter_gems_from_backtrace(*gem_names)
451
- gem_names.each do |name|
452
- @backtrace_formatter.filter_gem(name)
453
- end
454
- end
455
-
456
- # @private
457
- MOCKING_ADAPTERS = {
458
- :rspec => :RSpec,
459
- :flexmock => :Flexmock,
460
- :rr => :RR,
461
- :mocha => :Mocha,
462
- :nothing => :Null
463
- }
464
-
465
- # Sets the mock framework adapter module.
466
- #
467
- # `framework` can be a Symbol or a Module.
468
- #
469
- # Given any of `:rspec`, `:mocha`, `:flexmock`, or `:rr`, configures the
470
- # named framework.
471
- #
472
- # Given `:nothing`, configures no framework. Use this if you don't use
473
- # any mocking framework to save a little bit of overhead.
474
- #
475
- # Given a Module, includes that module in every example group. The module
476
- # should adhere to RSpec's mock framework adapter API:
477
- #
478
- # setup_mocks_for_rspec
479
- # - called before each example
480
- #
481
- # verify_mocks_for_rspec
482
- # - called after each example if the example hasn't yet failed.
483
- # Framework should raise an exception when expectations fail
484
- #
485
- # teardown_mocks_for_rspec
486
- # - called after verify_mocks_for_rspec (even if there are errors)
487
- #
488
- # If the module responds to `configuration` and `mock_with` receives a block,
489
- # it will yield the configuration object to the block e.g.
490
- #
491
- # config.mock_with OtherMockFrameworkAdapter do |mod_config|
492
- # mod_config.custom_setting = true
493
- # end
494
- def mock_with(framework)
495
- framework_module =
496
- if framework.is_a?(Module)
497
- framework
498
- else
499
- const_name = MOCKING_ADAPTERS.fetch(framework) do
500
- raise ArgumentError,
501
- "Unknown mocking framework: #{framework.inspect}. " \
502
- "Pass a module or one of #{MOCKING_ADAPTERS.keys.inspect}"
503
- end
504
-
505
- RSpec::Support.require_rspec_core "mocking_adapters/#{const_name.to_s.downcase}"
506
- RSpec::Core::MockingAdapters.const_get(const_name)
507
- end
508
-
509
- new_name, old_name = [framework_module, @mock_framework].map do |mod|
510
- mod.respond_to?(:framework_name) ? mod.framework_name : :unnamed
511
- end
512
-
513
- unless new_name == old_name
514
- assert_no_example_groups_defined(:mock_framework)
515
- end
516
-
517
- if block_given?
518
- raise "#{framework_module} must respond to `configuration` so that mock_with can yield it." unless framework_module.respond_to?(:configuration)
519
- yield framework_module.configuration
520
- end
521
-
522
- @mock_framework = framework_module
523
- end
524
-
525
- # Returns the configured expectation framework adapter module(s)
526
- def expectation_frameworks
527
- if @expectation_frameworks.empty?
528
- begin
529
- expect_with :rspec
530
- rescue LoadError
531
- expect_with Module.new
532
- end
533
- end
534
- @expectation_frameworks
535
- end
536
-
537
- # Delegates to expect_with(framework)
538
- def expectation_framework=(framework)
539
- expect_with(framework)
540
- end
541
-
542
- # Sets the expectation framework module(s) to be included in each example
543
- # group.
544
- #
545
- # `frameworks` can be `:rspec`, `:test_unit`, `:minitest`, a custom
546
- # module, or any combination thereof:
547
- #
548
- # config.expect_with :rspec
549
- # config.expect_with :test_unit
550
- # config.expect_with :minitest
551
- # config.expect_with :rspec, :minitest
552
- # config.expect_with OtherExpectationFramework
553
- #
554
- # RSpec will translate `:rspec`, `:minitest`, and `:test_unit` into the
555
- # appropriate modules.
556
- #
557
- # ## Configuration
558
- #
559
- # If the module responds to `configuration`, `expect_with` will
560
- # yield the `configuration` object if given a block:
561
- #
562
- # config.expect_with OtherExpectationFramework do |custom_config|
563
- # custom_config.custom_setting = true
564
- # end
565
- def expect_with(*frameworks)
566
- modules = frameworks.map do |framework|
567
- case framework
568
- when Module
569
- framework
570
- when :rspec
571
- require 'rspec/expectations'
572
- self.expecting_with_rspec = true
573
- ::RSpec::Matchers
574
- when :test_unit
575
- require 'rspec/core/test_unit_assertions_adapter'
576
- ::RSpec::Core::TestUnitAssertionsAdapter
577
- when :minitest
578
- require 'rspec/core/minitest_assertions_adapter'
579
- ::RSpec::Core::MinitestAssertionsAdapter
580
- else
581
- raise ArgumentError, "#{framework.inspect} is not supported"
582
- end
583
- end
584
-
585
- if (modules - @expectation_frameworks).any?
586
- assert_no_example_groups_defined(:expect_with)
587
- end
588
-
589
- if block_given?
590
- raise "expect_with only accepts a block with a single argument. Call expect_with #{modules.length} times, once with each argument, instead." if modules.length > 1
591
- raise "#{modules.first} must respond to `configuration` so that expect_with can yield it." unless modules.first.respond_to?(:configuration)
592
- yield modules.first.configuration
593
- end
594
-
595
- @expectation_frameworks.push(*modules)
596
- end
597
-
598
- # Check if full backtrace is enabled
599
- # @return [Boolean] is full backtrace enabled
600
- def full_backtrace?
601
- @backtrace_formatter.full_backtrace?
602
- end
603
-
604
- # Toggle full backtrace
605
- # @attr true_or_false [Boolean] toggle full backtrace display
606
- def full_backtrace=(true_or_false)
607
- @backtrace_formatter.full_backtrace = true_or_false
608
- end
609
-
610
- # Returns the configuration option for color, but should not
611
- # be used to check if color is supported.
612
- #
613
- # @see color_enabled?
614
- # @return [Boolean]
615
- def color
616
- value_for(:color, @color)
617
- end
618
-
619
- # Check if color is enabled for a particular output
620
- # @param output [IO] an output stream to use, defaults to the current
621
- # `output_stream`
622
- # @return [Boolean]
623
- def color_enabled?(output=output_stream)
624
- output_to_tty?(output) && color
625
- end
626
-
627
- # Toggle output color
628
- # @attr true_or_false [Boolean] toggle color enabled
629
- def color=(true_or_false)
630
- return unless true_or_false
631
-
632
- if RSpec.world.windows_os? && !ENV['ANSICON']
633
- RSpec.warning "You must use ANSICON 1.31 or later (http://adoxa.3eeweb.com/ansicon/) to use colour on Windows"
634
- @color = false
635
- else
636
- @color = true
637
- end
638
- end
639
-
640
- # @private
641
- def libs=(libs)
642
- libs.map do |lib|
643
- @libs.unshift lib
644
- $LOAD_PATH.unshift lib
645
- end
646
- end
647
-
648
- # Run examples matching on `description` in all files to run.
649
- # @param description [String, Regexp] the pattern to filter on
650
- def full_description=(description)
651
- filter_run :full_description => Regexp.union(*Array(description).map { |d| Regexp.new(d) })
652
- end
653
-
654
- # @return [Array] full description filter
655
- def full_description
656
- filter.fetch :full_description, nil
657
- end
658
-
659
- # @overload add_formatter(formatter)
660
- #
661
- # Adds a formatter to the formatters collection. `formatter` can be a
662
- # string representing any of the built-in formatters (see
663
- # `built_in_formatter`), or a custom formatter class.
664
- #
665
- # ### Note
666
- #
667
- # For internal purposes, `add_formatter` also accepts the name of a class
668
- # and paths to use for output streams, but you should consider that a
669
- # private api that may change at any time without notice.
670
- def add_formatter(formatter_to_use, *paths)
671
- paths << output_stream if paths.empty?
672
- formatter_loader.add formatter_to_use, *paths
673
- end
674
- alias_method :formatter=, :add_formatter
675
-
676
- # The formatter that will be used if no formatter has been set.
677
- # Defaults to 'progress'.
678
- def default_formatter
679
- formatter_loader.default_formatter
680
- end
681
-
682
- # Sets a fallback formatter to use if none other has been set.
683
- #
684
- # @example
685
- #
686
- # RSpec.configure do |rspec|
687
- # rspec.default_formatter = 'doc'
688
- # end
689
- def default_formatter=(value)
690
- formatter_loader.default_formatter = value
691
- end
692
-
693
- # Returns a duplicate of the formatters currently loaded in
694
- # the `FormatterLoader` for introspection.
695
- #
696
- # Note as this is a duplicate, any mutations will be disregarded.
697
- #
698
- # @return [Array] the formatters currently loaded
699
- def formatters
700
- formatter_loader.formatters.dup
701
- end
702
-
703
- # @private
704
- def formatter_loader
705
- @formatter_loader ||= Formatters::Loader.new(Reporter.new(self))
706
- end
707
-
708
- # @private
709
- #
710
- # This buffer is used to capture all messages sent to the reporter during
711
- # reporter initialization. It can then replay those messages after the
712
- # formatter is correctly initialized. Otherwise, deprecation warnings
713
- # during formatter initialization can cause an infinite loop.
714
- class DeprecationReporterBuffer
715
- def initialize
716
- @calls = []
717
- end
718
-
719
- def deprecation(*args)
720
- @calls << args
721
- end
722
-
723
- def play_onto(reporter)
724
- @calls.each do |args|
725
- reporter.deprecation(*args)
726
- end
727
- end
728
- end
729
-
730
- # @private
731
- def reporter
732
- # @reporter_buffer should only ever be set in this method to cover
733
- # initialization of @reporter.
734
- @reporter_buffer || @reporter ||=
735
- begin
736
- @reporter_buffer = DeprecationReporterBuffer.new
737
- formatter_loader.setup_default output_stream, deprecation_stream
738
- @reporter_buffer.play_onto(formatter_loader.reporter)
739
- @reporter_buffer = nil
740
- formatter_loader.reporter
741
- end
742
- end
743
-
744
- # @api private
745
- #
746
- # Defaults `profile_examples` to 10 examples when `@profile_examples` is `true`.
747
- #
748
- def profile_examples
749
- profile = value_for(:profile_examples, @profile_examples)
750
- if profile && !profile.is_a?(Integer)
751
- 10
752
- else
753
- profile
754
- end
755
- end
756
-
757
- # @private
758
- def files_or_directories_to_run=(*files)
759
- files = files.flatten
760
- files << default_path if (command == 'rspec' || Runner.running_in_drb?) && default_path && files.empty?
761
- @files_or_directories_to_run = files
762
- @files_to_run = nil
763
- end
764
-
765
- # The spec files RSpec will run
766
- # @return [Array] specified files about to run
767
- def files_to_run
768
- @files_to_run ||= get_files_to_run(@files_or_directories_to_run)
769
- end
770
-
771
- # Creates a method that delegates to `example` including the submitted
772
- # `args`. Used internally to add variants of `example` like `pending`:
773
- # @param name [String] example name alias
774
- # @param args [Array<Symbol>, Hash] metadata for the generated example
775
- #
776
- # @note The specific example alias below (`pending`) is already
777
- # defined for you.
778
- # @note Use with caution. This extends the language used in your
779
- # specs, but does not add any additional documentation. We use this
780
- # in rspec to define methods like `focus` and `xit`, but we also add
781
- # docs for those methods.
782
- #
783
- # @example
784
- # RSpec.configure do |config|
785
- # config.alias_example_to :pending, :pending => true
786
- # end
787
- #
788
- # # This lets you do this:
789
- #
790
- # describe Thing do
791
- # pending "does something" do
792
- # thing = Thing.new
793
- # end
794
- # end
795
- #
796
- # # ... which is the equivalent of
797
- #
798
- # describe Thing do
799
- # it "does something", :pending => true do
800
- # thing = Thing.new
801
- # end
802
- # end
803
- def alias_example_to(name, *args)
804
- extra_options = Metadata.build_hash_from(args)
805
- RSpec::Core::ExampleGroup.define_example_method(name, extra_options)
806
- end
807
-
808
- # Creates a method that defines an example group with the provided
809
- # metadata. Can be used to define example group/metadata shortcuts.
810
- #
811
- # @example
812
- # RSpec.configure do |config|
813
- # config.alias_example_group_to :describe_model, :type => :model
814
- # end
815
- #
816
- # shared_context_for "model tests", :type => :model do
817
- # # define common model test helper methods, `let` declarations, etc
818
- # end
819
- #
820
- # # This lets you do this:
821
- #
822
- # RSpec.describe_model User do
823
- # end
824
- #
825
- # # ... which is the equivalent of
826
- #
827
- # RSpec.describe User, :type => :model do
828
- # end
829
- #
830
- # @note The defined aliased will also be added to the top level
831
- # (e.g. `main` and from within modules) if
832
- # `expose_dsl_globally` is set to true.
833
- # @see #alias_example_to
834
- # @see #expose_dsl_globally=
835
- def alias_example_group_to(new_name, *args)
836
- extra_options = Metadata.build_hash_from(args)
837
- RSpec::Core::ExampleGroup.define_example_group_method(new_name, extra_options)
838
- end
839
-
840
- # Define an alias for it_should_behave_like that allows different
841
- # language (like "it_has_behavior" or "it_behaves_like") to be
842
- # employed when including shared examples.
843
- #
844
- # @example
845
- # RSpec.configure do |config|
846
- # config.alias_it_behaves_like_to(:it_has_behavior, 'has behavior:')
847
- # end
848
- #
849
- # # allows the user to include a shared example group like:
850
- #
851
- # describe Entity do
852
- # it_has_behavior 'sortability' do
853
- # let(:sortable) { Entity.new }
854
- # end
855
- # end
856
- #
857
- # # which is reported in the output as:
858
- # # Entity
859
- # # has behavior: sortability
860
- # # ...sortability examples here
861
- #
862
- # @note Use with caution. This extends the language used in your
863
- # specs, but does not add any additional documentation. We use this
864
- # in rspec to define `it_should_behave_like` (for backward
865
- # compatibility), but we also add docs for that method.
866
- def alias_it_behaves_like_to(new_name, report_label='')
867
- RSpec::Core::ExampleGroup.define_nested_shared_group_method(new_name, report_label)
868
- end
869
- alias_method :alias_it_should_behave_like_to, :alias_it_behaves_like_to
870
-
871
- # Adds key/value pairs to the `inclusion_filter`. If `args`
872
- # includes any symbols that are not part of the hash, each symbol
873
- # is treated as a key in the hash with the value `true`.
874
- #
875
- # ### Note
876
- #
877
- # Filters set using this method can be overridden from the command line
878
- # or config files (e.g. `.rspec`).
879
- #
880
- # @example
881
- # # given this declaration
882
- # describe "something", :foo => 'bar' do
883
- # # ...
884
- # end
885
- #
886
- # # any of the following will include that group
887
- # config.filter_run_including :foo => 'bar'
888
- # config.filter_run_including :foo => /^ba/
889
- # config.filter_run_including :foo => lambda {|v| v == 'bar'}
890
- # config.filter_run_including :foo => lambda {|v,m| m[:foo] == 'bar'}
891
- #
892
- # # given a proc with an arity of 1, the lambda is passed the value related to the key, e.g.
893
- # config.filter_run_including :foo => lambda {|v| v == 'bar'}
894
- #
895
- # # given a proc with an arity of 2, the lambda is passed the value related to the key,
896
- # # and the metadata itself e.g.
897
- # config.filter_run_including :foo => lambda {|v,m| m[:foo] == 'bar'}
898
- #
899
- # filter_run_including :foo # same as filter_run_including :foo => true
900
- def filter_run_including(*args)
901
- meta = Metadata.build_hash_from(args, :warn_about_example_group_filtering)
902
- filter_manager.include_with_low_priority meta
903
- end
904
-
905
- alias_method :filter_run, :filter_run_including
906
-
907
- # Clears and reassigns the `inclusion_filter`. Set to `nil` if you don't
908
- # want any inclusion filter at all.
909
- #
910
- # ### Warning
911
- #
912
- # This overrides any inclusion filters/tags set on the command line or in
913
- # configuration files.
914
- def inclusion_filter=(filter)
915
- meta = Metadata.build_hash_from([filter], :warn_about_example_group_filtering)
916
- filter_manager.include_only meta
917
- end
918
-
919
- alias_method :filter=, :inclusion_filter=
920
-
921
- # Returns the `inclusion_filter`. If none has been set, returns an empty
922
- # hash.
923
- def inclusion_filter
924
- filter_manager.inclusions
925
- end
926
-
927
- alias_method :filter, :inclusion_filter
928
-
929
- # Adds key/value pairs to the `exclusion_filter`. If `args`
930
- # includes any symbols that are not part of the hash, each symbol
931
- # is treated as a key in the hash with the value `true`.
932
- #
933
- # ### Note
934
- #
935
- # Filters set using this method can be overridden from the command line
936
- # or config files (e.g. `.rspec`).
937
- #
938
- # @example
939
- # # given this declaration
940
- # describe "something", :foo => 'bar' do
941
- # # ...
942
- # end
943
- #
944
- # # any of the following will exclude that group
945
- # config.filter_run_excluding :foo => 'bar'
946
- # config.filter_run_excluding :foo => /^ba/
947
- # config.filter_run_excluding :foo => lambda {|v| v == 'bar'}
948
- # config.filter_run_excluding :foo => lambda {|v,m| m[:foo] == 'bar'}
949
- #
950
- # # given a proc with an arity of 1, the lambda is passed the value related to the key, e.g.
951
- # config.filter_run_excluding :foo => lambda {|v| v == 'bar'}
952
- #
953
- # # given a proc with an arity of 2, the lambda is passed the value related to the key,
954
- # # and the metadata itself e.g.
955
- # config.filter_run_excluding :foo => lambda {|v,m| m[:foo] == 'bar'}
956
- #
957
- # filter_run_excluding :foo # same as filter_run_excluding :foo => true
958
- def filter_run_excluding(*args)
959
- meta = Metadata.build_hash_from(args, :warn_about_example_group_filtering)
960
- filter_manager.exclude_with_low_priority meta
961
- end
962
-
963
- # Clears and reassigns the `exclusion_filter`. Set to `nil` if you don't
964
- # want any exclusion filter at all.
965
- #
966
- # ### Warning
967
- #
968
- # This overrides any exclusion filters/tags set on the command line or in
969
- # configuration files.
970
- def exclusion_filter=(filter)
971
- meta = Metadata.build_hash_from([filter], :warn_about_example_group_filtering)
972
- filter_manager.exclude_only meta
973
- end
974
-
975
- # Returns the `exclusion_filter`. If none has been set, returns an empty
976
- # hash.
977
- def exclusion_filter
978
- filter_manager.exclusions
979
- end
980
-
981
- # Tells RSpec to include `mod` in example groups. Methods defined in
982
- # `mod` are exposed to examples (not example groups). Use `filters` to
983
- # constrain the groups in which to include the module.
984
- #
985
- # @example
986
- #
987
- # module AuthenticationHelpers
988
- # def login_as(user)
989
- # # ...
990
- # end
991
- # end
992
- #
993
- # module UserHelpers
994
- # def users(username)
995
- # # ...
996
- # end
997
- # end
998
- #
999
- # RSpec.configure do |config|
1000
- # config.include(UserHelpers) # included in all modules
1001
- # config.include(AuthenticationHelpers, :type => :request)
1002
- # end
1003
- #
1004
- # describe "edit profile", :type => :request do
1005
- # it "can be viewed by owning user" do
1006
- # login_as users(:jdoe)
1007
- # get "/profiles/jdoe"
1008
- # assert_select ".username", :text => 'jdoe'
1009
- # end
1010
- # end
1011
- #
1012
- # @see #extend
1013
- def include(mod, *filters)
1014
- meta = Metadata.build_hash_from(filters, :warn_about_example_group_filtering)
1015
- include_or_extend_modules << [:include, mod, meta]
1016
- end
1017
-
1018
- # Tells RSpec to extend example groups with `mod`. Methods defined in
1019
- # `mod` are exposed to example groups (not examples). Use `filters` to
1020
- # constrain the groups to extend.
1021
- #
1022
- # Similar to `include`, but behavior is added to example groups, which
1023
- # are classes, rather than the examples, which are instances of those
1024
- # classes.
1025
- #
1026
- # @example
1027
- #
1028
- # module UiHelpers
1029
- # def run_in_browser
1030
- # # ...
1031
- # end
1032
- # end
1033
- #
1034
- # RSpec.configure do |config|
1035
- # config.extend(UiHelpers, :type => :request)
1036
- # end
1037
- #
1038
- # describe "edit profile", :type => :request do
1039
- # run_in_browser
1040
- #
1041
- # it "does stuff in the client" do
1042
- # # ...
1043
- # end
1044
- # end
1045
- #
1046
- # @see #include
1047
- def extend(mod, *filters)
1048
- meta = Metadata.build_hash_from(filters, :warn_about_example_group_filtering)
1049
- include_or_extend_modules << [:extend, mod, meta]
1050
- end
1051
-
1052
- # @private
1053
- #
1054
- # Used internally to extend a group with modules using `include` and/or
1055
- # `extend`.
1056
- def configure_group(group)
1057
- include_or_extend_modules.each do |include_or_extend, mod, filters|
1058
- next unless filters.empty? || group.any_apply?(filters)
1059
- __send__("safe_#{include_or_extend}", mod, group)
1060
- end
1061
- end
1062
-
1063
- # @private
1064
- def safe_include(mod, host)
1065
- host.__send__(:include, mod) unless host < mod
1066
- end
1067
-
1068
- # @private
1069
- def requires=(paths)
1070
- directories = ['lib', default_path].select { |p| File.directory? p }
1071
- RSpec::Core::RubyProject.add_to_load_path(*directories)
1072
- paths.each { |path| require path }
1073
- @requires += paths
1074
- end
1075
-
1076
- # @private
1077
- if RUBY_VERSION.to_f >= 1.9
1078
- # @private
1079
- def safe_extend(mod, host)
1080
- host.extend(mod) unless host.singleton_class < mod
1081
- end
1082
- else
1083
- # @private
1084
- def safe_extend(mod, host)
1085
- host.extend(mod) unless (class << host; self; end).included_modules.include?(mod)
1086
- end
1087
- end
1088
-
1089
- # @private
1090
- def configure_mock_framework
1091
- RSpec::Core::ExampleGroup.__send__(:include, mock_framework)
1092
- conditionally_disable_mocks_monkey_patching
1093
- end
1094
-
1095
- # @private
1096
- def configure_expectation_framework
1097
- expectation_frameworks.each do |framework|
1098
- RSpec::Core::ExampleGroup.__send__(:include, framework)
1099
- end
1100
- conditionally_disable_expectations_monkey_patching
1101
- end
1102
-
1103
- # @private
1104
- def load_spec_files
1105
- files_to_run.uniq.each { |f| load File.expand_path(f) }
1106
- @spec_files_loaded = true
1107
- end
1108
-
1109
- # @private
1110
- DEFAULT_FORMATTER = lambda { |string| string }
1111
-
1112
- # Formats the docstring output using the block provided.
1113
- #
1114
- # @example
1115
- # # This will strip the descriptions of both examples and example groups.
1116
- # RSpec.configure do |config|
1117
- # config.format_docstrings { |s| s.strip }
1118
- # end
1119
- def format_docstrings(&block)
1120
- @format_docstrings_block = block_given? ? block : DEFAULT_FORMATTER
1121
- end
1122
-
1123
- # @private
1124
- def format_docstrings_block
1125
- @format_docstrings_block ||= DEFAULT_FORMATTER
1126
- end
1127
-
1128
- # @private
1129
- # @macro [attach] delegate_to_ordering_manager
1130
- # @!method $1
1131
- def self.delegate_to_ordering_manager(*methods)
1132
- methods.each do |method|
1133
- define_method method do |*args, &block|
1134
- ordering_manager.__send__(method, *args, &block)
1135
- end
1136
- end
1137
- end
1138
-
1139
- # @macro delegate_to_ordering_manager
1140
- #
1141
- # Sets the seed value and sets the default global ordering to random.
1142
- delegate_to_ordering_manager :seed=
1143
-
1144
- # @macro delegate_to_ordering_manager
1145
- # Seed for random ordering (default: generated randomly each run).
1146
- #
1147
- # When you run specs with `--order random`, RSpec generates a random seed
1148
- # for the randomization and prints it to the `output_stream` (assuming
1149
- # you're using RSpec's built-in formatters). If you discover an ordering
1150
- # dependency (i.e. examples fail intermittently depending on order), set
1151
- # this (on Configuration or on the command line with `--seed`) to run
1152
- # using the same seed while you debug the issue.
1153
- #
1154
- # We recommend, actually, that you use the command line approach so you
1155
- # don't accidentally leave the seed encoded.
1156
- delegate_to_ordering_manager :seed
1157
-
1158
- # @macro delegate_to_ordering_manager
1159
- #
1160
- # Sets the default global order and, if order is `'rand:<seed>'`, also sets the seed.
1161
- delegate_to_ordering_manager :order=
1162
-
1163
- # @macro delegate_to_ordering_manager
1164
- # Registers a named ordering strategy that can later be
1165
- # used to order an example group's subgroups by adding
1166
- # `:order => <name>` metadata to the example group.
1167
- #
1168
- # @param name [Symbol] The name of the ordering.
1169
- # @yield Block that will order the given examples or example groups
1170
- # @yieldparam list [Array<RSpec::Core::Example>, Array<RSpec::Core::ExampleGroup>] The examples or groups to order
1171
- # @yieldreturn [Array<RSpec::Core::Example>, Array<RSpec::Core::ExampleGroup>] The re-ordered examples or groups
1172
- #
1173
- # @example
1174
- # RSpec.configure do |rspec|
1175
- # rspec.register_ordering :reverse do |list|
1176
- # list.reverse
1177
- # end
1178
- # end
1179
- #
1180
- # describe MyClass, :order => :reverse do
1181
- # # ...
1182
- # end
1183
- #
1184
- # @note Pass the symbol `:global` to set the ordering strategy that
1185
- # will be used to order the top-level example groups and any example
1186
- # groups that do not have declared `:order` metadata.
1187
- delegate_to_ordering_manager :register_ordering
1188
-
1189
- # @private
1190
- delegate_to_ordering_manager :seed_used?, :ordering_registry
1191
-
1192
- # Set Ruby warnings on or off
1193
- def warnings=(value)
1194
- $VERBOSE = !!value
1195
- end
1196
-
1197
- # @return [Boolean] Whether or not ruby warnings are enabled.
1198
- def warnings?
1199
- $VERBOSE
1200
- end
1201
-
1202
- # Exposes the current running example via the named
1203
- # helper method. RSpec 2.x exposed this via `example`,
1204
- # but in RSpec 3.0, the example is instead exposed via
1205
- # an arg yielded to `it`, `before`, `let`, etc. However,
1206
- # some extension gems (such as Capybara) depend on the
1207
- # RSpec 2.x's `example` method, so this config option
1208
- # can be used to maintain compatibility.
1209
- #
1210
- # @param method_name [Symbol] the name of the helper method
1211
- #
1212
- # @example
1213
- #
1214
- # RSpec.configure do |rspec|
1215
- # rspec.expose_current_running_example_as :example
1216
- # end
1217
- #
1218
- # describe MyClass do
1219
- # before do
1220
- # # `example` can be used here because of the above config.
1221
- # do_something if example.metadata[:type] == "foo"
1222
- # end
1223
- # end
1224
- def expose_current_running_example_as(method_name)
1225
- ExposeCurrentExample.module_exec do
1226
- extend RSpec::SharedContext
1227
- let(method_name) { |ex| ex }
1228
- end
1229
-
1230
- include ExposeCurrentExample
1231
- end
1232
-
1233
- # @private
1234
- module ExposeCurrentExample; end
1235
-
1236
- # Turns deprecation warnings into errors, in order to surface
1237
- # the full backtrace of the call site. This can be useful when
1238
- # you need more context to address a deprecation than the
1239
- # single-line call site normally provided.
1240
- #
1241
- # @example
1242
- #
1243
- # RSpec.configure do |rspec|
1244
- # rspec.raise_errors_for_deprecations!
1245
- # end
1246
- def raise_errors_for_deprecations!
1247
- self.deprecation_stream = Formatters::DeprecationFormatter::RaiseErrorStream.new
1248
- end
1249
-
1250
- # Enables zero monkey patching mode for RSpec. It removes monkey
1251
- # patching of the top-level DSL methods (`describe`,
1252
- # `shared_examples_for`, etc) onto `main` and `Module`, instead
1253
- # requiring you to prefix these methods with `RSpec.`. It enables
1254
- # expect-only syntax for rspec-mocks and rspec-expectations. It
1255
- # simply disables monkey patching on whatever pieces of rspec
1256
- # the user is using.
1257
- #
1258
- # @note It configures rspec-mocks and rspec-expectations only
1259
- # if the user is using those (either explicitly or implicitly
1260
- # by not setting `mock_with` or `expect_with` to anything else).
1261
- #
1262
- # @note If the user uses this options with `mock_with :mocha`
1263
- # (or similiar) they will still have monkey patching active
1264
- # in their test environment from mocha.
1265
- #
1266
- # @example
1267
- #
1268
- # # It disables all monkey patching
1269
- # RSpec.configure do |config|
1270
- # config.disable_monkey_patching!
1271
- # end
1272
- #
1273
- # # Is an equivalent to
1274
- # RSpec.configure do |config|
1275
- # config.expose_dsl_globally = false
1276
- #
1277
- # config.mock_with :rspec do |mocks|
1278
- # mocks.syntax = :expect
1279
- # mocks.patch_marshal_to_support_partial_doubles = false
1280
- # end
1281
- #
1282
- # config.mock_with :rspec do |expectations|
1283
- # expectations.syntax = :expect
1284
- # end
1285
- # end
1286
- def disable_monkey_patching!
1287
- self.expose_dsl_globally = false
1288
- self.disable_monkey_patching = true
1289
- conditionally_disable_mocks_monkey_patching
1290
- conditionally_disable_expectations_monkey_patching
1291
- end
1292
-
1293
- # @private
1294
- attr_accessor :disable_monkey_patching
1295
-
1296
- # Defines a callback that can assign derived metadata values.
1297
- #
1298
- # @param filters [Array<Symbol>, Hash] metadata filters that determine which example
1299
- # or group metadata hashes the callback will be triggered for. If none are given,
1300
- # the callback will be run against the metadata hashes of all groups and examples.
1301
- # @yieldparam metadata [Hash] original metadata hash from an example or group. Mutate this in
1302
- # your block as needed.
1303
- #
1304
- # @example
1305
- # RSpec.configure do |config|
1306
- # # Tag all groups and examples in the spec/unit directory with :type => :unit
1307
- # config.define_derived_metadata(:file_path => %r{/spec/unit/}) do |metadata|
1308
- # metadata[:type] = :unit
1309
- # end
1310
- # end
1311
- def define_derived_metadata(*filters, &block)
1312
- meta = Metadata.build_hash_from(filters, :warn_about_example_group_filtering)
1313
- @derived_metadata_blocks << [meta, block]
1314
- end
1315
-
1316
- # @private
1317
- def apply_derived_metadata_to(metadata)
1318
- @derived_metadata_blocks.each do |filter, block|
1319
- block.call(metadata) if filter.empty? || MetadataFilter.any_apply?(filter, metadata)
1320
- end
1321
- end
1322
-
1323
- private
1324
-
1325
- def get_files_to_run(paths)
1326
- FlatMap.flat_map(paths_to_check(paths)) do |path|
1327
- path = path.gsub(File::ALT_SEPARATOR, File::SEPARATOR) if File::ALT_SEPARATOR
1328
- File.directory?(path) ? gather_directories(path) : extract_location(path)
1329
- end.sort.uniq
1330
- end
1331
-
1332
- def paths_to_check(paths)
1333
- return paths if pattern_might_load_specs_from_vendored_dirs?
1334
- paths + ['.']
1335
- end
1336
-
1337
- def pattern_might_load_specs_from_vendored_dirs?
1338
- pattern.split(File::SEPARATOR).first.include?('**')
1339
- end
1340
-
1341
- def gather_directories(path)
1342
- include_files = get_matching_files(path, pattern)
1343
- exclude_files = get_matching_files(path, exclude_pattern)
1344
- (include_files - exclude_files).sort.uniq
1345
- end
1346
-
1347
- def get_matching_files(path, pattern)
1348
- Dir[file_glob_from(path, pattern)].map { |file| File.expand_path(file) }
1349
- end
1350
-
1351
- def file_glob_from(path, pattern)
1352
- stripped = "{#{pattern.gsub(/\s*,\s*/, ',')}}"
1353
- return stripped if pattern =~ /^(\.\/)?#{Regexp.escape path}/ || absolute_pattern?(pattern)
1354
- File.join(path, stripped)
1355
- end
1356
-
1357
- if RSpec::Support::OS.windows?
1358
- def absolute_pattern?(pattern)
1359
- pattern =~ /\A[A-Z]:\\/ || windows_absolute_network_path?(pattern)
1360
- end
1361
-
1362
- def windows_absolute_network_path?(pattern)
1363
- return false unless ::File::ALT_SEPARATOR
1364
- pattern.start_with?(::File::ALT_SEPARATOR + ::File::ALT_SEPARATOR)
1365
- end
1366
- else
1367
- def absolute_pattern?(pattern)
1368
- pattern.start_with?(File::Separator)
1369
- end
1370
- end
1371
-
1372
- def extract_location(path)
1373
- match = /^(.*?)((?:\:\d+)+)$/.match(path)
1374
-
1375
- if match
1376
- captures = match.captures
1377
- path, lines = captures[0], captures[1][1..-1].split(":").map { |n| n.to_i }
1378
- filter_manager.add_location path, lines
1379
- end
1380
-
1381
- return [] if path == default_path
1382
- path
1383
- end
1384
-
1385
- def command
1386
- $0.split(File::SEPARATOR).last
1387
- end
1388
-
1389
- def value_for(key, default=nil)
1390
- @preferred_options.key?(key) ? @preferred_options[key] : default
1391
- end
1392
-
1393
- def assert_no_example_groups_defined(config_option)
1394
- return unless RSpec.world.example_groups.any?
1395
-
1396
- raise MustBeConfiguredBeforeExampleGroupsError.new(
1397
- "RSpec's #{config_option} configuration option must be configured before " \
1398
- "any example groups are defined, but you have already defined a group."
1399
- )
1400
- end
1401
-
1402
- def output_to_tty?(output=output_stream)
1403
- tty? || (output.respond_to?(:tty?) && output.tty?)
1404
- end
1405
-
1406
- def conditionally_disable_mocks_monkey_patching
1407
- return unless disable_monkey_patching && rspec_mocks_loaded?
1408
-
1409
- RSpec::Mocks.configuration.tap do |config|
1410
- config.syntax = :expect
1411
- config.patch_marshal_to_support_partial_doubles = false
1412
- end
1413
- end
1414
-
1415
- def conditionally_disable_expectations_monkey_patching
1416
- return unless disable_monkey_patching && rspec_expectations_loaded?
1417
-
1418
- RSpec::Expectations.configuration.syntax = :expect
1419
- end
1420
-
1421
- def rspec_mocks_loaded?
1422
- defined?(RSpec::Mocks.configuration)
1423
- end
1424
-
1425
- def rspec_expectations_loaded?
1426
- defined?(RSpec::Expectations.configuration)
1427
- end
1428
-
1429
- def update_pattern_attr(name, value)
1430
- if @spec_files_loaded
1431
- RSpec.warning "Configuring `#{name}` to #{value} has no effect since RSpec has already loaded the spec files."
1432
- end
1433
-
1434
- instance_variable_set(:"@#{name}", value)
1435
- @files_to_run = nil
1436
- end
1437
- end
1438
- # rubocop:enable Style/ClassLength
1439
- end
1440
- end