media-path 0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (448) hide show
  1. data/CHANGELOG +3 -0
  2. data/LICENSE +20 -0
  3. data/README.textile +40 -0
  4. data/Rakefile +79 -0
  5. data/TODO.txt +6 -0
  6. data/deps.rip +5 -0
  7. data/lib/media-path.rb +269 -0
  8. data/media-path.gemspec +38 -0
  9. data/script/spec +14 -0
  10. data/spec/media-path_spec.rb +158 -0
  11. data/spec/spec.opts +5 -0
  12. data/spec/stubs/blog/public/js/moo.js +0 -0
  13. data/url.rb +20 -0
  14. data/url_spec.rb +35 -0
  15. data/vendor/rspec/History.rdoc +1512 -0
  16. data/vendor/rspec/License.txt +22 -0
  17. data/vendor/rspec/Manifest.txt +383 -0
  18. data/vendor/rspec/README.rdoc +55 -0
  19. data/vendor/rspec/Rakefile +145 -0
  20. data/vendor/rspec/Ruby1.9.rdoc +31 -0
  21. data/vendor/rspec/TODO.txt +17 -0
  22. data/vendor/rspec/Upgrade.rdoc +199 -0
  23. data/vendor/rspec/bin/autospec +4 -0
  24. data/vendor/rspec/bin/spec +5 -0
  25. data/vendor/rspec/cucumber.yml +5 -0
  26. data/vendor/rspec/examples/failing/README.txt +11 -0
  27. data/vendor/rspec/examples/failing/diffing_spec.rb +36 -0
  28. data/vendor/rspec/examples/failing/failing_implicit_docstrings_example.rb +17 -0
  29. data/vendor/rspec/examples/failing/failure_in_after.rb +10 -0
  30. data/vendor/rspec/examples/failing/failure_in_before.rb +10 -0
  31. data/vendor/rspec/examples/failing/mocking_example.rb +38 -0
  32. data/vendor/rspec/examples/failing/mocking_with_flexmock.rb +26 -0
  33. data/vendor/rspec/examples/failing/mocking_with_mocha.rb +25 -0
  34. data/vendor/rspec/examples/failing/mocking_with_rr.rb +27 -0
  35. data/vendor/rspec/examples/failing/partial_mock_example.rb +18 -0
  36. data/vendor/rspec/examples/failing/pending_example.rb +7 -0
  37. data/vendor/rspec/examples/failing/predicate_example.rb +32 -0
  38. data/vendor/rspec/examples/failing/raising_example.rb +47 -0
  39. data/vendor/rspec/examples/failing/syntax_error_example.rb +7 -0
  40. data/vendor/rspec/examples/failing/team_spec.rb +41 -0
  41. data/vendor/rspec/examples/failing/timeout_behaviour.rb +5 -0
  42. data/vendor/rspec/examples/passing/custom_formatter.rb +11 -0
  43. data/vendor/rspec/examples/passing/custom_matchers.rb +54 -0
  44. data/vendor/rspec/examples/passing/dynamic_spec.rb +7 -0
  45. data/vendor/rspec/examples/passing/file_accessor.rb +18 -0
  46. data/vendor/rspec/examples/passing/file_accessor_spec.rb +37 -0
  47. data/vendor/rspec/examples/passing/filtered_formatter.rb +17 -0
  48. data/vendor/rspec/examples/passing/filtered_formatter_example.rb +31 -0
  49. data/vendor/rspec/examples/passing/greeter_spec.rb +30 -0
  50. data/vendor/rspec/examples/passing/helper_method_example.rb +12 -0
  51. data/vendor/rspec/examples/passing/implicit_docstrings_example.rb +16 -0
  52. data/vendor/rspec/examples/passing/io_processor.rb +8 -0
  53. data/vendor/rspec/examples/passing/io_processor_spec.rb +20 -0
  54. data/vendor/rspec/examples/passing/mocking_example.rb +25 -0
  55. data/vendor/rspec/examples/passing/multi_threaded_example_group_runner.rb +26 -0
  56. data/vendor/rspec/examples/passing/nested_classes_example.rb +35 -0
  57. data/vendor/rspec/examples/passing/options_example.rb +29 -0
  58. data/vendor/rspec/examples/passing/options_formatter.rb +20 -0
  59. data/vendor/rspec/examples/passing/partial_mock_example.rb +27 -0
  60. data/vendor/rspec/examples/passing/pending_example.rb +18 -0
  61. data/vendor/rspec/examples/passing/predicate_example.rb +25 -0
  62. data/vendor/rspec/examples/passing/shared_example_group_example.rb +79 -0
  63. data/vendor/rspec/examples/passing/shared_stack_examples.rb +36 -0
  64. data/vendor/rspec/examples/passing/simple_matcher_example.rb +29 -0
  65. data/vendor/rspec/examples/passing/stack.rb +36 -0
  66. data/vendor/rspec/examples/passing/stack_spec.rb +63 -0
  67. data/vendor/rspec/examples/passing/stack_spec_with_nested_example_groups.rb +66 -0
  68. data/vendor/rspec/examples/passing/stubbing_example.rb +67 -0
  69. data/vendor/rspec/examples/passing/yielding_example.rb +31 -0
  70. data/vendor/rspec/examples/ruby1.9.compatibility/access_to_constants_spec.rb +85 -0
  71. data/vendor/rspec/features-pending/cli/conditional_exclusion.feature +39 -0
  72. data/vendor/rspec/features-pending/heckle/heckle.feature +56 -0
  73. data/vendor/rspec/features/before_and_after_blocks/before_and_after_blocks.feature +167 -0
  74. data/vendor/rspec/features/command_line/line_number_option.feature +56 -0
  75. data/vendor/rspec/features/command_line/line_number_option_with_example_with_no_name.feature +22 -0
  76. data/vendor/rspec/features/example_groups/define_example_attribute.feature +41 -0
  77. data/vendor/rspec/features/example_groups/example_group_with_should_methods.feature +29 -0
  78. data/vendor/rspec/features/example_groups/implicit_docstrings.feature +59 -0
  79. data/vendor/rspec/features/example_groups/nested_groups.feature +32 -0
  80. data/vendor/rspec/features/expectations/customized_message.feature +54 -0
  81. data/vendor/rspec/features/expectations/expect_change.feature +65 -0
  82. data/vendor/rspec/features/expectations/expect_error.feature +44 -0
  83. data/vendor/rspec/features/extensions/custom_example_group.feature +19 -0
  84. data/vendor/rspec/features/formatters/custom_formatter.feature +30 -0
  85. data/vendor/rspec/features/interop/examples_and_tests_together.feature +84 -0
  86. data/vendor/rspec/features/interop/rspec_output.feature +25 -0
  87. data/vendor/rspec/features/interop/test_but_not_test_unit.feature +26 -0
  88. data/vendor/rspec/features/interop/test_case_with_should_methods.feature +46 -0
  89. data/vendor/rspec/features/load_paths/add_lib_to_load_path.feature +20 -0
  90. data/vendor/rspec/features/load_paths/add_spec_to_load_path.feature +20 -0
  91. data/vendor/rspec/features/matchers/define_diffable_matcher.feature +26 -0
  92. data/vendor/rspec/features/matchers/define_matcher.feature +179 -0
  93. data/vendor/rspec/features/matchers/define_matcher_outside_rspec.feature +38 -0
  94. data/vendor/rspec/features/matchers/define_matcher_with_fluent_interface.feature +27 -0
  95. data/vendor/rspec/features/matchers/define_wrapped_matcher.feature +29 -0
  96. data/vendor/rspec/features/matchers/match_unless_raises.feature +60 -0
  97. data/vendor/rspec/features/matchers/match_unless_raises_unexpected_error.feature +39 -0
  98. data/vendor/rspec/features/mock_framework_integration/use_flexmock.feature +27 -0
  99. data/vendor/rspec/features/mock_framework_integration/use_mocha.feature +27 -0
  100. data/vendor/rspec/features/mock_framework_integration/use_rr.feature +27 -0
  101. data/vendor/rspec/features/mocks/block_local_expectations.feature +62 -0
  102. data/vendor/rspec/features/mocks/mix_stubs_and_mocks.feature +22 -0
  103. data/vendor/rspec/features/mocks/stub_implementation.feature +26 -0
  104. data/vendor/rspec/features/pending/pending_examples.feature +81 -0
  105. data/vendor/rspec/features/runner/specify_line_number.feature +32 -0
  106. data/vendor/rspec/features/spec_helper/spec_helper.feature +25 -0
  107. data/vendor/rspec/features/step_definitions/running_rspec_steps.rb +43 -0
  108. data/vendor/rspec/features/subject/explicit_subject.feature +31 -0
  109. data/vendor/rspec/features/subject/implicit_subject.feature +43 -0
  110. data/vendor/rspec/features/support/env.rb +82 -0
  111. data/vendor/rspec/features/support/matchers/smart_match.rb +12 -0
  112. data/vendor/rspec/geminstaller.yml +28 -0
  113. data/vendor/rspec/init.rb +9 -0
  114. data/vendor/rspec/lib/autotest/discover.rb +3 -0
  115. data/vendor/rspec/lib/autotest/rspec.rb +54 -0
  116. data/vendor/rspec/lib/spec.rb +8 -0
  117. data/vendor/rspec/lib/spec/adapters/mock_frameworks/flexmock.rb +24 -0
  118. data/vendor/rspec/lib/spec/adapters/mock_frameworks/mocha.rb +25 -0
  119. data/vendor/rspec/lib/spec/adapters/mock_frameworks/rr.rb +22 -0
  120. data/vendor/rspec/lib/spec/adapters/mock_frameworks/rspec.rb +21 -0
  121. data/vendor/rspec/lib/spec/autorun.rb +3 -0
  122. data/vendor/rspec/lib/spec/deprecation.rb +40 -0
  123. data/vendor/rspec/lib/spec/dsl.rb +1 -0
  124. data/vendor/rspec/lib/spec/dsl/main.rb +92 -0
  125. data/vendor/rspec/lib/spec/example.rb +164 -0
  126. data/vendor/rspec/lib/spec/example/args_and_options.rb +27 -0
  127. data/vendor/rspec/lib/spec/example/before_and_after_hooks.rb +93 -0
  128. data/vendor/rspec/lib/spec/example/errors.rb +25 -0
  129. data/vendor/rspec/lib/spec/example/example_group.rb +10 -0
  130. data/vendor/rspec/lib/spec/example/example_group_factory.rb +82 -0
  131. data/vendor/rspec/lib/spec/example/example_group_hierarchy.rb +53 -0
  132. data/vendor/rspec/lib/spec/example/example_group_methods.rb +282 -0
  133. data/vendor/rspec/lib/spec/example/example_group_proxy.rb +61 -0
  134. data/vendor/rspec/lib/spec/example/example_matcher.rb +43 -0
  135. data/vendor/rspec/lib/spec/example/example_methods.rb +152 -0
  136. data/vendor/rspec/lib/spec/example/example_proxy.rb +41 -0
  137. data/vendor/rspec/lib/spec/example/module_reopening_fix.rb +43 -0
  138. data/vendor/rspec/lib/spec/example/pending.rb +18 -0
  139. data/vendor/rspec/lib/spec/example/predicate_matchers.rb +46 -0
  140. data/vendor/rspec/lib/spec/example/shared_example_group.rb +59 -0
  141. data/vendor/rspec/lib/spec/example/subject.rb +108 -0
  142. data/vendor/rspec/lib/spec/expectations.rb +35 -0
  143. data/vendor/rspec/lib/spec/expectations/errors.rb +12 -0
  144. data/vendor/rspec/lib/spec/expectations/extensions.rb +1 -0
  145. data/vendor/rspec/lib/spec/expectations/extensions/kernel.rb +52 -0
  146. data/vendor/rspec/lib/spec/expectations/fail_with.rb +45 -0
  147. data/vendor/rspec/lib/spec/expectations/handler.rb +50 -0
  148. data/vendor/rspec/lib/spec/extensions/instance_exec.rb +31 -0
  149. data/vendor/rspec/lib/spec/interop/test.rb +44 -0
  150. data/vendor/rspec/lib/spec/interop/test/unit/autorunner.rb +6 -0
  151. data/vendor/rspec/lib/spec/interop/test/unit/testcase.rb +56 -0
  152. data/vendor/rspec/lib/spec/interop/test/unit/testresult.rb +6 -0
  153. data/vendor/rspec/lib/spec/interop/test/unit/testsuite_adapter.rb +34 -0
  154. data/vendor/rspec/lib/spec/interop/test/unit/ui/console/testrunner.rb +61 -0
  155. data/vendor/rspec/lib/spec/matchers.rb +195 -0
  156. data/vendor/rspec/lib/spec/matchers/be.rb +211 -0
  157. data/vendor/rspec/lib/spec/matchers/be_close.rb +32 -0
  158. data/vendor/rspec/lib/spec/matchers/be_instance_of.rb +26 -0
  159. data/vendor/rspec/lib/spec/matchers/be_kind_of.rb +26 -0
  160. data/vendor/rspec/lib/spec/matchers/change.rb +151 -0
  161. data/vendor/rspec/lib/spec/matchers/compatibility.rb +14 -0
  162. data/vendor/rspec/lib/spec/matchers/dsl.rb +20 -0
  163. data/vendor/rspec/lib/spec/matchers/eql.rb +42 -0
  164. data/vendor/rspec/lib/spec/matchers/equal.rb +53 -0
  165. data/vendor/rspec/lib/spec/matchers/errors.rb +5 -0
  166. data/vendor/rspec/lib/spec/matchers/exist.rb +16 -0
  167. data/vendor/rspec/lib/spec/matchers/generated_descriptions.rb +36 -0
  168. data/vendor/rspec/lib/spec/matchers/has.rb +35 -0
  169. data/vendor/rspec/lib/spec/matchers/have.rb +152 -0
  170. data/vendor/rspec/lib/spec/matchers/include.rb +44 -0
  171. data/vendor/rspec/lib/spec/matchers/match.rb +21 -0
  172. data/vendor/rspec/lib/spec/matchers/match_array.rb +71 -0
  173. data/vendor/rspec/lib/spec/matchers/matcher.rb +102 -0
  174. data/vendor/rspec/lib/spec/matchers/method_missing.rb +9 -0
  175. data/vendor/rspec/lib/spec/matchers/operator_matcher.rb +78 -0
  176. data/vendor/rspec/lib/spec/matchers/pretty.rb +37 -0
  177. data/vendor/rspec/lib/spec/matchers/raise_error.rb +129 -0
  178. data/vendor/rspec/lib/spec/matchers/respond_to.rb +71 -0
  179. data/vendor/rspec/lib/spec/matchers/satisfy.rb +47 -0
  180. data/vendor/rspec/lib/spec/matchers/simple_matcher.rb +133 -0
  181. data/vendor/rspec/lib/spec/matchers/throw_symbol.rb +104 -0
  182. data/vendor/rspec/lib/spec/matchers/wrap_expectation.rb +55 -0
  183. data/vendor/rspec/lib/spec/mocks.rb +200 -0
  184. data/vendor/rspec/lib/spec/mocks/argument_expectation.rb +51 -0
  185. data/vendor/rspec/lib/spec/mocks/argument_matchers.rb +237 -0
  186. data/vendor/rspec/lib/spec/mocks/error_generator.rb +92 -0
  187. data/vendor/rspec/lib/spec/mocks/errors.rb +10 -0
  188. data/vendor/rspec/lib/spec/mocks/example_methods.rb +69 -0
  189. data/vendor/rspec/lib/spec/mocks/extensions.rb +1 -0
  190. data/vendor/rspec/lib/spec/mocks/extensions/object.rb +3 -0
  191. data/vendor/rspec/lib/spec/mocks/framework.rb +15 -0
  192. data/vendor/rspec/lib/spec/mocks/message_expectation.rb +343 -0
  193. data/vendor/rspec/lib/spec/mocks/methods.rb +89 -0
  194. data/vendor/rspec/lib/spec/mocks/mock.rb +71 -0
  195. data/vendor/rspec/lib/spec/mocks/order_group.rb +29 -0
  196. data/vendor/rspec/lib/spec/mocks/proxy.rb +245 -0
  197. data/vendor/rspec/lib/spec/mocks/space.rb +28 -0
  198. data/vendor/rspec/lib/spec/rake/spectask.rb +230 -0
  199. data/vendor/rspec/lib/spec/rake/verify_rcov.rb +52 -0
  200. data/vendor/rspec/lib/spec/ruby.rb +9 -0
  201. data/vendor/rspec/lib/spec/runner.rb +66 -0
  202. data/vendor/rspec/lib/spec/runner/backtrace_tweaker.rb +77 -0
  203. data/vendor/rspec/lib/spec/runner/class_and_arguments_parser.rb +14 -0
  204. data/vendor/rspec/lib/spec/runner/command_line.rb +15 -0
  205. data/vendor/rspec/lib/spec/runner/configuration.rb +194 -0
  206. data/vendor/rspec/lib/spec/runner/differs/default.rb +93 -0
  207. data/vendor/rspec/lib/spec/runner/differs/load-diff-lcs.rb +12 -0
  208. data/vendor/rspec/lib/spec/runner/drb_command_line.rb +32 -0
  209. data/vendor/rspec/lib/spec/runner/example_group_runner.rb +58 -0
  210. data/vendor/rspec/lib/spec/runner/extensions/kernel.rb +9 -0
  211. data/vendor/rspec/lib/spec/runner/formatter/base_formatter.rb +139 -0
  212. data/vendor/rspec/lib/spec/runner/formatter/base_text_formatter.rb +142 -0
  213. data/vendor/rspec/lib/spec/runner/formatter/failing_example_groups_formatter.rb +25 -0
  214. data/vendor/rspec/lib/spec/runner/formatter/failing_examples_formatter.rb +20 -0
  215. data/vendor/rspec/lib/spec/runner/formatter/html_formatter.rb +338 -0
  216. data/vendor/rspec/lib/spec/runner/formatter/nested_text_formatter.rb +47 -0
  217. data/vendor/rspec/lib/spec/runner/formatter/no_op_method_missing.rb +21 -0
  218. data/vendor/rspec/lib/spec/runner/formatter/profile_formatter.rb +47 -0
  219. data/vendor/rspec/lib/spec/runner/formatter/progress_bar_formatter.rb +33 -0
  220. data/vendor/rspec/lib/spec/runner/formatter/silent_formatter.rb +10 -0
  221. data/vendor/rspec/lib/spec/runner/formatter/snippet_extractor.rb +52 -0
  222. data/vendor/rspec/lib/spec/runner/formatter/specdoc_formatter.rb +33 -0
  223. data/vendor/rspec/lib/spec/runner/formatter/text_mate_formatter.rb +16 -0
  224. data/vendor/rspec/lib/spec/runner/heckle_runner.rb +72 -0
  225. data/vendor/rspec/lib/spec/runner/heckle_runner_unsupported.rb +10 -0
  226. data/vendor/rspec/lib/spec/runner/line_number_query.rb +78 -0
  227. data/vendor/rspec/lib/spec/runner/option_parser.rb +225 -0
  228. data/vendor/rspec/lib/spec/runner/options.rb +405 -0
  229. data/vendor/rspec/lib/spec/runner/reporter.rb +171 -0
  230. data/vendor/rspec/lib/spec/stubs/cucumber.rb +5 -0
  231. data/vendor/rspec/lib/spec/test/unit.rb +10 -0
  232. data/vendor/rspec/lib/spec/version.rb +14 -0
  233. data/vendor/rspec/resources/helpers/cmdline.rb +8 -0
  234. data/vendor/rspec/resources/rake/examples.rake +7 -0
  235. data/vendor/rspec/resources/rake/examples_with_rcov.rake +9 -0
  236. data/vendor/rspec/resources/rake/failing_examples_with_html.rake +9 -0
  237. data/vendor/rspec/resources/rake/verify_rcov.rake +7 -0
  238. data/vendor/rspec/spec/README.jruby +15 -0
  239. data/vendor/rspec/spec/autotest/autotest_helper.rb +8 -0
  240. data/vendor/rspec/spec/autotest/autotest_matchers.rb +38 -0
  241. data/vendor/rspec/spec/autotest/discover_spec.rb +8 -0
  242. data/vendor/rspec/spec/autotest/failed_results_re_spec.rb +31 -0
  243. data/vendor/rspec/spec/autotest/rspec_spec.rb +126 -0
  244. data/vendor/rspec/spec/ruby_forker.rb +13 -0
  245. data/vendor/rspec/spec/spec.opts +6 -0
  246. data/vendor/rspec/spec/spec/dsl/main_spec.rb +95 -0
  247. data/vendor/rspec/spec/spec/example/example_group_class_definition_spec.rb +51 -0
  248. data/vendor/rspec/spec/spec/example/example_group_factory_spec.rb +180 -0
  249. data/vendor/rspec/spec/spec/example/example_group_methods_spec.rb +759 -0
  250. data/vendor/rspec/spec/spec/example/example_group_proxy_spec.rb +107 -0
  251. data/vendor/rspec/spec/spec/example/example_group_spec.rb +643 -0
  252. data/vendor/rspec/spec/spec/example/example_matcher_spec.rb +86 -0
  253. data/vendor/rspec/spec/spec/example/example_methods_spec.rb +162 -0
  254. data/vendor/rspec/spec/spec/example/example_proxy_spec.rb +57 -0
  255. data/vendor/rspec/spec/spec/example/helper_method_spec.rb +24 -0
  256. data/vendor/rspec/spec/spec/example/nested_example_group_spec.rb +71 -0
  257. data/vendor/rspec/spec/spec/example/pending_module_spec.rb +58 -0
  258. data/vendor/rspec/spec/spec/example/predicate_matcher_spec.rb +41 -0
  259. data/vendor/rspec/spec/spec/example/shared_example_group_spec.rb +257 -0
  260. data/vendor/rspec/spec/spec/example/subclassing_example_group_spec.rb +25 -0
  261. data/vendor/rspec/spec/spec/example/subject_spec.rb +103 -0
  262. data/vendor/rspec/spec/spec/expectations/differs/default_spec.rb +194 -0
  263. data/vendor/rspec/spec/spec/expectations/extensions/kernel_spec.rb +45 -0
  264. data/vendor/rspec/spec/spec/expectations/fail_with_spec.rb +96 -0
  265. data/vendor/rspec/spec/spec/expectations/handler_spec.rb +206 -0
  266. data/vendor/rspec/spec/spec/expectations/wrap_expectation_spec.rb +30 -0
  267. data/vendor/rspec/spec/spec/interop/test/unit/resources/spec_that_fails.rb +10 -0
  268. data/vendor/rspec/spec/spec/interop/test/unit/resources/spec_that_passes.rb +10 -0
  269. data/vendor/rspec/spec/spec/interop/test/unit/resources/spec_with_errors.rb +10 -0
  270. data/vendor/rspec/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +13 -0
  271. data/vendor/rspec/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +10 -0
  272. data/vendor/rspec/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +10 -0
  273. data/vendor/rspec/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +10 -0
  274. data/vendor/rspec/spec/spec/interop/test/unit/resources/test_case_with_various_names.rb +22 -0
  275. data/vendor/rspec/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +38 -0
  276. data/vendor/rspec/spec/spec/interop/test/unit/spec_spec.rb +48 -0
  277. data/vendor/rspec/spec/spec/interop/test/unit/test_unit_spec_helper.rb +18 -0
  278. data/vendor/rspec/spec/spec/interop/test/unit/testcase_spec.rb +50 -0
  279. data/vendor/rspec/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +9 -0
  280. data/vendor/rspec/spec/spec/matchers/be_close_spec.rb +50 -0
  281. data/vendor/rspec/spec/spec/matchers/be_instance_of_spec.rb +36 -0
  282. data/vendor/rspec/spec/spec/matchers/be_kind_of_spec.rb +33 -0
  283. data/vendor/rspec/spec/spec/matchers/be_spec.rb +419 -0
  284. data/vendor/rspec/spec/spec/matchers/change_spec.rb +349 -0
  285. data/vendor/rspec/spec/spec/matchers/compatibility_spec.rb +28 -0
  286. data/vendor/rspec/spec/spec/matchers/description_generation_spec.rb +160 -0
  287. data/vendor/rspec/spec/spec/matchers/dsl_spec.rb +34 -0
  288. data/vendor/rspec/spec/spec/matchers/eql_spec.rb +33 -0
  289. data/vendor/rspec/spec/spec/matchers/equal_spec.rb +57 -0
  290. data/vendor/rspec/spec/spec/matchers/exist_spec.rb +65 -0
  291. data/vendor/rspec/spec/spec/matchers/has_spec.rb +190 -0
  292. data/vendor/rspec/spec/spec/matchers/have_spec.rb +396 -0
  293. data/vendor/rspec/spec/spec/matchers/include_spec.rb +88 -0
  294. data/vendor/rspec/spec/spec/matchers/match_array_spec.rb +108 -0
  295. data/vendor/rspec/spec/spec/matchers/match_spec.rb +57 -0
  296. data/vendor/rspec/spec/spec/matchers/matcher_methods_spec.rb +63 -0
  297. data/vendor/rspec/spec/spec/matchers/matcher_spec.rb +273 -0
  298. data/vendor/rspec/spec/spec/matchers/matchers_spec.rb +2 -0
  299. data/vendor/rspec/spec/spec/matchers/operator_matcher_spec.rb +191 -0
  300. data/vendor/rspec/spec/spec/matchers/raise_error_spec.rb +333 -0
  301. data/vendor/rspec/spec/spec/matchers/respond_to_spec.rb +116 -0
  302. data/vendor/rspec/spec/spec/matchers/satisfy_spec.rb +36 -0
  303. data/vendor/rspec/spec/spec/matchers/simple_matcher_spec.rb +93 -0
  304. data/vendor/rspec/spec/spec/matchers/throw_symbol_spec.rb +96 -0
  305. data/vendor/rspec/spec/spec/mocks/and_yield_spec.rb +117 -0
  306. data/vendor/rspec/spec/spec/mocks/any_number_of_times_spec.rb +36 -0
  307. data/vendor/rspec/spec/spec/mocks/argument_expectation_spec.rb +23 -0
  308. data/vendor/rspec/spec/spec/mocks/argument_matchers_spec.rb +19 -0
  309. data/vendor/rspec/spec/spec/mocks/at_least_spec.rb +97 -0
  310. data/vendor/rspec/spec/spec/mocks/at_most_spec.rb +93 -0
  311. data/vendor/rspec/spec/spec/mocks/bug_report_10260_spec.rb +8 -0
  312. data/vendor/rspec/spec/spec/mocks/bug_report_10263_spec.rb +27 -0
  313. data/vendor/rspec/spec/spec/mocks/bug_report_11545_spec.rb +32 -0
  314. data/vendor/rspec/spec/spec/mocks/bug_report_15719_spec.rb +30 -0
  315. data/vendor/rspec/spec/spec/mocks/bug_report_496_spec.rb +19 -0
  316. data/vendor/rspec/spec/spec/mocks/bug_report_600_spec.rb +22 -0
  317. data/vendor/rspec/spec/spec/mocks/bug_report_7611_spec.rb +19 -0
  318. data/vendor/rspec/spec/spec/mocks/bug_report_7805_spec.rb +22 -0
  319. data/vendor/rspec/spec/spec/mocks/bug_report_8165_spec.rb +31 -0
  320. data/vendor/rspec/spec/spec/mocks/bug_report_8302_spec.rb +26 -0
  321. data/vendor/rspec/spec/spec/mocks/bug_report_830_spec.rb +21 -0
  322. data/vendor/rspec/spec/spec/mocks/double_spec.rb +12 -0
  323. data/vendor/rspec/spec/spec/mocks/failing_argument_matchers_spec.rb +95 -0
  324. data/vendor/rspec/spec/spec/mocks/hash_including_matcher_spec.rb +90 -0
  325. data/vendor/rspec/spec/spec/mocks/hash_not_including_matcher_spec.rb +67 -0
  326. data/vendor/rspec/spec/spec/mocks/mock_ordering_spec.rb +94 -0
  327. data/vendor/rspec/spec/spec/mocks/mock_space_spec.rb +54 -0
  328. data/vendor/rspec/spec/spec/mocks/mock_spec.rb +594 -0
  329. data/vendor/rspec/spec/spec/mocks/multiple_return_value_spec.rb +113 -0
  330. data/vendor/rspec/spec/spec/mocks/nil_expectation_warning_spec.rb +53 -0
  331. data/vendor/rspec/spec/spec/mocks/null_object_mock_spec.rb +54 -0
  332. data/vendor/rspec/spec/spec/mocks/once_counts_spec.rb +53 -0
  333. data/vendor/rspec/spec/spec/mocks/options_hash_spec.rb +35 -0
  334. data/vendor/rspec/spec/spec/mocks/partial_mock_spec.rb +164 -0
  335. data/vendor/rspec/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +66 -0
  336. data/vendor/rspec/spec/spec/mocks/passing_argument_matchers_spec.rb +145 -0
  337. data/vendor/rspec/spec/spec/mocks/precise_counts_spec.rb +52 -0
  338. data/vendor/rspec/spec/spec/mocks/record_messages_spec.rb +26 -0
  339. data/vendor/rspec/spec/spec/mocks/stub_chain_spec.rb +42 -0
  340. data/vendor/rspec/spec/spec/mocks/stub_implementation_spec.rb +31 -0
  341. data/vendor/rspec/spec/spec/mocks/stub_spec.rb +203 -0
  342. data/vendor/rspec/spec/spec/mocks/stubbed_message_expectations_spec.rb +26 -0
  343. data/vendor/rspec/spec/spec/mocks/twice_counts_spec.rb +67 -0
  344. data/vendor/rspec/spec/spec/mocks/unstub_spec.rb +127 -0
  345. data/vendor/rspec/spec/spec/package/bin_spec_spec.rb +16 -0
  346. data/vendor/rspec/spec/spec/rake/spectask_spec.rb +150 -0
  347. data/vendor/rspec/spec/spec/runner/class_and_argument_parser_spec.rb +23 -0
  348. data/vendor/rspec/spec/spec/runner/command_line_spec.rb +162 -0
  349. data/vendor/rspec/spec/spec/runner/configuration_spec.rb +320 -0
  350. data/vendor/rspec/spec/spec/runner/drb_command_line_spec.rb +146 -0
  351. data/vendor/rspec/spec/spec/runner/empty_file.txt +0 -0
  352. data/vendor/rspec/spec/spec/runner/example_group_runner_spec.rb +26 -0
  353. data/vendor/rspec/spec/spec/runner/examples.txt +2 -0
  354. data/vendor/rspec/spec/spec/runner/failed.txt +3 -0
  355. data/vendor/rspec/spec/spec/runner/formatter/base_formatter_spec.rb +30 -0
  356. data/vendor/rspec/spec/spec/runner/formatter/base_text_formatter_spec.rb +113 -0
  357. data/vendor/rspec/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +45 -0
  358. data/vendor/rspec/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +33 -0
  359. data/vendor/rspec/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +377 -0
  360. data/vendor/rspec/spec/spec/runner/formatter/html_formatted-1.8.6.html +377 -0
  361. data/vendor/rspec/spec/spec/runner/formatter/html_formatted-1.8.7.html +377 -0
  362. data/vendor/rspec/spec/spec/runner/formatter/html_formatted-1.9.1.html +377 -0
  363. data/vendor/rspec/spec/spec/runner/formatter/html_formatter_spec.rb +118 -0
  364. data/vendor/rspec/spec/spec/runner/formatter/nested_text_formatter_spec.rb +305 -0
  365. data/vendor/rspec/spec/spec/runner/formatter/profile_formatter_spec.rb +70 -0
  366. data/vendor/rspec/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +149 -0
  367. data/vendor/rspec/spec/spec/runner/formatter/snippet_extractor_spec.rb +18 -0
  368. data/vendor/rspec/spec/spec/runner/formatter/specdoc_formatter_spec.rb +159 -0
  369. data/vendor/rspec/spec/spec/runner/formatter/text_mate_formatted-1.8.6-jruby.html +371 -0
  370. data/vendor/rspec/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +371 -0
  371. data/vendor/rspec/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html +371 -0
  372. data/vendor/rspec/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html +371 -0
  373. data/vendor/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb +106 -0
  374. data/vendor/rspec/spec/spec/runner/heckle_runner_spec.rb +78 -0
  375. data/vendor/rspec/spec/spec/runner/heckler_spec.rb +20 -0
  376. data/vendor/rspec/spec/spec/runner/line_number_query/line_number_query_fixture.rb +70 -0
  377. data/vendor/rspec/spec/spec/runner/line_number_query_spec.rb +129 -0
  378. data/vendor/rspec/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +51 -0
  379. data/vendor/rspec/spec/spec/runner/option_parser_spec.rb +554 -0
  380. data/vendor/rspec/spec/spec/runner/options_spec.rb +554 -0
  381. data/vendor/rspec/spec/spec/runner/output_one_time_fixture.rb +7 -0
  382. data/vendor/rspec/spec/spec/runner/output_one_time_fixture_runner.rb +7 -0
  383. data/vendor/rspec/spec/spec/runner/output_one_time_spec.rb +15 -0
  384. data/vendor/rspec/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +123 -0
  385. data/vendor/rspec/spec/spec/runner/reporter_spec.rb +244 -0
  386. data/vendor/rspec/spec/spec/runner/resources/a_bar.rb +0 -0
  387. data/vendor/rspec/spec/spec/runner/resources/a_foo.rb +0 -0
  388. data/vendor/rspec/spec/spec/runner/resources/a_spec.rb +1 -0
  389. data/vendor/rspec/spec/spec/runner/resources/custom_example_group_runner.rb +14 -0
  390. data/vendor/rspec/spec/spec/runner/resources/utf8_encoded.rb +8 -0
  391. data/vendor/rspec/spec/spec/runner/spec.opts +2 -0
  392. data/vendor/rspec/spec/spec/runner/spec_drb.opts +2 -0
  393. data/vendor/rspec/spec/spec/runner/spec_spaced.opts +2 -0
  394. data/vendor/rspec/spec/spec/runner_spec.rb +13 -0
  395. data/vendor/rspec/spec/spec_helper.rb +112 -0
  396. data/vendor/rspec/spec/support/macros.rb +29 -0
  397. data/vendor/rspec/spec/support/spec_classes.rb +133 -0
  398. data/vendor/rubyexts/CHANGELOG +2 -0
  399. data/vendor/rubyexts/LICENSE +20 -0
  400. data/vendor/rubyexts/README.textile +0 -0
  401. data/vendor/rubyexts/Rakefile +79 -0
  402. data/vendor/rubyexts/TODO.txt +6 -0
  403. data/vendor/rubyexts/lib/rubyexts.rb +102 -0
  404. data/vendor/rubyexts/lib/rubyexts/array.rb +20 -0
  405. data/vendor/rubyexts/lib/rubyexts/attribute.rb +151 -0
  406. data/vendor/rubyexts/lib/rubyexts/capture_io.rb +32 -0
  407. data/vendor/rubyexts/lib/rubyexts/class.rb +177 -0
  408. data/vendor/rubyexts/lib/rubyexts/colored_string.rb +103 -0
  409. data/vendor/rubyexts/lib/rubyexts/enumerable.rb +30 -0
  410. data/vendor/rubyexts/lib/rubyexts/file.rb +84 -0
  411. data/vendor/rubyexts/lib/rubyexts/hash.rb +180 -0
  412. data/vendor/rubyexts/lib/rubyexts/kernel.rb +91 -0
  413. data/vendor/rubyexts/lib/rubyexts/module.rb +53 -0
  414. data/vendor/rubyexts/lib/rubyexts/object.rb +56 -0
  415. data/vendor/rubyexts/lib/rubyexts/object_space.rb +16 -0
  416. data/vendor/rubyexts/lib/rubyexts/os.rb +89 -0
  417. data/vendor/rubyexts/lib/rubyexts/platform.rb +27 -0
  418. data/vendor/rubyexts/lib/rubyexts/random.rb +25 -0
  419. data/vendor/rubyexts/lib/rubyexts/string.rb +92 -0
  420. data/vendor/rubyexts/lib/rubyexts/time.rb +15 -0
  421. data/vendor/rubyexts/lib/rubyexts/time_dsl.rb +62 -0
  422. data/vendor/rubyexts/lib/rubyexts/try_dup.rb +43 -0
  423. data/vendor/rubyexts/lib/rubyexts/unique_array.rb +16 -0
  424. data/vendor/rubyexts/rubyexts.gemspec +36 -0
  425. data/vendor/rubyexts/script/spec +12 -0
  426. data/vendor/rubyexts/spec/rubyexts/array_spec.rb +19 -0
  427. data/vendor/rubyexts/spec/rubyexts/attribute_spec.rb +37 -0
  428. data/vendor/rubyexts/spec/rubyexts/class_spec.rb +1 -0
  429. data/vendor/rubyexts/spec/rubyexts/cli_spec.rb +0 -0
  430. data/vendor/rubyexts/spec/rubyexts/colored_string_spec.rb +9 -0
  431. data/vendor/rubyexts/spec/rubyexts/enumerable_spec.rb +52 -0
  432. data/vendor/rubyexts/spec/rubyexts/file_spec.rb +78 -0
  433. data/vendor/rubyexts/spec/rubyexts/hash_spec.rb +91 -0
  434. data/vendor/rubyexts/spec/rubyexts/kernel_spec.rb +9 -0
  435. data/vendor/rubyexts/spec/rubyexts/module_spec.rb +0 -0
  436. data/vendor/rubyexts/spec/rubyexts/object_space_spec.rb +17 -0
  437. data/vendor/rubyexts/spec/rubyexts/object_spec.rb +57 -0
  438. data/vendor/rubyexts/spec/rubyexts/os_spec.rb +121 -0
  439. data/vendor/rubyexts/spec/rubyexts/platform_spec.rb +0 -0
  440. data/vendor/rubyexts/spec/rubyexts/random_spec.rb +31 -0
  441. data/vendor/rubyexts/spec/rubyexts/string_spec.rb +23 -0
  442. data/vendor/rubyexts/spec/rubyexts/time_dsl_spec.rb +88 -0
  443. data/vendor/rubyexts/spec/rubyexts/time_spec.rb +11 -0
  444. data/vendor/rubyexts/spec/rubyexts/unique_array_spec.rb +0 -0
  445. data/vendor/rubyexts/spec/rubyexts_spec.rb +182 -0
  446. data/vendor/rubyexts/spec/spec.opts +5 -0
  447. data/vendor/rubyexts/spec/spec_helper.rb +16 -0
  448. metadata +510 -0
@@ -0,0 +1,108 @@
1
+ module Spec
2
+ module Example
3
+ module Subject
4
+ module ExampleGroupMethods
5
+ # Defines an explicit subject for an example group which can then be the
6
+ # implicit receiver (through delegation) of calls to +should+.
7
+ #
8
+ # == Examples
9
+ #
10
+ # describe CheckingAccount, "with $50" do
11
+ # subject { CheckingAccount.new(:amount => 50, :currency => :USD) }
12
+ # it { should have_a_balance_of(50, :USD) }
13
+ # it { should_not be_overdrawn }
14
+ # its(:currency) { should == :USD }
15
+ # end
16
+ #
17
+ # See +ExampleMethods#should+ for more information about this approach.
18
+ def subject(&block)
19
+ block.nil? ?
20
+ explicit_subject || implicit_subject : @explicit_subject_block = block
21
+ end
22
+
23
+ def its(attribute, &block)
24
+ describe(attribute) do
25
+ define_method(:subject) { super().send(attribute) }
26
+ it(&block)
27
+ end
28
+ end
29
+
30
+ attr_reader :explicit_subject_block # :nodoc:
31
+
32
+ private
33
+
34
+ def explicit_subject
35
+ group = self
36
+ while group.respond_to?(:explicit_subject_block)
37
+ return group.explicit_subject_block if group.explicit_subject_block
38
+ group = group.superclass
39
+ end
40
+ end
41
+
42
+ def implicit_subject
43
+ (described_class ? lambda {described_class.new} : lambda {description_args.first})
44
+ end
45
+ end
46
+
47
+ module ExampleMethods
48
+
49
+ alias_method :__should_for_example_group__, :should
50
+ alias_method :__should_not_for_example_group__, :should_not
51
+
52
+ # Returns the subject defined in ExampleGroupMethods#subject. The
53
+ # subject block is only executed once per example, the result of which
54
+ # is cached and returned by any subsequent calls to +subject+.
55
+ #
56
+ # If a class is passed to +describe+ and no subject is explicitly
57
+ # declared in the example group, then +subject+ will return a new
58
+ # instance of that class.
59
+ #
60
+ # == Examples
61
+ #
62
+ # # explicit subject defined by the subject method
63
+ # describe Person do
64
+ # subject { Person.new(:birthdate => 19.years.ago) }
65
+ # it "should be eligible to vote" do
66
+ # subject.should be_eligible_to_vote
67
+ # end
68
+ # end
69
+ #
70
+ # # implicit subject => { Person.new }
71
+ # describe Person do
72
+ # it "should be eligible to vote" do
73
+ # subject.should be_eligible_to_vote
74
+ # end
75
+ # end
76
+ def subject
77
+ @subject ||= instance_eval(&self.class.subject)
78
+ end
79
+
80
+ # When +should+ is called with no explicit receiver, the call is
81
+ # delegated to the object returned by +subject+. Combined with
82
+ # an implicit subject (see +subject+), this supports very concise
83
+ # expressions.
84
+ #
85
+ # == Examples
86
+ #
87
+ # describe Person do
88
+ # it { should be_eligible_to_vote }
89
+ # end
90
+ def should(matcher=nil, message=nil)
91
+ self == subject ? self.__should_for_example_group__(matcher) : subject.should(matcher,message)
92
+ end
93
+
94
+ # Just like +should+, +should_not+ delegates to the subject (implicit or
95
+ # explicit) of the example group.
96
+ #
97
+ # == Examples
98
+ #
99
+ # describe Person do
100
+ # it { should_not be_eligible_to_vote }
101
+ # end
102
+ def should_not(matcher=nil, message=nil)
103
+ self == subject ? self.__should_not_for_example_group__(matcher) : subject.should_not(matcher,message)
104
+ end
105
+ end
106
+ end
107
+ end
108
+ end
@@ -0,0 +1,35 @@
1
+ require 'spec/matchers'
2
+ require 'spec/expectations/fail_with'
3
+ require 'spec/expectations/errors'
4
+ require 'spec/expectations/extensions'
5
+ require 'spec/expectations/handler'
6
+
7
+ module Spec
8
+
9
+ # Spec::Expectations lets you set expectations on your objects.
10
+ #
11
+ # result.should == 37
12
+ # team.should have(11).players_on_the_field
13
+ #
14
+ # == How Expectations work.
15
+ #
16
+ # Spec::Expectations adds two methods to Object:
17
+ #
18
+ # should(matcher=nil)
19
+ # should_not(matcher=nil)
20
+ #
21
+ # Both methods take an optional Expression Matcher (See Spec::Matchers).
22
+ #
23
+ # When +should+ receives an Expression Matcher, it calls <tt>matches?(self)</tt>. If
24
+ # it returns +true+, the spec passes and execution continues. If it returns
25
+ # +false+, then the spec fails with the message returned by <tt>matcher.failure_message</tt>.
26
+ #
27
+ # Similarly, when +should_not+ receives a matcher, it calls <tt>matches?(self)</tt>. If
28
+ # it returns +false+, the spec passes and execution continues. If it returns
29
+ # +true+, then the spec fails with the message returned by <tt>matcher.negative_failure_message</tt>.
30
+ #
31
+ # RSpec ships with a standard set of useful matchers, and writing your own
32
+ # matchers is quite simple. See Spec::Matchers for details.
33
+ module Expectations
34
+ end
35
+ end
@@ -0,0 +1,12 @@
1
+ module Spec
2
+ module Expectations
3
+ # If Test::Unit is loaed, we'll use its error as baseclass, so that Test::Unit
4
+ # will report unmet RSpec expectations as failures rather than errors.
5
+ superclass = ['Test::Unit::AssertionFailedError', '::StandardError'].map do |c|
6
+ eval(c) rescue nil
7
+ end.compact.first
8
+
9
+ class ExpectationNotMetError < superclass
10
+ end
11
+ end
12
+ end
@@ -0,0 +1 @@
1
+ require 'spec/expectations/extensions/kernel'
@@ -0,0 +1,52 @@
1
+ module Kernel
2
+ # :call-seq:
3
+ # should(matcher)
4
+ # should == expected
5
+ # should === expected
6
+ # should =~ expected
7
+ #
8
+ # receiver.should(matcher)
9
+ # => Passes if matcher.matches?(receiver)
10
+ #
11
+ # receiver.should == expected #any value
12
+ # => Passes if (receiver == expected)
13
+ #
14
+ # receiver.should === expected #any value
15
+ # => Passes if (receiver === expected)
16
+ #
17
+ # receiver.should =~ regexp
18
+ # => Passes if (receiver =~ regexp)
19
+ #
20
+ # See Spec::Matchers for more information about matchers
21
+ #
22
+ # == Warning
23
+ #
24
+ # NOTE that this does NOT support receiver.should != expected.
25
+ # Instead, use receiver.should_not == expected
26
+ def should(matcher=nil, message=nil, &block)
27
+ Spec::Expectations::PositiveExpectationHandler.handle_matcher(self, matcher, message, &block)
28
+ end
29
+
30
+ # :call-seq:
31
+ # should_not(matcher)
32
+ # should_not == expected
33
+ # should_not === expected
34
+ # should_not =~ expected
35
+ #
36
+ # receiver.should_not(matcher)
37
+ # => Passes unless matcher.matches?(receiver)
38
+ #
39
+ # receiver.should_not == expected
40
+ # => Passes unless (receiver == expected)
41
+ #
42
+ # receiver.should_not === expected
43
+ # => Passes unless (receiver === expected)
44
+ #
45
+ # receiver.should_not =~ regexp
46
+ # => Passes unless (receiver =~ regexp)
47
+ #
48
+ # See Spec::Matchers for more information about matchers
49
+ def should_not(matcher=nil, message=nil, &block)
50
+ Spec::Expectations::NegativeExpectationHandler.handle_matcher(self, matcher, message, &block)
51
+ end
52
+ end
@@ -0,0 +1,45 @@
1
+ module Spec
2
+ module Expectations
3
+ class << self
4
+ attr_accessor :differ
5
+
6
+ # raises a Spec::Expectations::ExpectationNotMetError with message
7
+ #
8
+ # When a differ has been assigned and fail_with is passed
9
+ # <code>expected</code> and <code>target</code>, passes them
10
+ # to the differ to append a diff message to the failure message.
11
+ def fail_with(message, expected=nil, target=nil) # :nodoc:
12
+ if message.nil?
13
+ raise ArgumentError, "Failure message is nil. Does your matcher define the " +
14
+ "appropriate failure_message_for_* method to return a string?"
15
+ end
16
+ if (Array === message) & (message.length == 3)
17
+ ::Spec.warn(<<-NOTICE
18
+
19
+ *****************************************************************
20
+ DEPRECATION WARNING: you are using deprecated behaviour that will
21
+ be removed from a future version of RSpec.
22
+
23
+ * Support for matchers that return arrays from failure message
24
+ methods is deprecated.
25
+ * Instead, the matcher should return a string, and expose methods
26
+ for the expected() and actual() values.
27
+ *****************************************************************
28
+ NOTICE
29
+ )
30
+ message, expected, target = message[0], message[1], message[2]
31
+ end
32
+ unless (differ.nil? || expected.nil? || target.nil?)
33
+ if expected.is_a?(String)
34
+ message << "\n\n Diff:" << self.differ.diff_as_string(target.to_s, expected)
35
+ elsif expected.is_a?(Hash) && target.is_a?(Hash)
36
+ message << "\n\n Diff:" << self.differ.diff_as_hash(target, expected)
37
+ elsif !target.is_a?(Proc)
38
+ message << "\n\n Diff:" << self.differ.diff_as_object(target, expected)
39
+ end
40
+ end
41
+ Kernel::raise(Spec::Expectations::ExpectationNotMetError.new(message))
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,50 @@
1
+ module Spec
2
+ module Expectations
3
+ class InvalidMatcherError < ArgumentError; end
4
+
5
+ class PositiveExpectationHandler
6
+ def self.handle_matcher(actual, matcher, message=nil, &block)
7
+ ::Spec::Matchers.last_should = :should
8
+ ::Spec::Matchers.last_matcher = matcher
9
+ return ::Spec::Matchers::PositiveOperatorMatcher.new(actual) if matcher.nil?
10
+
11
+ match = matcher.matches?(actual, &block)
12
+ return match if match
13
+
14
+ message ||= matcher.respond_to?(:failure_message_for_should) ?
15
+ matcher.failure_message_for_should :
16
+ matcher.failure_message
17
+
18
+ if matcher.respond_to?(:diffable?) && matcher.diffable?
19
+ ::Spec::Expectations.fail_with message, matcher.expected.first, matcher.actual
20
+ else
21
+ ::Spec::Expectations.fail_with message
22
+ end
23
+ end
24
+ end
25
+
26
+ class NegativeExpectationHandler
27
+ def self.handle_matcher(actual, matcher, message=nil, &block)
28
+ ::Spec::Matchers.last_should = :should_not
29
+ ::Spec::Matchers.last_matcher = matcher
30
+ return ::Spec::Matchers::NegativeOperatorMatcher.new(actual) if matcher.nil?
31
+
32
+ match = matcher.respond_to?(:does_not_match?) ?
33
+ !matcher.does_not_match?(actual, &block) :
34
+ matcher.matches?(actual, &block)
35
+ return match unless match
36
+
37
+ message ||= matcher.respond_to?(:failure_message_for_should_not) ?
38
+ matcher.failure_message_for_should_not :
39
+ matcher.negative_failure_message
40
+
41
+ if matcher.respond_to?(:diffable?) && matcher.diffable?
42
+ ::Spec::Expectations.fail_with message, matcher.expected.first, matcher.actual
43
+ else
44
+ ::Spec::Expectations.fail_with message
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
50
+
@@ -0,0 +1,31 @@
1
+ module Spec
2
+ module Matchers
3
+ module InstanceExec
4
+ unless respond_to?(:instance_exec)
5
+ # based on Bounded Spec InstanceExec (Mauricio Fernandez)
6
+ # http://eigenclass.org/hiki/bounded+space+instance_exec
7
+ # - uses singleton_class of matcher instead of global
8
+ # InstanceExecHelper module
9
+ # - this keeps it scoped to this class only, which is the
10
+ # only place we need it
11
+ # - only necessary for ruby 1.8.6
12
+ def instance_exec(*args, &block)
13
+ singleton_class = (class << self; self; end)
14
+ begin
15
+ orig_critical, Thread.critical = Thread.critical, true
16
+ n = 0
17
+ n += 1 while respond_to?(method_name="__instance_exec#{n}")
18
+ singleton_class.module_eval{ define_method(:__instance_exec, &block) }
19
+ ensure
20
+ Thread.critical = orig_critical
21
+ end
22
+ begin
23
+ return send(:__instance_exec, *args)
24
+ ensure
25
+ singleton_class.module_eval{ remove_method(:__instance_exec) } rescue nil
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,44 @@
1
+ require 'spec'
2
+
3
+ if Spec::Ruby.version.to_f >= 1.9
4
+ gem 'test-unit','= 1.2.3'
5
+ end
6
+
7
+ require 'test/unit'
8
+
9
+ if Spec::Ruby.version.to_f >= 1.9
10
+ require 'test/unit/version'
11
+ if Test::Unit::VERSION > '1.2.3'
12
+ raise <<-MESSAGE
13
+ #{'*' * 50}
14
+ Required: test-unit-1.2.3
15
+ Loaded: test-unit-#{Test::Unit::VERSION}
16
+
17
+ With ruby-1.9, rspec-#{Spec::VERSION::STRING} requires test-unit-1.2.3, and
18
+ tries to force it with "gem 'test-unit', '= 1.2.3'" in:
19
+
20
+ #{__FILE__}
21
+
22
+ Unfortunately, test-unit-#{Test::Unit::VERSION} was loaded anyway. While we are
23
+ aware of this bug we have not been able to track down its source.
24
+ Until we do, you have two alternatives:
25
+
26
+ * uninstall test-unit-2.0.3
27
+ * use 'script/spec' instead of 'rake spec'
28
+ #{'*' * 50}
29
+ MESSAGE
30
+ end
31
+ end
32
+
33
+
34
+ require 'test/unit/testresult'
35
+
36
+ require 'spec/interop/test/unit/testcase'
37
+ require 'spec/interop/test/unit/testsuite_adapter'
38
+ require 'spec/interop/test/unit/autorunner'
39
+ require 'spec/interop/test/unit/testresult'
40
+ require 'spec/interop/test/unit/ui/console/testrunner'
41
+
42
+ Spec::Example::ExampleGroupFactory.default(Test::Unit::TestCase)
43
+
44
+ Test::Unit.run = true
@@ -0,0 +1,6 @@
1
+ class Test::Unit::AutoRunner
2
+ remove_method :process_args
3
+ def process_args(argv)
4
+ true
5
+ end
6
+ end
@@ -0,0 +1,56 @@
1
+ require 'test/unit/testcase'
2
+
3
+ module Test
4
+ module Unit
5
+ # This extension of the standard Test::Unit::TestCase makes RSpec
6
+ # available from within, so that you can do things like:
7
+ #
8
+ # require 'spec/test/unit'
9
+ #
10
+ # class MyTest < Test::Unit::TestCase
11
+ # it "should work with Test::Unit assertions" do
12
+ # assert_equal 4, 2+1
13
+ # end
14
+ #
15
+ # def test_should_work_with_rspec_expectations
16
+ # (3+1).should == 5
17
+ # end
18
+ # end
19
+ #
20
+ # See also Spec::Example::ExampleGroup
21
+ class TestCase
22
+ extend Spec::Example::ExampleGroupMethods
23
+ include Spec::Example::ExampleMethods
24
+
25
+ def self.suite
26
+ Test::Unit::TestSuiteAdapter.new(self)
27
+ end
28
+
29
+ def self.example_method?(method_name)
30
+ should_method?(method_name) || test_method?(method_name)
31
+ end
32
+
33
+ def self.test_method?(method_name)
34
+ method_name =~ /^test./ && (
35
+ instance_method(method_name).arity == 0 ||
36
+ instance_method(method_name).arity == -1
37
+ )
38
+ end
39
+
40
+ before(:each) {setup}
41
+ after(:each) {teardown}
42
+
43
+ def initialize(description, &implementation)
44
+ super
45
+ # Some Test::Unit extensions depend on @method_name being present.
46
+ @method_name = description.description
47
+ @_result = ::Test::Unit::TestResult.new
48
+ end
49
+
50
+ def run(ignore_this_argument=nil)
51
+ super()
52
+ end
53
+
54
+ end
55
+ end
56
+ end