rspec 1.3.2 → 2.0.0.a2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (398) hide show
  1. data/.document +4 -6
  2. data/.gitignore +4 -14
  3. data/License.txt +1 -1
  4. data/README.markdown +46 -0
  5. data/Rakefile +26 -100
  6. data/lib/rspec.rb +4 -0
  7. data/lib/rspec/version.rb +14 -0
  8. data/rspec.gemspec +46 -19
  9. metadata +72 -673
  10. data/.autotest +0 -5
  11. data/Gemfile +0 -20
  12. data/History.rdoc +0 -1560
  13. data/README.rdoc +0 -44
  14. data/Ruby1.9.rdoc +0 -31
  15. data/TODO.txt +0 -17
  16. data/Upgrade.rdoc +0 -260
  17. data/bin/autospec +0 -4
  18. data/bin/spec +0 -5
  19. data/cucumber.yml +0 -5
  20. data/example_spec.rb +0 -4
  21. data/examples/failing/README.txt +0 -11
  22. data/examples/failing/diffing_spec.rb +0 -36
  23. data/examples/failing/failing_implicit_docstrings_example.rb +0 -17
  24. data/examples/failing/failure_in_after.rb +0 -10
  25. data/examples/failing/failure_in_before.rb +0 -10
  26. data/examples/failing/mocking_example.rb +0 -38
  27. data/examples/failing/mocking_with_flexmock.rb +0 -26
  28. data/examples/failing/mocking_with_mocha.rb +0 -25
  29. data/examples/failing/mocking_with_rr.rb +0 -27
  30. data/examples/failing/partial_mock_example.rb +0 -18
  31. data/examples/failing/pending_example.rb +0 -7
  32. data/examples/failing/predicate_example.rb +0 -32
  33. data/examples/failing/raising_example.rb +0 -47
  34. data/examples/failing/syntax_error_example.rb +0 -7
  35. data/examples/failing/team_spec.rb +0 -41
  36. data/examples/failing/timeout_behaviour.rb +0 -5
  37. data/examples/passing/custom_formatter.rb +0 -11
  38. data/examples/passing/custom_matchers.rb +0 -54
  39. data/examples/passing/dynamic_spec.rb +0 -7
  40. data/examples/passing/file_accessor.rb +0 -18
  41. data/examples/passing/file_accessor_spec.rb +0 -37
  42. data/examples/passing/filtered_formatter.rb +0 -17
  43. data/examples/passing/filtered_formatter_example.rb +0 -31
  44. data/examples/passing/greeter_spec.rb +0 -30
  45. data/examples/passing/helper_method_example.rb +0 -12
  46. data/examples/passing/implicit_docstrings_example.rb +0 -16
  47. data/examples/passing/io_processor.rb +0 -8
  48. data/examples/passing/io_processor_spec.rb +0 -20
  49. data/examples/passing/mocking_example.rb +0 -25
  50. data/examples/passing/multi_threaded_example_group_runner.rb +0 -26
  51. data/examples/passing/nested_classes_example.rb +0 -35
  52. data/examples/passing/options_example.rb +0 -29
  53. data/examples/passing/options_formatter.rb +0 -20
  54. data/examples/passing/partial_mock_example.rb +0 -27
  55. data/examples/passing/pending_example.rb +0 -18
  56. data/examples/passing/predicate_example.rb +0 -25
  57. data/examples/passing/shared_example_group_example.rb +0 -43
  58. data/examples/passing/shared_stack_examples.rb +0 -36
  59. data/examples/passing/simple_matcher_example.rb +0 -29
  60. data/examples/passing/stack.rb +0 -36
  61. data/examples/passing/stack_spec.rb +0 -63
  62. data/examples/passing/stack_spec_with_nested_example_groups.rb +0 -66
  63. data/examples/passing/stubbing_example.rb +0 -67
  64. data/examples/passing/yielding_example.rb +0 -31
  65. data/examples/ruby1.9.compatibility/access_to_constants_spec.rb +0 -85
  66. data/features-pending/cli/conditional_exclusion.feature +0 -39
  67. data/features-pending/heckle/heckle.feature +0 -56
  68. data/features/before_and_after_blocks/before_and_after_blocks.feature +0 -167
  69. data/features/command_line/line_number_option.feature +0 -56
  70. data/features/command_line/line_number_option_with_example_with_no_name.feature +0 -22
  71. data/features/example_groups/define_example_attribute.feature +0 -41
  72. data/features/example_groups/example_group_with_should_methods.feature +0 -29
  73. data/features/example_groups/implicit_docstrings.feature +0 -59
  74. data/features/example_groups/nested_groups.feature +0 -32
  75. data/features/expectations/customized_message.feature +0 -54
  76. data/features/expectations/expect_change.feature +0 -65
  77. data/features/expectations/expect_error.feature +0 -44
  78. data/features/extensions/custom_example_group.feature +0 -19
  79. data/features/formatters/custom_formatter.feature +0 -30
  80. data/features/formatters/nested_formatter.feature +0 -32
  81. data/features/interop/cucumber_stubs_dont_leak.feature +0 -11
  82. data/features/interop/examples_and_tests_together.feature +0 -84
  83. data/features/interop/rspec_output.feature +0 -25
  84. data/features/interop/test_but_not_test_unit.feature +0 -26
  85. data/features/interop/test_case_with_should_methods.feature +0 -46
  86. data/features/load_paths/add_lib_to_load_path.feature +0 -20
  87. data/features/load_paths/add_spec_to_load_path.feature +0 -20
  88. data/features/matchers/define_diffable_matcher.feature +0 -26
  89. data/features/matchers/define_matcher.feature +0 -179
  90. data/features/matchers/define_matcher_outside_rspec.feature +0 -37
  91. data/features/matchers/define_matcher_with_fluent_interface.feature +0 -48
  92. data/features/matchers/define_wrapped_matcher.feature +0 -56
  93. data/features/matchers/match_unless_raises.feature +0 -60
  94. data/features/matchers/match_unless_raises_unexpected_error.feature +0 -39
  95. data/features/mock_framework_integration/use_flexmock.feature +0 -27
  96. data/features/mock_framework_integration/use_mocha.feature +0 -27
  97. data/features/mock_framework_integration/use_rr.feature +0 -27
  98. data/features/mocks/block_local_expectations.feature +0 -62
  99. data/features/mocks/mix_stubs_and_mocks.feature +0 -22
  100. data/features/mocks/stub_implementation.feature +0 -26
  101. data/features/pending/pending_examples.feature +0 -81
  102. data/features/runner/specify_line_number.feature +0 -32
  103. data/features/spec_helper/spec_helper.feature +0 -25
  104. data/features/step_definitions/running_rspec_steps.rb +0 -52
  105. data/features/step_definitions/stubbing_steps.rb +0 -16
  106. data/features/subject/explicit_subject.feature +0 -31
  107. data/features/subject/implicit_subject.feature +0 -43
  108. data/features/support/env.rb +0 -83
  109. data/features/support/matchers/smart_match.rb +0 -31
  110. data/init.rb +0 -9
  111. data/lib/autotest/discover.rb +0 -3
  112. data/lib/autotest/rspec.rb +0 -54
  113. data/lib/spec.rb +0 -8
  114. data/lib/spec/adapters/mock_frameworks/flexmock.rb +0 -24
  115. data/lib/spec/adapters/mock_frameworks/mocha.rb +0 -25
  116. data/lib/spec/adapters/mock_frameworks/rr.rb +0 -22
  117. data/lib/spec/adapters/mock_frameworks/rspec.rb +0 -21
  118. data/lib/spec/autorun.rb +0 -3
  119. data/lib/spec/deprecation.rb +0 -41
  120. data/lib/spec/dsl.rb +0 -1
  121. data/lib/spec/dsl/main.rb +0 -93
  122. data/lib/spec/example.rb +0 -164
  123. data/lib/spec/example/args_and_options.rb +0 -27
  124. data/lib/spec/example/before_and_after_hooks.rb +0 -93
  125. data/lib/spec/example/errors.rb +0 -25
  126. data/lib/spec/example/example_group.rb +0 -10
  127. data/lib/spec/example/example_group_factory.rb +0 -82
  128. data/lib/spec/example/example_group_hierarchy.rb +0 -53
  129. data/lib/spec/example/example_group_methods.rb +0 -287
  130. data/lib/spec/example/example_group_proxy.rb +0 -61
  131. data/lib/spec/example/example_matcher.rb +0 -43
  132. data/lib/spec/example/example_methods.rb +0 -152
  133. data/lib/spec/example/example_proxy.rb +0 -41
  134. data/lib/spec/example/module_reopening_fix.rb +0 -43
  135. data/lib/spec/example/pending.rb +0 -18
  136. data/lib/spec/example/predicate_matchers.rb +0 -46
  137. data/lib/spec/example/shared_example_group.rb +0 -59
  138. data/lib/spec/example/subject.rb +0 -114
  139. data/lib/spec/expectations.rb +0 -35
  140. data/lib/spec/expectations/errors.rb +0 -12
  141. data/lib/spec/expectations/extensions.rb +0 -1
  142. data/lib/spec/expectations/extensions/kernel.rb +0 -52
  143. data/lib/spec/expectations/fail_with.rb +0 -45
  144. data/lib/spec/expectations/handler.rb +0 -50
  145. data/lib/spec/extensions/instance_exec.rb +0 -31
  146. data/lib/spec/interop/test.rb +0 -44
  147. data/lib/spec/interop/test/unit/autorunner.rb +0 -6
  148. data/lib/spec/interop/test/unit/testcase.rb +0 -56
  149. data/lib/spec/interop/test/unit/testresult.rb +0 -6
  150. data/lib/spec/interop/test/unit/testsuite_adapter.rb +0 -36
  151. data/lib/spec/interop/test/unit/ui/console/testrunner.rb +0 -61
  152. data/lib/spec/matchers.rb +0 -214
  153. data/lib/spec/matchers/be.rb +0 -249
  154. data/lib/spec/matchers/be_close.rb +0 -32
  155. data/lib/spec/matchers/be_instance_of.rb +0 -26
  156. data/lib/spec/matchers/be_kind_of.rb +0 -26
  157. data/lib/spec/matchers/change.rb +0 -151
  158. data/lib/spec/matchers/compatibility.rb +0 -14
  159. data/lib/spec/matchers/dsl.rb +0 -20
  160. data/lib/spec/matchers/eql.rb +0 -42
  161. data/lib/spec/matchers/equal.rb +0 -53
  162. data/lib/spec/matchers/errors.rb +0 -5
  163. data/lib/spec/matchers/exist.rb +0 -16
  164. data/lib/spec/matchers/generated_descriptions.rb +0 -36
  165. data/lib/spec/matchers/has.rb +0 -35
  166. data/lib/spec/matchers/have.rb +0 -152
  167. data/lib/spec/matchers/include.rb +0 -44
  168. data/lib/spec/matchers/match.rb +0 -21
  169. data/lib/spec/matchers/match_array.rb +0 -71
  170. data/lib/spec/matchers/matcher.rb +0 -132
  171. data/lib/spec/matchers/method_missing.rb +0 -9
  172. data/lib/spec/matchers/operator_matcher.rb +0 -83
  173. data/lib/spec/matchers/pretty.rb +0 -37
  174. data/lib/spec/matchers/raise_exception.rb +0 -131
  175. data/lib/spec/matchers/respond_to.rb +0 -71
  176. data/lib/spec/matchers/satisfy.rb +0 -47
  177. data/lib/spec/matchers/simple_matcher.rb +0 -134
  178. data/lib/spec/matchers/throw_symbol.rb +0 -100
  179. data/lib/spec/matchers/wrap_expectation.rb +0 -55
  180. data/lib/spec/mocks.rb +0 -200
  181. data/lib/spec/mocks/argument_expectation.rb +0 -51
  182. data/lib/spec/mocks/argument_matchers.rb +0 -237
  183. data/lib/spec/mocks/error_generator.rb +0 -92
  184. data/lib/spec/mocks/errors.rb +0 -10
  185. data/lib/spec/mocks/example_methods.rb +0 -69
  186. data/lib/spec/mocks/extensions.rb +0 -1
  187. data/lib/spec/mocks/extensions/object.rb +0 -3
  188. data/lib/spec/mocks/framework.rb +0 -15
  189. data/lib/spec/mocks/message_expectation.rb +0 -344
  190. data/lib/spec/mocks/methods.rb +0 -94
  191. data/lib/spec/mocks/mock.rb +0 -71
  192. data/lib/spec/mocks/order_group.rb +0 -29
  193. data/lib/spec/mocks/proxy.rb +0 -254
  194. data/lib/spec/mocks/space.rb +0 -28
  195. data/lib/spec/rake/spectask.rb +0 -230
  196. data/lib/spec/rake/verify_rcov.rb +0 -52
  197. data/lib/spec/ruby.rb +0 -9
  198. data/lib/spec/runner.rb +0 -66
  199. data/lib/spec/runner/backtrace_tweaker.rb +0 -78
  200. data/lib/spec/runner/class_and_arguments_parser.rb +0 -14
  201. data/lib/spec/runner/command_line.rb +0 -15
  202. data/lib/spec/runner/configuration.rb +0 -202
  203. data/lib/spec/runner/differs/default.rb +0 -93
  204. data/lib/spec/runner/differs/load-diff-lcs.rb +0 -12
  205. data/lib/spec/runner/drb_command_line.rb +0 -32
  206. data/lib/spec/runner/example_group_runner.rb +0 -58
  207. data/lib/spec/runner/extensions/kernel.rb +0 -9
  208. data/lib/spec/runner/formatter/base_formatter.rb +0 -139
  209. data/lib/spec/runner/formatter/base_text_formatter.rb +0 -142
  210. data/lib/spec/runner/formatter/failing_example_groups_formatter.rb +0 -25
  211. data/lib/spec/runner/formatter/failing_examples_formatter.rb +0 -20
  212. data/lib/spec/runner/formatter/html_formatter.rb +0 -338
  213. data/lib/spec/runner/formatter/nested_text_formatter.rb +0 -50
  214. data/lib/spec/runner/formatter/no_op_method_missing.rb +0 -21
  215. data/lib/spec/runner/formatter/profile_formatter.rb +0 -47
  216. data/lib/spec/runner/formatter/progress_bar_formatter.rb +0 -33
  217. data/lib/spec/runner/formatter/silent_formatter.rb +0 -10
  218. data/lib/spec/runner/formatter/snippet_extractor.rb +0 -52
  219. data/lib/spec/runner/formatter/specdoc_formatter.rb +0 -33
  220. data/lib/spec/runner/formatter/text_mate_formatter.rb +0 -16
  221. data/lib/spec/runner/heckle_runner.rb +0 -77
  222. data/lib/spec/runner/heckle_runner_unsupported.rb +0 -10
  223. data/lib/spec/runner/line_number_query.rb +0 -78
  224. data/lib/spec/runner/option_parser.rb +0 -225
  225. data/lib/spec/runner/options.rb +0 -406
  226. data/lib/spec/runner/reporter.rb +0 -171
  227. data/lib/spec/stubs/cucumber.rb +0 -5
  228. data/lib/spec/test/unit.rb +0 -10
  229. data/lib/spec/version.rb +0 -14
  230. data/resources/helpers/cmdline.rb +0 -8
  231. data/resources/rake/examples.rake +0 -7
  232. data/resources/rake/examples_with_rcov.rake +0 -9
  233. data/resources/rake/failing_examples_with_html.rake +0 -9
  234. data/resources/rake/verify_rcov.rake +0 -7
  235. data/spec/README.jruby +0 -15
  236. data/spec/autotest/autotest_helper.rb +0 -8
  237. data/spec/autotest/autotest_matchers.rb +0 -38
  238. data/spec/autotest/discover_spec.rb +0 -8
  239. data/spec/autotest/failed_results_re_spec.rb +0 -31
  240. data/spec/autotest/rspec_spec.rb +0 -126
  241. data/spec/ruby_forker.rb +0 -13
  242. data/spec/spec.opts +0 -6
  243. data/spec/spec/dsl/main_spec.rb +0 -103
  244. data/spec/spec/example/example_group_class_definition_spec.rb +0 -51
  245. data/spec/spec/example/example_group_factory_spec.rb +0 -180
  246. data/spec/spec/example/example_group_methods_spec.rb +0 -778
  247. data/spec/spec/example/example_group_proxy_spec.rb +0 -107
  248. data/spec/spec/example/example_group_spec.rb +0 -632
  249. data/spec/spec/example/example_matcher_spec.rb +0 -85
  250. data/spec/spec/example/example_methods_spec.rb +0 -162
  251. data/spec/spec/example/example_proxy_spec.rb +0 -57
  252. data/spec/spec/example/helper_method_spec.rb +0 -24
  253. data/spec/spec/example/nested_example_group_spec.rb +0 -71
  254. data/spec/spec/example/pending_module_spec.rb +0 -58
  255. data/spec/spec/example/predicate_matcher_spec.rb +0 -41
  256. data/spec/spec/example/shared_example_group_spec.rb +0 -257
  257. data/spec/spec/example/subclassing_example_group_spec.rb +0 -25
  258. data/spec/spec/example/subject_spec.rb +0 -110
  259. data/spec/spec/expectations/differs/default_spec.rb +0 -194
  260. data/spec/spec/expectations/extensions/kernel_spec.rb +0 -45
  261. data/spec/spec/expectations/fail_with_spec.rb +0 -96
  262. data/spec/spec/expectations/handler_spec.rb +0 -206
  263. data/spec/spec/expectations/wrap_expectation_spec.rb +0 -31
  264. data/spec/spec/interop/test/unit/resources/spec_that_fails.rb +0 -10
  265. data/spec/spec/interop/test/unit/resources/spec_that_passes.rb +0 -10
  266. data/spec/spec/interop/test/unit/resources/spec_with_errors.rb +0 -10
  267. data/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +0 -13
  268. data/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +0 -10
  269. data/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +0 -10
  270. data/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +0 -10
  271. data/spec/spec/interop/test/unit/resources/test_case_with_various_names.rb +0 -22
  272. data/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +0 -38
  273. data/spec/spec/interop/test/unit/spec_spec.rb +0 -48
  274. data/spec/spec/interop/test/unit/test_unit_spec_helper.rb +0 -18
  275. data/spec/spec/interop/test/unit/testcase_spec.rb +0 -50
  276. data/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +0 -9
  277. data/spec/spec/matchers/be_close_spec.rb +0 -50
  278. data/spec/spec/matchers/be_instance_of_spec.rb +0 -36
  279. data/spec/spec/matchers/be_kind_of_spec.rb +0 -33
  280. data/spec/spec/matchers/be_spec.rb +0 -460
  281. data/spec/spec/matchers/change_spec.rb +0 -349
  282. data/spec/spec/matchers/compatibility_spec.rb +0 -28
  283. data/spec/spec/matchers/description_generation_spec.rb +0 -160
  284. data/spec/spec/matchers/dsl_spec.rb +0 -34
  285. data/spec/spec/matchers/eql_spec.rb +0 -33
  286. data/spec/spec/matchers/equal_spec.rb +0 -57
  287. data/spec/spec/matchers/exist_spec.rb +0 -65
  288. data/spec/spec/matchers/has_spec.rb +0 -190
  289. data/spec/spec/matchers/have_spec.rb +0 -381
  290. data/spec/spec/matchers/include_spec.rb +0 -88
  291. data/spec/spec/matchers/match_array_spec.rb +0 -115
  292. data/spec/spec/matchers/match_spec.rb +0 -57
  293. data/spec/spec/matchers/matcher_spec.rb +0 -289
  294. data/spec/spec/matchers/matchers_spec.rb +0 -2
  295. data/spec/spec/matchers/operator_matcher_spec.rb +0 -191
  296. data/spec/spec/matchers/pretty_spec.rb +0 -22
  297. data/spec/spec/matchers/raise_exception_spec.rb +0 -345
  298. data/spec/spec/matchers/respond_to_spec.rb +0 -116
  299. data/spec/spec/matchers/satisfy_spec.rb +0 -36
  300. data/spec/spec/matchers/simple_matcher_spec.rb +0 -100
  301. data/spec/spec/matchers/throw_symbol_spec.rb +0 -121
  302. data/spec/spec/mocks/and_yield_spec.rb +0 -117
  303. data/spec/spec/mocks/any_number_of_times_spec.rb +0 -36
  304. data/spec/spec/mocks/argument_expectation_spec.rb +0 -23
  305. data/spec/spec/mocks/argument_matchers_spec.rb +0 -19
  306. data/spec/spec/mocks/at_least_spec.rb +0 -97
  307. data/spec/spec/mocks/at_most_spec.rb +0 -93
  308. data/spec/spec/mocks/bug_report_10260_spec.rb +0 -8
  309. data/spec/spec/mocks/bug_report_10263_spec.rb +0 -27
  310. data/spec/spec/mocks/bug_report_1049_spec.rb +0 -30
  311. data/spec/spec/mocks/bug_report_11545_spec.rb +0 -32
  312. data/spec/spec/mocks/bug_report_15719_spec.rb +0 -30
  313. data/spec/spec/mocks/bug_report_496_spec.rb +0 -17
  314. data/spec/spec/mocks/bug_report_600_spec.rb +0 -22
  315. data/spec/spec/mocks/bug_report_7611_spec.rb +0 -19
  316. data/spec/spec/mocks/bug_report_7805_spec.rb +0 -22
  317. data/spec/spec/mocks/bug_report_8165_spec.rb +0 -31
  318. data/spec/spec/mocks/bug_report_8302_spec.rb +0 -26
  319. data/spec/spec/mocks/bug_report_830_spec.rb +0 -21
  320. data/spec/spec/mocks/bug_report_957_spec.rb +0 -22
  321. data/spec/spec/mocks/double_spec.rb +0 -12
  322. data/spec/spec/mocks/failing_argument_matchers_spec.rb +0 -95
  323. data/spec/spec/mocks/hash_including_matcher_spec.rb +0 -90
  324. data/spec/spec/mocks/hash_not_including_matcher_spec.rb +0 -67
  325. data/spec/spec/mocks/mock_ordering_spec.rb +0 -94
  326. data/spec/spec/mocks/mock_space_spec.rb +0 -54
  327. data/spec/spec/mocks/mock_spec.rb +0 -601
  328. data/spec/spec/mocks/multiple_return_value_spec.rb +0 -113
  329. data/spec/spec/mocks/nil_expectation_warning_spec.rb +0 -53
  330. data/spec/spec/mocks/null_object_mock_spec.rb +0 -54
  331. data/spec/spec/mocks/once_counts_spec.rb +0 -53
  332. data/spec/spec/mocks/options_hash_spec.rb +0 -35
  333. data/spec/spec/mocks/partial_mock_spec.rb +0 -164
  334. data/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +0 -66
  335. data/spec/spec/mocks/passing_argument_matchers_spec.rb +0 -145
  336. data/spec/spec/mocks/precise_counts_spec.rb +0 -52
  337. data/spec/spec/mocks/record_messages_spec.rb +0 -26
  338. data/spec/spec/mocks/stub_chain_spec.rb +0 -42
  339. data/spec/spec/mocks/stub_implementation_spec.rb +0 -31
  340. data/spec/spec/mocks/stub_spec.rb +0 -203
  341. data/spec/spec/mocks/stubbed_message_expectations_spec.rb +0 -26
  342. data/spec/spec/mocks/twice_counts_spec.rb +0 -67
  343. data/spec/spec/mocks/unstub_spec.rb +0 -127
  344. data/spec/spec/package/bin_spec_spec.rb +0 -16
  345. data/spec/spec/rake/spectask_spec.rb +0 -150
  346. data/spec/spec/runner/class_and_argument_parser_spec.rb +0 -23
  347. data/spec/spec/runner/command_line_spec.rb +0 -162
  348. data/spec/spec/runner/configuration_spec.rb +0 -320
  349. data/spec/spec/runner/drb_command_line_spec.rb +0 -146
  350. data/spec/spec/runner/empty_file.txt +0 -0
  351. data/spec/spec/runner/example_group_runner_spec.rb +0 -26
  352. data/spec/spec/runner/examples.txt +0 -2
  353. data/spec/spec/runner/failed.txt +0 -3
  354. data/spec/spec/runner/formatter/base_formatter_spec.rb +0 -30
  355. data/spec/spec/runner/formatter/base_text_formatter_spec.rb +0 -113
  356. data/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +0 -45
  357. data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +0 -33
  358. data/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +0 -377
  359. data/spec/spec/runner/formatter/html_formatted-1.8.6.html +0 -377
  360. data/spec/spec/runner/formatter/html_formatted-1.8.7.html +0 -377
  361. data/spec/spec/runner/formatter/html_formatted-1.9.1.html +0 -377
  362. data/spec/spec/runner/formatter/html_formatted-1.9.2.html +0 -377
  363. data/spec/spec/runner/formatter/html_formatter_spec.rb +0 -118
  364. data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +0 -329
  365. data/spec/spec/runner/formatter/profile_formatter_spec.rb +0 -70
  366. data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +0 -149
  367. data/spec/spec/runner/formatter/snippet_extractor_spec.rb +0 -18
  368. data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +0 -159
  369. data/spec/spec/runner/formatter/text_mate_formatted-1.8.6-jruby.html +0 -371
  370. data/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +0 -371
  371. data/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html +0 -371
  372. data/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html +0 -371
  373. data/spec/spec/runner/formatter/text_mate_formatted-1.9.2.html +0 -371
  374. data/spec/spec/runner/formatter/text_mate_formatter_spec.rb +0 -106
  375. data/spec/spec/runner/heckle_runner_spec.rb +0 -78
  376. data/spec/spec/runner/heckler_spec.rb +0 -20
  377. data/spec/spec/runner/line_number_query/line_number_query_fixture.rb +0 -70
  378. data/spec/spec/runner/line_number_query_spec.rb +0 -129
  379. data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +0 -51
  380. data/spec/spec/runner/option_parser_spec.rb +0 -551
  381. data/spec/spec/runner/options_spec.rb +0 -554
  382. data/spec/spec/runner/output_one_time_fixture.rb +0 -7
  383. data/spec/spec/runner/output_one_time_fixture_runner.rb +0 -7
  384. data/spec/spec/runner/output_one_time_spec.rb +0 -15
  385. data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +0 -123
  386. data/spec/spec/runner/reporter_spec.rb +0 -244
  387. data/spec/spec/runner/resources/a_bar.rb +0 -0
  388. data/spec/spec/runner/resources/a_foo.rb +0 -0
  389. data/spec/spec/runner/resources/a_spec.rb +0 -1
  390. data/spec/spec/runner/resources/custom_example_group_runner.rb +0 -14
  391. data/spec/spec/runner/resources/utf8_encoded.rb +0 -8
  392. data/spec/spec/runner/spec.opts +0 -2
  393. data/spec/spec/runner/spec_drb.opts +0 -2
  394. data/spec/spec/runner/spec_spaced.opts +0 -2
  395. data/spec/spec/runner_spec.rb +0 -13
  396. data/spec/spec_helper.rb +0 -113
  397. data/spec/support/macros.rb +0 -29
  398. data/spec/support/spec_classes.rb +0 -133
@@ -1,50 +0,0 @@
1
- require 'spec/runner/formatter/base_text_formatter'
2
-
3
- module Spec
4
- module Runner
5
- module Formatter
6
- class NestedTextFormatter < BaseTextFormatter
7
-
8
- INDENT = ' '
9
-
10
- def initialize(options, where)
11
- super
12
- @last_nested_descriptions = []
13
- end
14
-
15
- def example_group_started(example_group)
16
- super
17
-
18
- example_group.nested_descriptions.each_with_index do |nested_description, i|
19
- unless example_group.nested_descriptions[0..i] == @last_nested_descriptions[0..i]
20
- output.puts "#{INDENT*i}#{nested_description}"
21
- end
22
- end
23
-
24
- @last_nested_descriptions = example_group.nested_descriptions
25
- end
26
-
27
- def example_failed(example, counter, failure)
28
- output.puts(red("#{current_indentation}#{example.description} (FAILED - #{counter})"))
29
- output.flush
30
- end
31
-
32
- def example_passed(example)
33
- message = "#{current_indentation}#{example.description}"
34
- output.puts green(message)
35
- output.flush
36
- end
37
-
38
- def example_pending(example, message, deprecated_pending_location=nil)
39
- super
40
- output.puts yellow("#{current_indentation}#{example.description} (PENDING: #{message})")
41
- output.flush
42
- end
43
-
44
- def current_indentation
45
- INDENT*@last_nested_descriptions.length
46
- end
47
- end
48
- end
49
- end
50
- end
@@ -1,21 +0,0 @@
1
- module Spec
2
- module Runner
3
- module Formatter
4
- module NOOPMethodMissing
5
- def respond_to?(message, include_private = false)
6
- if include_private
7
- true
8
- else
9
- !private_methods.any? {|m| [message.to_s, message.to_sym].include?(m)}
10
- end
11
- end
12
-
13
- private
14
-
15
- def method_missing(sym, *args)
16
- # a no-op
17
- end
18
- end
19
- end
20
- end
21
- end
@@ -1,47 +0,0 @@
1
- require 'spec/runner/formatter/progress_bar_formatter'
2
-
3
- module Spec
4
- module Runner
5
- module Formatter
6
- class ProfileFormatter < ProgressBarFormatter
7
-
8
- def initialize(options, where)
9
- super
10
- @example_times = []
11
- end
12
-
13
- def start(count)
14
- @output.puts "Profiling enabled."
15
- end
16
-
17
- def example_started(example)
18
- @time = Time.now
19
- end
20
-
21
- def example_passed(example)
22
- super
23
- @example_times << [
24
- example_group.description,
25
- example.description,
26
- Time.now - @time
27
- ]
28
- end
29
-
30
- def start_dump
31
- super
32
- @output.puts "\n\nTop 10 slowest examples:\n"
33
-
34
- @example_times = @example_times.sort_by do |description, example, time|
35
- time
36
- end.reverse
37
-
38
- @example_times[0..9].each do |description, example, time|
39
- @output.print red(sprintf("%.7f", time))
40
- @output.puts " #{description} #{example}"
41
- end
42
- @output.flush
43
- end
44
- end
45
- end
46
- end
47
- end
@@ -1,33 +0,0 @@
1
- require 'spec/runner/formatter/base_text_formatter'
2
- require 'spec/runner/formatter/no_op_method_missing'
3
-
4
- module Spec
5
- module Runner
6
- module Formatter
7
- class ProgressBarFormatter < BaseTextFormatter
8
- include NOOPMethodMissing
9
-
10
- def example_failed(example, counter, failure)
11
- @output.print colorize_failure('F', failure)
12
- @output.flush
13
- end
14
-
15
- def example_passed(example)
16
- @output.print green('.')
17
- @output.flush
18
- end
19
-
20
- def example_pending(example, message, deprecated_pending_location=nil)
21
- super
22
- @output.print yellow('*')
23
- @output.flush
24
- end
25
-
26
- def start_dump
27
- @output.puts
28
- @output.flush
29
- end
30
- end
31
- end
32
- end
33
- end
@@ -1,10 +0,0 @@
1
- require 'spec/runner/formatter/base_formatter'
2
-
3
- module Spec
4
- module Runner
5
- module Formatter
6
- class SilentFormatter < BaseFormatter
7
- end
8
- end
9
- end
10
- end
@@ -1,52 +0,0 @@
1
- module Spec
2
- module Runner
3
- module Formatter
4
- # This class extracts code snippets by looking at the backtrace of the passed error
5
- class SnippetExtractor #:nodoc:
6
- class NullConverter; def convert(code, pre); code; end; end #:nodoc:
7
- begin; require 'syntax/convertors/html'; @@converter = Syntax::Convertors::HTML.for_syntax "ruby"; rescue LoadError => e; @@converter = NullConverter.new; end
8
-
9
- def snippet(error)
10
- raw_code, line = snippet_for(error.backtrace[0])
11
- highlighted = @@converter.convert(raw_code, false)
12
- highlighted << "\n<span class=\"comment\"># gem install syntax to get syntax highlighting</span>" if @@converter.is_a?(NullConverter)
13
- post_process(highlighted, line)
14
- end
15
-
16
- def snippet_for(error_line)
17
- if error_line =~ /(.*):(\d+)/
18
- file = $1
19
- line = $2.to_i
20
- [lines_around(file, line), line]
21
- else
22
- ["# Couldn't get snippet for #{error_line}", 1]
23
- end
24
- end
25
-
26
- def lines_around(file, line)
27
- if File.file?(file)
28
- lines = File.open(file).read.split("\n")
29
- min = [0, line-3].max
30
- max = [line+1, lines.length-1].min
31
- selected_lines = []
32
- selected_lines.join("\n")
33
- lines[min..max].join("\n")
34
- else
35
- "# Couldn't get snippet for #{file}"
36
- end
37
- end
38
-
39
- def post_process(highlighted, offending_line)
40
- new_lines = []
41
- highlighted.split("\n").each_with_index do |line, i|
42
- new_line = "<span class=\"linenum\">#{offending_line+i-2}</span>#{line}"
43
- new_line = "<span class=\"offending\">#{new_line}</span>" if i == 2
44
- new_lines << new_line
45
- end
46
- new_lines.join("\n")
47
- end
48
-
49
- end
50
- end
51
- end
52
- end
@@ -1,33 +0,0 @@
1
- require 'spec/runner/formatter/base_text_formatter'
2
-
3
- module Spec
4
- module Runner
5
- module Formatter
6
- class SpecdocFormatter < BaseTextFormatter
7
- def example_group_started(example_group)
8
- super
9
- output.puts
10
- output.puts example_group.description
11
- output.flush
12
- end
13
-
14
- def example_failed(example, counter, failure)
15
- output.puts(red("- #{example.description} (FAILED - #{counter})"))
16
- output.flush
17
- end
18
-
19
- def example_passed(example)
20
- message = "- #{example.description}"
21
- output.puts green(message)
22
- output.flush
23
- end
24
-
25
- def example_pending(example, message, deprecated_pending_location=nil)
26
- super
27
- output.puts yellow("- #{example.description} (PENDING: #{message})")
28
- output.flush
29
- end
30
- end
31
- end
32
- end
33
- end
@@ -1,16 +0,0 @@
1
- require 'spec/runner/formatter/html_formatter'
2
-
3
- module Spec
4
- module Runner
5
- module Formatter
6
- # Formats backtraces so they're clickable by TextMate
7
- class TextMateFormatter < HtmlFormatter
8
- def backtrace_line(line)
9
- line.gsub(/([^:]*\.rb):(\d*)/) do
10
- "<a href=\"txmt://open?url=file://#{File.expand_path($1)}&line=#{$2}\">#{$1}:#{$2}</a> "
11
- end
12
- end
13
- end
14
- end
15
- end
16
- end
@@ -1,77 +0,0 @@
1
- if Spec::Ruby.version.to_f < 1.9
2
- begin
3
- require 'rubygems' unless ENV['NO_RUBYGEMS']
4
- require 'heckle'
5
- rescue LoadError ; raise "You must gem install heckle to use --heckle" ; end
6
-
7
- module Spec
8
- module Runner
9
- # Creates a new Heckler configured to heckle all methods in the classes
10
- # whose name matches +filter+
11
- class HeckleRunner
12
- def initialize(filter, heckle_class=Heckler)
13
- @filter = filter
14
- @heckle_class = heckle_class
15
- end
16
-
17
- # Runs all the example groups held by +rspec_options+ once for each of the
18
- # methods in the matched classes.
19
- def heckle_with
20
- case @filter
21
- when /(.*)#(.*)/ then heckle_method($1, $2)
22
- when /(.*)\.(.*)/ then heckle_class_method($1, $2)
23
- else
24
- heckle_class_or_module(@filter)
25
- end
26
- end
27
-
28
- def heckle_class_method(class_name, method_name)
29
- heckle_method(class_name, "self.#{method_name}")
30
- end
31
-
32
- def heckle_method(class_name, method_name)
33
- verify_constant(class_name)
34
- heckle = @heckle_class.new(class_name, method_name, Spec::Runner.options)
35
- heckle.validate
36
- end
37
-
38
- def heckle_class_or_module(class_or_module_name)
39
- verify_constant(class_or_module_name)
40
- pattern = /^#{class_or_module_name}/
41
- classes = []
42
- ObjectSpace.each_object(Class) do |klass|
43
- classes << klass if klass.name =~ pattern
44
- end
45
-
46
- classes.each do |klass|
47
- klass.instance_methods(false).each do |method_name|
48
- heckle = @heckle_class.new(klass.name, method_name, Spec::Runner.options)
49
- heckle.validate
50
- end
51
- end
52
- end
53
-
54
- def verify_constant(name)
55
- begin
56
- # This is defined in Heckle
57
- name.to_class
58
- rescue
59
- raise "Heckling failed - \"#{name}\" is not a known class or module"
60
- end
61
- end
62
- end
63
-
64
- class Heckler < Heckle
65
- def initialize(klass_name, method_name, rspec_options)
66
- super(klass_name, method_name)
67
- @rspec_options = rspec_options
68
- end
69
-
70
- def tests_pass?
71
- @rspec_options.run_examples
72
- end
73
-
74
- end
75
- end
76
- end
77
- end
@@ -1,10 +0,0 @@
1
- module Spec
2
- module Runner
3
- # Dummy implementation for Windows that just fails (Heckle is not supported on Windows)
4
- class HeckleRunner
5
- def initialize(filter)
6
- raise "Heckle is not supported on Windows or Ruby 1.9"
7
- end
8
- end
9
- end
10
- end
@@ -1,78 +0,0 @@
1
- module Spec
2
- module Runner
3
- # Parses a spec file and finds the nearest example for a given line number.
4
- class LineNumberQuery
5
- attr_reader :best_match
6
-
7
- def initialize(run_options)
8
- @best_match = {}
9
- @run_options = run_options
10
- end
11
-
12
- def spec_name_for(file, line_number)
13
- best_match.clear
14
- file = File.expand_path(file)
15
- determine_best_match(file, line_number)
16
- if best_match[:example_group]
17
- if best_match[:example]
18
- "#{best_match[:example_group].description} #{best_match[:example].description}"
19
- else
20
- best_match[:example_group].description
21
- end
22
- else
23
- nil
24
- end
25
- end
26
-
27
- def example_line_for(file, line_number)
28
- determine_best_match(file, line_number)
29
- best_match[:line]
30
- end
31
-
32
- protected
33
-
34
- def determine_best_match(file, line_number)
35
- best_match.clear
36
- file = File.expand_path(file)
37
- @run_options.example_groups.each do |example_group|
38
- next unless example_group.location
39
- consider_example_group_for_best_match(example_group, file, line_number)
40
-
41
- example_group.examples.each do |example|
42
- consider_example_for_best_match(example, example_group, file, line_number)
43
- end
44
- end
45
- end
46
-
47
- def consider_example_group_for_best_match(example_group, file, line_number)
48
- example_group_file, example_group_line = parse_location(example_group.location)
49
- if is_best_match?(file, line_number, example_group_file, example_group_line)
50
- best_match.clear
51
- best_match[:example_group] = example_group
52
- best_match[:line] = example_group_line
53
- end
54
- end
55
-
56
- def consider_example_for_best_match(example, example_group, file, line_number)
57
- example_file, example_line = parse_location(example.location)
58
- if is_best_match?(file, line_number, example_file, example_line)
59
- best_match.clear
60
- best_match[:example_group] = example_group
61
- best_match[:example] = example
62
- best_match[:line] = example_line
63
- end
64
- end
65
-
66
- def is_best_match?(file, line_number, example_file, example_line)
67
- file == File.expand_path(example_file) &&
68
- example_line <= line_number &&
69
- example_line > best_match[:line].to_i
70
- end
71
-
72
- def parse_location(location)
73
- location =~ /(.*)\:(\d*)(\:|$)/
74
- return $1, Integer($2)
75
- end
76
- end
77
- end
78
- end
@@ -1,225 +0,0 @@
1
- require 'optparse'
2
- require 'stringio'
3
-
4
- module Spec
5
- module Runner
6
- class OptionParser < ::OptionParser
7
- class << self
8
- def parse(args, err, out)
9
- parser = new(err, out)
10
- parser.parse(args)
11
- parser.options
12
- end
13
-
14
- def spec_command?
15
- $0.split('/').last == 'spec'
16
- end
17
- end
18
-
19
- attr_reader :options
20
-
21
- OPTIONS = {
22
- :pattern => ["-p", "--pattern [PATTERN]","Limit files loaded to those matching this pattern. Defaults to '**/*_spec.rb'",
23
- "Separate multiple patterns with commas.",
24
- "Applies only to directories named on the command line (files",
25
- "named explicitly on the command line will be loaded regardless)."],
26
- :diff => ["-D", "--diff [FORMAT]","Show diff of objects that are expected to be equal when they are not",
27
- "Builtin formats: unified|u|context|c",
28
- "You can also specify a custom differ class",
29
- "(in which case you should also specify --require)"],
30
- :colour => ["-c", "--colour", "--color", "Show coloured (red/green) output"],
31
- :example => ["-e", "--example [NAME|FILE_NAME]", "Execute example(s) with matching name(s). If the argument is",
32
- "the path to an existing file (typically generated by a previous",
33
- "run using --format failing_examples:file.txt), then the examples",
34
- "on each line of that file will be executed. If the file is empty,",
35
- "all examples will be run (as if --example was not specified).",
36
- " ",
37
- "If the argument is not an existing file, then it is treated as",
38
- "an example name directly, causing RSpec to run just the example",
39
- "matching that name"],
40
- :specification => ["-s", "--specification [NAME]", "DEPRECATED - use -e instead", "(This will be removed when autotest works with -e)"],
41
- :line => ["-l", "--line LINE_NUMBER", Integer, "Execute example group or example at given line.",
42
- "(does not work for dynamically generated examples)"],
43
- :format => ["-f", "--format FORMAT[:WHERE]","Specifies what format to use for output. Specify WHERE to tell",
44
- "the formatter where to write the output. All built-in formats",
45
- "expect WHERE to be a file name, and will write to $stdout if it's",
46
- "not specified. The --format option may be specified several times",
47
- "if you want several outputs",
48
- " ",
49
- "Builtin formats:",
50
- "silent|l : No output", "progress|p : Text-based progress bar",
51
- "profile|o : Text-based progress bar with profiling of 10 slowest examples",
52
- "specdoc|s : Code example doc strings",
53
- "nested|n : Code example doc strings with nested groups indented",
54
- "html|h : A nice HTML report",
55
- "failing_examples|e : Write all failing examples - input for --example",
56
- "failing_example_groups|g : Write all failing example groups - input for --example",
57
- " ",
58
- "FORMAT can also be the name of a custom formatter class",
59
- "(in which case you should also specify --require to load it)"],
60
- :require => ["-r", "--require FILE", "Require FILE before running specs",
61
- "Useful for loading custom formatters or other extensions.",
62
- "If this option is used it must come before the others"],
63
- :backtrace => ["-b", "--backtrace", "Output full backtrace"],
64
- :loadby => ["-L", "--loadby STRATEGY", "Specify the strategy by which spec files should be loaded.",
65
- "STRATEGY can currently only be 'mtime' (File modification time)",
66
- "By default, spec files are loaded in alphabetical order if --loadby",
67
- "is not specified."],
68
- :reverse => ["-R", "--reverse", "Run examples in reverse order"],
69
- :timeout => ["-t", "--timeout FLOAT", "Interrupt and fail each example that doesn't complete in the",
70
- "specified time"],
71
- :heckle => ["-H", "--heckle CODE", "If all examples pass, this will mutate the classes and methods",
72
- "identified by CODE little by little and run all the examples again",
73
- "for each mutation. The intent is that for each mutation, at least",
74
- "one example *should* fail, and RSpec will tell you if this is not the",
75
- "case. CODE should be either Some::Module, Some::Class or",
76
- "Some::Fabulous#method}"],
77
- :dry_run => ["-d", "--dry-run", "Invokes formatters without executing the examples."],
78
- :options_file => ["-O", "--options PATH", "Read options from a file"],
79
- :generate_options => ["-G", "--generate-options PATH", "Generate an options file for --options"],
80
- :runner => ["-U", "--runner RUNNER", "Use a custom Runner."],
81
- :debug => ["-u", "--debugger", "Enable ruby-debugging."],
82
- :drb => ["-X", "--drb", "Run examples via DRb. (For example against script/spec_server)"],
83
- :drb_port => ["--port PORT", "Port for DRb server. (Ignored without --drb)"],
84
- :version => ["-v", "--version", "Show version"],
85
- :help => ["-h", "--help", "You're looking at it"]
86
- }
87
-
88
- def initialize(err, out)
89
- super()
90
- @error_stream = err
91
- @out_stream = out
92
- @options = Options.new(@error_stream, @out_stream)
93
-
94
- @file_factory = File
95
-
96
- self.banner = "Usage: spec (FILE(:LINE)?|DIRECTORY|GLOB)+ [options]"
97
- self.separator ""
98
- on(*OPTIONS[:pattern]) {|pattern| @options.filename_pattern = pattern}
99
- on(*OPTIONS[:diff]) {|diff| @options.parse_diff(diff)}
100
- on(*OPTIONS[:colour]) {@options.colour = true}
101
- on(*OPTIONS[:example]) {|example| @options.parse_example(example)}
102
- on(*OPTIONS[:specification]) {|example| @options.parse_example(example)}
103
- on(*OPTIONS[:line]) {|line_number| @options.line_number = line_number.to_i}
104
- on(*OPTIONS[:format]) {|format| @options.parse_format(format)}
105
- on(*OPTIONS[:require]) {|requires| invoke_requires(requires)}
106
- on(*OPTIONS[:backtrace]) {@options.backtrace_tweaker = NoisyBacktraceTweaker.new}
107
- on(*OPTIONS[:loadby]) {|loadby| @options.loadby = loadby}
108
- on(*OPTIONS[:reverse]) {@options.reverse = true}
109
- on(*OPTIONS[:timeout]) {|timeout| @options.timeout = timeout.to_f}
110
- on(*OPTIONS[:heckle]) {|heckle| @options.load_heckle_runner(heckle)}
111
- on(*OPTIONS[:dry_run]) {@options.dry_run = true}
112
- on(*OPTIONS[:options_file]) {|options_file|}
113
- on(*OPTIONS[:generate_options]) {|options_file|}
114
- on(*OPTIONS[:runner]) {|runner| @options.user_input_for_runner = runner}
115
- on(*OPTIONS[:debug]) {@options.debug = true}
116
- on(*OPTIONS[:drb]) {}
117
- on(*OPTIONS[:drb_port]) {|port| @options.drb_port = port}
118
- on(*OPTIONS[:version]) {parse_version}
119
- on("--autospec") {@options.autospec = true}
120
- on_tail(*OPTIONS[:help]) {parse_help}
121
- end
122
-
123
- def order!(argv, &blk)
124
- @argv = argv.dup
125
- @argv = (@argv.empty? & self.class.spec_command?) ? ['--help'] : @argv
126
-
127
- # Parse options file first
128
- parse_file_options(:options_file, :parse_options_file)
129
-
130
- @options.argv = @argv.dup
131
- return if parse_file_options(:generate_options, :write_options_file)
132
- return if parse_drb
133
-
134
- super(@argv) do |file|
135
- if file =~ /^(.+):(\d+)$/
136
- file = $1
137
- @options.line_number = $2.to_i
138
- end
139
-
140
- @options.files << file
141
- blk.call(file) if blk
142
- end
143
-
144
- @options
145
- end
146
-
147
- protected
148
-
149
- def invoke_requires(requires)
150
- requires.split(",").each do |file|
151
- require file
152
- end
153
- end
154
-
155
- def parse_file_options(option_name, action)
156
- # Remove the file option and the argument before handling the file
157
- options_file = nil
158
- options_list = OPTIONS[option_name][0..1]
159
- options_list[1].gsub!(" PATH", "")
160
- options_list.each do |option|
161
- if index = @argv.index(option)
162
- @argv.delete_at(index)
163
- options_file = @argv.delete_at(index)
164
- end
165
- end
166
-
167
- if options_file.nil? &&
168
- File.exist?('spec/spec.opts') &&
169
- !@argv.any?{|a| a =~ /^\-/ }
170
- options_file = 'spec/spec.opts'
171
- end
172
-
173
- if options_file
174
- send(action, options_file)
175
- return true
176
- else
177
- return false
178
- end
179
- end
180
-
181
- def parse_options_file(options_file)
182
- option_file_args = File.readlines(options_file).map {|l| l.chomp.split " "}.flatten
183
- @argv.push(*option_file_args)
184
- end
185
-
186
- def write_options_file(options_file)
187
- File.open(options_file, 'w') do |io|
188
- io.puts @argv.join("\n")
189
- end
190
- @out_stream.puts "\nOptions written to #{options_file}. You can now use these options with:"
191
- @out_stream.puts "spec --options #{options_file}"
192
- @options.examples_should_not_be_run
193
- end
194
-
195
- def parse_drb
196
- argv = @options.argv
197
- is_drb = false
198
- is_drb ||= argv.delete(OPTIONS[:drb][0])
199
- is_drb ||= argv.delete(OPTIONS[:drb][1])
200
- return false unless is_drb
201
- if DrbCommandLine.run(self.class.parse(argv, @error_stream, @out_stream))
202
- @options.examples_should_not_be_run
203
- true
204
- else
205
- @error_stream.puts "Running specs locally:"
206
- false
207
- end
208
- end
209
-
210
- def parse_version
211
- @out_stream.puts ::Spec::VERSION::SUMMARY
212
- exit if stdout?
213
- end
214
-
215
- def parse_help
216
- @out_stream.puts self
217
- exit if stdout?
218
- end
219
-
220
- def stdout?
221
- @out_stream == $stdout
222
- end
223
- end
224
- end
225
- end