gem_repackager 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (567) hide show
  1. data/.gitignore +17 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE +22 -0
  4. data/README.md +56 -0
  5. data/Rakefile +9 -0
  6. data/bin/gem_repackager +57 -0
  7. data/gem_repackager.gemspec +22 -0
  8. data/lib/gem_repackager.rb +131 -0
  9. data/lib/gem_repackager/version.rb +5 -0
  10. data/spec/packager_spec.rb +131 -0
  11. data/spec/spec_helper.rb +1 -0
  12. data/support/bin/rspec +19 -0
  13. data/support/gems/rspec-2.11.0/License.txt +24 -0
  14. data/support/gems/rspec-2.11.0/README.md +47 -0
  15. data/support/gems/rspec-2.11.0/lib/rspec.rb +4 -0
  16. data/support/gems/rspec-2.11.0/lib/rspec/version.rb +5 -0
  17. data/support/gems/rspec-core-2.11.1/.document +5 -0
  18. data/support/gems/rspec-core-2.11.1/.yardopts +6 -0
  19. data/support/gems/rspec-core-2.11.1/Changelog.md +570 -0
  20. data/support/gems/rspec-core-2.11.1/License.txt +24 -0
  21. data/support/gems/rspec-core-2.11.1/README.md +235 -0
  22. data/support/gems/rspec-core-2.11.1/exe/autospec +13 -0
  23. data/support/gems/rspec-core-2.11.1/exe/rspec +25 -0
  24. data/support/gems/rspec-core-2.11.1/features/Autotest.md +38 -0
  25. data/support/gems/rspec-core-2.11.1/features/README.md +17 -0
  26. data/support/gems/rspec-core-2.11.1/features/Upgrade.md +364 -0
  27. data/support/gems/rspec-core-2.11.1/features/command_line/README.md +28 -0
  28. data/support/gems/rspec-core-2.11.1/features/command_line/example_name_option.feature +101 -0
  29. data/support/gems/rspec-core-2.11.1/features/command_line/exit_status.feature +83 -0
  30. data/support/gems/rspec-core-2.11.1/features/command_line/format_option.feature +81 -0
  31. data/support/gems/rspec-core-2.11.1/features/command_line/init.feature +18 -0
  32. data/support/gems/rspec-core-2.11.1/features/command_line/line_number_appended_to_path.feature +140 -0
  33. data/support/gems/rspec-core-2.11.1/features/command_line/line_number_option.feature +58 -0
  34. data/support/gems/rspec-core-2.11.1/features/command_line/order.feature +29 -0
  35. data/support/gems/rspec-core-2.11.1/features/command_line/pattern_option.feature +31 -0
  36. data/support/gems/rspec-core-2.11.1/features/command_line/rake_task.feature +68 -0
  37. data/support/gems/rspec-core-2.11.1/features/command_line/ruby.feature +22 -0
  38. data/support/gems/rspec-core-2.11.1/features/command_line/tag.feature +91 -0
  39. data/support/gems/rspec-core-2.11.1/features/configuration/alias_example_to.feature +48 -0
  40. data/support/gems/rspec-core-2.11.1/features/configuration/custom_settings.feature +84 -0
  41. data/support/gems/rspec-core-2.11.1/features/configuration/default_path.feature +38 -0
  42. data/support/gems/rspec-core-2.11.1/features/configuration/fail_fast.feature +77 -0
  43. data/support/gems/rspec-core-2.11.1/features/configuration/read_options_from_file.feature +87 -0
  44. data/support/gems/rspec-core-2.11.1/features/example_groups/basic_structure.feature +55 -0
  45. data/support/gems/rspec-core-2.11.1/features/example_groups/shared_context.feature +74 -0
  46. data/support/gems/rspec-core-2.11.1/features/example_groups/shared_examples.feature +204 -0
  47. data/support/gems/rspec-core-2.11.1/features/expectation_framework_integration/configure_expectation_framework.feature +102 -0
  48. data/support/gems/rspec-core-2.11.1/features/filtering/exclusion_filters.feature +139 -0
  49. data/support/gems/rspec-core-2.11.1/features/filtering/if_and_unless.feature +168 -0
  50. data/support/gems/rspec-core-2.11.1/features/filtering/inclusion_filters.feature +105 -0
  51. data/support/gems/rspec-core-2.11.1/features/filtering/run_all_when_everything_filtered.feature +46 -0
  52. data/support/gems/rspec-core-2.11.1/features/formatters/custom_formatter.feature +36 -0
  53. data/support/gems/rspec-core-2.11.1/features/formatters/text_formatter.feature +46 -0
  54. data/support/gems/rspec-core-2.11.1/features/helper_methods/arbitrary_methods.feature +40 -0
  55. data/support/gems/rspec-core-2.11.1/features/helper_methods/let.feature +50 -0
  56. data/support/gems/rspec-core-2.11.1/features/helper_methods/modules.feature +149 -0
  57. data/support/gems/rspec-core-2.11.1/features/hooks/around_hooks.feature +343 -0
  58. data/support/gems/rspec-core-2.11.1/features/hooks/before_and_after_hooks.feature +423 -0
  59. data/support/gems/rspec-core-2.11.1/features/hooks/filtering.feature +234 -0
  60. data/support/gems/rspec-core-2.11.1/features/metadata/current_example.feature +17 -0
  61. data/support/gems/rspec-core-2.11.1/features/metadata/described_class.feature +17 -0
  62. data/support/gems/rspec-core-2.11.1/features/metadata/user_defined.feature +113 -0
  63. data/support/gems/rspec-core-2.11.1/features/mock_framework_integration/use_any_framework.feature +106 -0
  64. data/support/gems/rspec-core-2.11.1/features/mock_framework_integration/use_flexmock.feature +96 -0
  65. data/support/gems/rspec-core-2.11.1/features/mock_framework_integration/use_mocha.feature +97 -0
  66. data/support/gems/rspec-core-2.11.1/features/mock_framework_integration/use_rr.feature +98 -0
  67. data/support/gems/rspec-core-2.11.1/features/mock_framework_integration/use_rspec.feature +97 -0
  68. data/support/gems/rspec-core-2.11.1/features/pending/pending_examples.feature +229 -0
  69. data/support/gems/rspec-core-2.11.1/features/spec_files/arbitrary_file_suffix.feature +13 -0
  70. data/support/gems/rspec-core-2.11.1/features/step_definitions/additional_cli_steps.rb +30 -0
  71. data/support/gems/rspec-core-2.11.1/features/subject/attribute_of_subject.feature +124 -0
  72. data/support/gems/rspec-core-2.11.1/features/subject/explicit_subject.feature +82 -0
  73. data/support/gems/rspec-core-2.11.1/features/subject/implicit_receiver.feature +29 -0
  74. data/support/gems/rspec-core-2.11.1/features/subject/implicit_subject.feature +63 -0
  75. data/support/gems/rspec-core-2.11.1/features/support/env.rb +12 -0
  76. data/support/gems/rspec-core-2.11.1/lib/autotest/discover.rb +1 -0
  77. data/support/gems/rspec-core-2.11.1/lib/autotest/rspec2.rb +73 -0
  78. data/support/gems/rspec-core-2.11.1/lib/rspec/autorun.rb +2 -0
  79. data/support/gems/rspec-core-2.11.1/lib/rspec/core.rb +126 -0
  80. data/support/gems/rspec-core-2.11.1/lib/rspec/core/backward_compatibility.rb +65 -0
  81. data/support/gems/rspec-core-2.11.1/lib/rspec/core/command_line.rb +36 -0
  82. data/support/gems/rspec-core-2.11.1/lib/rspec/core/configuration.rb +944 -0
  83. data/support/gems/rspec-core-2.11.1/lib/rspec/core/configuration_options.rb +129 -0
  84. data/support/gems/rspec-core-2.11.1/lib/rspec/core/deprecation.rb +36 -0
  85. data/support/gems/rspec-core-2.11.1/lib/rspec/core/drb_command_line.rb +26 -0
  86. data/support/gems/rspec-core-2.11.1/lib/rspec/core/drb_options.rb +87 -0
  87. data/support/gems/rspec-core-2.11.1/lib/rspec/core/dsl.rb +26 -0
  88. data/support/gems/rspec-core-2.11.1/lib/rspec/core/example.rb +330 -0
  89. data/support/gems/rspec-core-2.11.1/lib/rspec/core/example_group.rb +466 -0
  90. data/support/gems/rspec-core-2.11.1/lib/rspec/core/extensions.rb +4 -0
  91. data/support/gems/rspec-core-2.11.1/lib/rspec/core/extensions/instance_eval_with_args.rb +44 -0
  92. data/support/gems/rspec-core-2.11.1/lib/rspec/core/extensions/kernel.rb +9 -0
  93. data/support/gems/rspec-core-2.11.1/lib/rspec/core/extensions/module_eval_with_args.rb +38 -0
  94. data/support/gems/rspec-core-2.11.1/lib/rspec/core/extensions/ordered.rb +21 -0
  95. data/support/gems/rspec-core-2.11.1/lib/rspec/core/filter_manager.rb +203 -0
  96. data/support/gems/rspec-core-2.11.1/lib/rspec/core/formatters/base_formatter.rb +168 -0
  97. data/support/gems/rspec-core-2.11.1/lib/rspec/core/formatters/base_text_formatter.rb +203 -0
  98. data/support/gems/rspec-core-2.11.1/lib/rspec/core/formatters/documentation_formatter.rb +67 -0
  99. data/support/gems/rspec-core-2.11.1/lib/rspec/core/formatters/helpers.rb +39 -0
  100. data/support/gems/rspec-core-2.11.1/lib/rspec/core/formatters/html_formatter.rb +464 -0
  101. data/support/gems/rspec-core-2.11.1/lib/rspec/core/formatters/progress_formatter.rb +32 -0
  102. data/support/gems/rspec-core-2.11.1/lib/rspec/core/formatters/snippet_extractor.rb +58 -0
  103. data/support/gems/rspec-core-2.11.1/lib/rspec/core/formatters/text_mate_formatter.rb +34 -0
  104. data/support/gems/rspec-core-2.11.1/lib/rspec/core/hooks.rb +495 -0
  105. data/support/gems/rspec-core-2.11.1/lib/rspec/core/let.rb +110 -0
  106. data/support/gems/rspec-core-2.11.1/lib/rspec/core/load_path.rb +3 -0
  107. data/support/gems/rspec-core-2.11.1/lib/rspec/core/metadata.rb +276 -0
  108. data/support/gems/rspec-core-2.11.1/lib/rspec/core/metadata_hash_builder.rb +97 -0
  109. data/support/gems/rspec-core-2.11.1/lib/rspec/core/mocking/with_absolutely_nothing.rb +11 -0
  110. data/support/gems/rspec-core-2.11.1/lib/rspec/core/mocking/with_flexmock.rb +27 -0
  111. data/support/gems/rspec-core-2.11.1/lib/rspec/core/mocking/with_mocha.rb +29 -0
  112. data/support/gems/rspec-core-2.11.1/lib/rspec/core/mocking/with_rr.rb +27 -0
  113. data/support/gems/rspec-core-2.11.1/lib/rspec/core/mocking/with_rspec.rb +23 -0
  114. data/support/gems/rspec-core-2.11.1/lib/rspec/core/option_parser.rb +181 -0
  115. data/support/gems/rspec-core-2.11.1/lib/rspec/core/pending.rb +101 -0
  116. data/support/gems/rspec-core-2.11.1/lib/rspec/core/project_initializer.rb +87 -0
  117. data/support/gems/rspec-core-2.11.1/lib/rspec/core/rake_task.rb +179 -0
  118. data/support/gems/rspec-core-2.11.1/lib/rspec/core/reporter.rb +102 -0
  119. data/support/gems/rspec-core-2.11.1/lib/rspec/core/ruby_project.rb +44 -0
  120. data/support/gems/rspec-core-2.11.1/lib/rspec/core/runner.rb +76 -0
  121. data/support/gems/rspec-core-2.11.1/lib/rspec/core/shared_context.rb +49 -0
  122. data/support/gems/rspec-core-2.11.1/lib/rspec/core/shared_example_group.rb +96 -0
  123. data/support/gems/rspec-core-2.11.1/lib/rspec/core/subject.rb +219 -0
  124. data/support/gems/rspec-core-2.11.1/lib/rspec/core/version.rb +7 -0
  125. data/support/gems/rspec-core-2.11.1/lib/rspec/core/world.rb +128 -0
  126. data/support/gems/rspec-core-2.11.1/spec/autotest/discover_spec.rb +19 -0
  127. data/support/gems/rspec-core-2.11.1/spec/autotest/failed_results_re_spec.rb +45 -0
  128. data/support/gems/rspec-core-2.11.1/spec/autotest/rspec_spec.rb +123 -0
  129. data/support/gems/rspec-core-2.11.1/spec/command_line/order_spec.rb +137 -0
  130. data/support/gems/rspec-core-2.11.1/spec/rspec/core/command_line_spec.rb +108 -0
  131. data/support/gems/rspec-core-2.11.1/spec/rspec/core/command_line_spec_output.txt +0 -0
  132. data/support/gems/rspec-core-2.11.1/spec/rspec/core/configuration_options_spec.rb +377 -0
  133. data/support/gems/rspec-core-2.11.1/spec/rspec/core/configuration_spec.rb +1196 -0
  134. data/support/gems/rspec-core-2.11.1/spec/rspec/core/deprecations_spec.rb +66 -0
  135. data/support/gems/rspec-core-2.11.1/spec/rspec/core/drb_command_line_spec.rb +108 -0
  136. data/support/gems/rspec-core-2.11.1/spec/rspec/core/drb_options_spec.rb +180 -0
  137. data/support/gems/rspec-core-2.11.1/spec/rspec/core/dsl_spec.rb +17 -0
  138. data/support/gems/rspec-core-2.11.1/spec/rspec/core/example_group_spec.rb +1098 -0
  139. data/support/gems/rspec-core-2.11.1/spec/rspec/core/example_spec.rb +370 -0
  140. data/support/gems/rspec-core-2.11.1/spec/rspec/core/filter_manager_spec.rb +256 -0
  141. data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/base_formatter_spec.rb +80 -0
  142. data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/base_text_formatter_spec.rb +363 -0
  143. data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/documentation_formatter_spec.rb +88 -0
  144. data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/helpers_spec.rb +66 -0
  145. data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/html_formatted-1.8.7-jruby.html +410 -0
  146. data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/html_formatted-1.8.7.html +409 -0
  147. data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/html_formatted-1.9.2.html +416 -0
  148. data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/html_formatted-1.9.3.html +416 -0
  149. data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/html_formatter_spec.rb +82 -0
  150. data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/progress_formatter_spec.rb +30 -0
  151. data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/snippet_extractor_spec.rb +18 -0
  152. data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/text_mate_formatted-1.8.7-jruby.html +410 -0
  153. data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/text_mate_formatted-1.8.7.html +409 -0
  154. data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/text_mate_formatted-1.9.2.html +416 -0
  155. data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/text_mate_formatted-1.9.3.html +416 -0
  156. data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/text_mate_formatter_spec.rb +83 -0
  157. data/support/gems/rspec-core-2.11.1/spec/rspec/core/hooks_filtering_spec.rb +227 -0
  158. data/support/gems/rspec-core-2.11.1/spec/rspec/core/hooks_spec.rb +250 -0
  159. data/support/gems/rspec-core-2.11.1/spec/rspec/core/kernel_extensions_spec.rb +9 -0
  160. data/support/gems/rspec-core-2.11.1/spec/rspec/core/let_spec.rb +55 -0
  161. data/support/gems/rspec-core-2.11.1/spec/rspec/core/metadata_spec.rb +447 -0
  162. data/support/gems/rspec-core-2.11.1/spec/rspec/core/option_parser_spec.rb +166 -0
  163. data/support/gems/rspec-core-2.11.1/spec/rspec/core/pending_example_spec.rb +220 -0
  164. data/support/gems/rspec-core-2.11.1/spec/rspec/core/project_initializer_spec.rb +130 -0
  165. data/support/gems/rspec-core-2.11.1/spec/rspec/core/rake_task_spec.rb +138 -0
  166. data/support/gems/rspec-core-2.11.1/spec/rspec/core/reporter_spec.rb +103 -0
  167. data/support/gems/rspec-core-2.11.1/spec/rspec/core/resources/a_bar.rb +0 -0
  168. data/support/gems/rspec-core-2.11.1/spec/rspec/core/resources/a_foo.rb +0 -0
  169. data/support/gems/rspec-core-2.11.1/spec/rspec/core/resources/a_spec.rb +1 -0
  170. data/support/gems/rspec-core-2.11.1/spec/rspec/core/resources/custom_example_group_runner.rb +14 -0
  171. data/support/gems/rspec-core-2.11.1/spec/rspec/core/resources/formatter_specs.rb +60 -0
  172. data/support/gems/rspec-core-2.11.1/spec/rspec/core/resources/utf8_encoded.rb +8 -0
  173. data/support/gems/rspec-core-2.11.1/spec/rspec/core/rspec_matchers_spec.rb +45 -0
  174. data/support/gems/rspec-core-2.11.1/spec/rspec/core/ruby_project_spec.rb +24 -0
  175. data/support/gems/rspec-core-2.11.1/spec/rspec/core/runner_spec.rb +81 -0
  176. data/support/gems/rspec-core-2.11.1/spec/rspec/core/shared_context_spec.rb +67 -0
  177. data/support/gems/rspec-core-2.11.1/spec/rspec/core/shared_example_group_spec.rb +84 -0
  178. data/support/gems/rspec-core-2.11.1/spec/rspec/core/subject_spec.rb +244 -0
  179. data/support/gems/rspec-core-2.11.1/spec/rspec/core/world_spec.rb +144 -0
  180. data/support/gems/rspec-core-2.11.1/spec/rspec/core_spec.rb +35 -0
  181. data/support/gems/rspec-core-2.11.1/spec/spec_helper.rb +98 -0
  182. data/support/gems/rspec-core-2.11.1/spec/support/config_options_helper.rb +24 -0
  183. data/support/gems/rspec-core-2.11.1/spec/support/helper_methods.rb +5 -0
  184. data/support/gems/rspec-core-2.11.1/spec/support/matchers.rb +65 -0
  185. data/support/gems/rspec-core-2.11.1/spec/support/shared_example_groups.rb +41 -0
  186. data/support/gems/rspec-core-2.11.1/spec/support/spec_files.rb +44 -0
  187. data/support/gems/rspec-expectations-2.11.2/.document +5 -0
  188. data/support/gems/rspec-expectations-2.11.2/.yardopts +6 -0
  189. data/support/gems/rspec-expectations-2.11.2/Changelog.md +246 -0
  190. data/support/gems/rspec-expectations-2.11.2/License.txt +23 -0
  191. data/support/gems/rspec-expectations-2.11.2/README.md +224 -0
  192. data/support/gems/rspec-expectations-2.11.2/features/README.md +49 -0
  193. data/support/gems/rspec-expectations-2.11.2/features/Upgrade.md +53 -0
  194. data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/README.md +90 -0
  195. data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/be.feature +173 -0
  196. data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/be_within.feature +46 -0
  197. data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/cover.feature +45 -0
  198. data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/end_with.feature +46 -0
  199. data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/equality.feature +145 -0
  200. data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/exist.feature +43 -0
  201. data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/expect_change.feature +59 -0
  202. data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/expect_error.feature +138 -0
  203. data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/have.feature +103 -0
  204. data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/include.feature +121 -0
  205. data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/match.feature +50 -0
  206. data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/operators.feature +221 -0
  207. data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/predicates.feature +128 -0
  208. data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/respond_to.feature +78 -0
  209. data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/satisfy.feature +31 -0
  210. data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/start_with.feature +46 -0
  211. data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/throw_symbol.feature +85 -0
  212. data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/types.feature +114 -0
  213. data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/yield.feature +146 -0
  214. data/support/gems/rspec-expectations-2.11.2/features/custom_matchers/access_running_example.feature +53 -0
  215. data/support/gems/rspec-expectations-2.11.2/features/custom_matchers/define_diffable_matcher.feature +27 -0
  216. data/support/gems/rspec-expectations-2.11.2/features/custom_matchers/define_matcher.feature +340 -0
  217. data/support/gems/rspec-expectations-2.11.2/features/custom_matchers/define_matcher_outside_rspec.feature +38 -0
  218. data/support/gems/rspec-expectations-2.11.2/features/custom_matchers/define_matcher_with_fluent_interface.feature +24 -0
  219. data/support/gems/rspec-expectations-2.11.2/features/customized_message.feature +22 -0
  220. data/support/gems/rspec-expectations-2.11.2/features/diffing.feature +85 -0
  221. data/support/gems/rspec-expectations-2.11.2/features/implicit_docstrings.feature +52 -0
  222. data/support/gems/rspec-expectations-2.11.2/features/step_definitions/additional_cli_steps.rb +22 -0
  223. data/support/gems/rspec-expectations-2.11.2/features/support/env.rb +5 -0
  224. data/support/gems/rspec-expectations-2.11.2/features/syntax_configuration.feature +68 -0
  225. data/support/gems/rspec-expectations-2.11.2/features/test_frameworks/test_unit.feature +46 -0
  226. data/support/gems/rspec-expectations-2.11.2/lib/rspec-expectations.rb +1 -0
  227. data/support/gems/rspec-expectations-2.11.2/lib/rspec/expectations.rb +47 -0
  228. data/support/gems/rspec-expectations-2.11.2/lib/rspec/expectations/deprecation.rb +38 -0
  229. data/support/gems/rspec-expectations-2.11.2/lib/rspec/expectations/differ.rb +81 -0
  230. data/support/gems/rspec-expectations-2.11.2/lib/rspec/expectations/errors.rb +9 -0
  231. data/support/gems/rspec-expectations-2.11.2/lib/rspec/expectations/expectation_target.rb +58 -0
  232. data/support/gems/rspec-expectations-2.11.2/lib/rspec/expectations/extensions.rb +2 -0
  233. data/support/gems/rspec-expectations-2.11.2/lib/rspec/expectations/extensions/array.rb +9 -0
  234. data/support/gems/rspec-expectations-2.11.2/lib/rspec/expectations/extensions/object.rb +39 -0
  235. data/support/gems/rspec-expectations-2.11.2/lib/rspec/expectations/fail_with.rb +55 -0
  236. data/support/gems/rspec-expectations-2.11.2/lib/rspec/expectations/handler.rb +48 -0
  237. data/support/gems/rspec-expectations-2.11.2/lib/rspec/expectations/syntax.rb +110 -0
  238. data/support/gems/rspec-expectations-2.11.2/lib/rspec/expectations/version.rb +8 -0
  239. data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers.rb +689 -0
  240. data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/be_close.rb +9 -0
  241. data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in.rb +39 -0
  242. data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/base_matcher.rb +68 -0
  243. data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/be.rb +185 -0
  244. data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/be_instance_of.rb +11 -0
  245. data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/be_kind_of.rb +11 -0
  246. data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/be_within.rb +45 -0
  247. data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/change.rb +132 -0
  248. data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/cover.rb +21 -0
  249. data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/eq.rb +22 -0
  250. data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/eql.rb +23 -0
  251. data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/equal.rb +44 -0
  252. data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/exist.rb +26 -0
  253. data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/has.rb +47 -0
  254. data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/have.rb +107 -0
  255. data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/include.rb +51 -0
  256. data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/match.rb +12 -0
  257. data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/match_array.rb +45 -0
  258. data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/raise_error.rb +96 -0
  259. data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/respond_to.rb +73 -0
  260. data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/satisfy.rb +29 -0
  261. data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/start_and_end_with.rb +48 -0
  262. data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/throw_symbol.rb +93 -0
  263. data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/yield.rb +219 -0
  264. data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/compatibility.rb +14 -0
  265. data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/configuration.rb +66 -0
  266. data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/dsl.rb +24 -0
  267. data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/extensions/instance_eval_with_args.rb +39 -0
  268. data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/generated_descriptions.rb +36 -0
  269. data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/matcher.rb +299 -0
  270. data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/method_missing.rb +12 -0
  271. data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/operator_matcher.rb +84 -0
  272. data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/pretty.rb +60 -0
  273. data/support/gems/rspec-expectations-2.11.2/spec/rspec/expectations/differ_spec.rb +153 -0
  274. data/support/gems/rspec-expectations-2.11.2/spec/rspec/expectations/expectation_target_spec.rb +65 -0
  275. data/support/gems/rspec-expectations-2.11.2/spec/rspec/expectations/extensions/kernel_spec.rb +67 -0
  276. data/support/gems/rspec-expectations-2.11.2/spec/rspec/expectations/fail_with_spec.rb +70 -0
  277. data/support/gems/rspec-expectations-2.11.2/spec/rspec/expectations/handler_spec.rb +206 -0
  278. data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/base_matcher_spec.rb +60 -0
  279. data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/be_close_spec.rb +22 -0
  280. data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/be_instance_of_spec.rb +36 -0
  281. data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/be_kind_of_spec.rb +33 -0
  282. data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/be_spec.rb +452 -0
  283. data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/be_within_spec.rb +76 -0
  284. data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/change_spec.rb +522 -0
  285. data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/configuration_spec.rb +160 -0
  286. data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/cover_spec.rb +65 -0
  287. data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/description_generation_spec.rb +176 -0
  288. data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/dsl_spec.rb +57 -0
  289. data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/eq_spec.rb +50 -0
  290. data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/eql_spec.rb +37 -0
  291. data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/equal_spec.rb +57 -0
  292. data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/exist_spec.rb +104 -0
  293. data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/has_spec.rb +113 -0
  294. data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/have_spec.rb +458 -0
  295. data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/include_spec.rb +363 -0
  296. data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/match_array_spec.rb +120 -0
  297. data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/match_spec.rb +57 -0
  298. data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/matcher_spec.rb +434 -0
  299. data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/matchers_spec.rb +31 -0
  300. data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/method_missing_spec.rb +24 -0
  301. data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/operator_matcher_spec.rb +221 -0
  302. data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/raise_error_spec.rb +339 -0
  303. data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/respond_to_spec.rb +292 -0
  304. data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/satisfy_spec.rb +40 -0
  305. data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/start_with_end_with_spec.rb +174 -0
  306. data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/throw_symbol_spec.rb +111 -0
  307. data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/yield_spec.rb +374 -0
  308. data/support/gems/rspec-expectations-2.11.2/spec/spec_helper.rb +27 -0
  309. data/support/gems/rspec-expectations-2.11.2/spec/support/classes.rb +56 -0
  310. data/support/gems/rspec-expectations-2.11.2/spec/support/in_sub_process.rb +31 -0
  311. data/support/gems/rspec-expectations-2.11.2/spec/support/matchers.rb +22 -0
  312. data/support/gems/rspec-expectations-2.11.2/spec/support/ruby_version.rb +10 -0
  313. data/support/gems/rspec-mocks-2.11.1/.document +5 -0
  314. data/support/gems/rspec-mocks-2.11.1/.yardopts +6 -0
  315. data/support/gems/rspec-mocks-2.11.1/Changelog.md +199 -0
  316. data/support/gems/rspec-mocks-2.11.1/License.txt +23 -0
  317. data/support/gems/rspec-mocks-2.11.1/README.md +276 -0
  318. data/support/gems/rspec-mocks-2.11.1/features/README.md +67 -0
  319. data/support/gems/rspec-mocks-2.11.1/features/Scope.md +17 -0
  320. data/support/gems/rspec-mocks-2.11.1/features/Upgrade.md +22 -0
  321. data/support/gems/rspec-mocks-2.11.1/features/argument_matchers/README.md +27 -0
  322. data/support/gems/rspec-mocks-2.11.1/features/argument_matchers/explicit.feature +60 -0
  323. data/support/gems/rspec-mocks-2.11.1/features/argument_matchers/general_matchers.feature +85 -0
  324. data/support/gems/rspec-mocks-2.11.1/features/argument_matchers/type_matchers.feature +25 -0
  325. data/support/gems/rspec-mocks-2.11.1/features/message_expectations/README.md +58 -0
  326. data/support/gems/rspec-mocks-2.11.1/features/message_expectations/any_instance.feature +21 -0
  327. data/support/gems/rspec-mocks-2.11.1/features/message_expectations/block_local_expectations.feature.pending +55 -0
  328. data/support/gems/rspec-mocks-2.11.1/features/message_expectations/expect_message.feature +94 -0
  329. data/support/gems/rspec-mocks-2.11.1/features/message_expectations/receive_counts.feature +209 -0
  330. data/support/gems/rspec-mocks-2.11.1/features/message_expectations/warn_when_expectation_is_set_on_nil.feature +50 -0
  331. data/support/gems/rspec-mocks-2.11.1/features/method_stubs/README.md +43 -0
  332. data/support/gems/rspec-mocks-2.11.1/features/method_stubs/any_instance.feature +133 -0
  333. data/support/gems/rspec-mocks-2.11.1/features/method_stubs/as_null_object.feature +35 -0
  334. data/support/gems/rspec-mocks-2.11.1/features/method_stubs/simple_return_value.feature +64 -0
  335. data/support/gems/rspec-mocks-2.11.1/features/method_stubs/stub_chain.feature +51 -0
  336. data/support/gems/rspec-mocks-2.11.1/features/method_stubs/stub_implementation.feature +26 -0
  337. data/support/gems/rspec-mocks-2.11.1/features/method_stubs/to_ary.feature +47 -0
  338. data/support/gems/rspec-mocks-2.11.1/features/outside_rspec/configuration.feature +82 -0
  339. data/support/gems/rspec-mocks-2.11.1/features/outside_rspec/standalone.feature +32 -0
  340. data/support/gems/rspec-mocks-2.11.1/features/step_definitions/additional_cli_steps.rb +4 -0
  341. data/support/gems/rspec-mocks-2.11.1/features/stubbing_constants/README.md +62 -0
  342. data/support/gems/rspec-mocks-2.11.1/features/stubbing_constants/stub_defined_constant.feature +79 -0
  343. data/support/gems/rspec-mocks-2.11.1/features/stubbing_constants/stub_undefined_constant.feature +50 -0
  344. data/support/gems/rspec-mocks-2.11.1/features/support/env.rb +6 -0
  345. data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks.rb +39 -0
  346. data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/any_instance.rb +81 -0
  347. data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/any_instance/chain.rb +77 -0
  348. data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/any_instance/expectation_chain.rb +57 -0
  349. data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/any_instance/message_chains.rb +60 -0
  350. data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/any_instance/recorder.rb +197 -0
  351. data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/any_instance/stub_chain.rb +37 -0
  352. data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/any_instance/stub_chain_chain.rb +25 -0
  353. data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/argument_list_matcher.rb +93 -0
  354. data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/argument_matchers.rb +238 -0
  355. data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/error_generator.rb +114 -0
  356. data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/errors.rb +12 -0
  357. data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/example_methods.rb +95 -0
  358. data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/extensions/instance_exec.rb +34 -0
  359. data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/extensions/marshal.rb +23 -0
  360. data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/extensions/psych.rb +23 -0
  361. data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/framework.rb +20 -0
  362. data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/message_expectation.rb +488 -0
  363. data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/method_double.rb +196 -0
  364. data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/methods.rb +155 -0
  365. data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/mock.rb +7 -0
  366. data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/order_group.rb +40 -0
  367. data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/proxy.rb +190 -0
  368. data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/serialization.rb +34 -0
  369. data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/space.rb +34 -0
  370. data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/standalone.rb +3 -0
  371. data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/stub_const.rb +280 -0
  372. data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/test_double.rb +103 -0
  373. data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/version.rb +7 -0
  374. data/support/gems/rspec-mocks-2.11.1/lib/spec/mocks.rb +2 -0
  375. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/and_yield_spec.rb +114 -0
  376. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/any_instance/message_chains_spec.rb +40 -0
  377. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/any_instance_spec.rb +825 -0
  378. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/any_number_of_times_spec.rb +30 -0
  379. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/argument_expectation_spec.rb +34 -0
  380. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/at_least_spec.rb +142 -0
  381. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/at_most_spec.rb +90 -0
  382. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/block_return_value_spec.rb +53 -0
  383. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/bug_report_10260_spec.rb +8 -0
  384. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/bug_report_10263_spec.rb +25 -0
  385. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/bug_report_11545_spec.rb +32 -0
  386. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/bug_report_496_spec.rb +17 -0
  387. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/bug_report_600_spec.rb +22 -0
  388. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/bug_report_7611_spec.rb +16 -0
  389. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/bug_report_8165_spec.rb +31 -0
  390. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/bug_report_830_spec.rb +21 -0
  391. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/bug_report_957_spec.rb +22 -0
  392. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/double_spec.rb +12 -0
  393. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/failing_argument_matchers_spec.rb +95 -0
  394. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/hash_excluding_matcher_spec.rb +67 -0
  395. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/hash_including_matcher_spec.rb +90 -0
  396. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/mock_ordering_spec.rb +103 -0
  397. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/mock_space_spec.rb +58 -0
  398. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/mock_spec.rb +730 -0
  399. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/multiple_return_value_spec.rb +119 -0
  400. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/nil_expectation_warning_spec.rb +62 -0
  401. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/null_object_mock_spec.rb +106 -0
  402. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/once_counts_spec.rb +52 -0
  403. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/options_hash_spec.rb +35 -0
  404. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/partial_mock_spec.rb +156 -0
  405. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/partial_mock_using_mocks_directly_spec.rb +95 -0
  406. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/passing_argument_matchers_spec.rb +142 -0
  407. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/precise_counts_spec.rb +68 -0
  408. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/record_messages_spec.rb +26 -0
  409. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/serialization_spec.rb +111 -0
  410. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/stash_spec.rb +27 -0
  411. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/stub_chain_spec.rb +149 -0
  412. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/stub_const_spec.rb +309 -0
  413. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/stub_implementation_spec.rb +68 -0
  414. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/stub_spec.rb +238 -0
  415. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/stubbed_message_expectations_spec.rb +47 -0
  416. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/test_double_spec.rb +57 -0
  417. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/to_ary_spec.rb +40 -0
  418. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/twice_counts_spec.rb +66 -0
  419. data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks_spec.rb +51 -0
  420. data/support/gems/rspec-mocks-2.11.1/spec/spec_helper.rb +15 -0
  421. data/support/gems/rspec-rails-2.11.0/.document +5 -0
  422. data/support/gems/rspec-rails-2.11.0/.yardopts +8 -0
  423. data/support/gems/rspec-rails-2.11.0/Changelog.md +293 -0
  424. data/support/gems/rspec-rails-2.11.0/License.txt +22 -0
  425. data/support/gems/rspec-rails-2.11.0/README.md +494 -0
  426. data/support/gems/rspec-rails-2.11.0/features/Autotest.md +24 -0
  427. data/support/gems/rspec-rails-2.11.0/features/Generators.md +8 -0
  428. data/support/gems/rspec-rails-2.11.0/features/GettingStarted.md +84 -0
  429. data/support/gems/rspec-rails-2.11.0/features/README.md +56 -0
  430. data/support/gems/rspec-rails-2.11.0/features/RailsVersions.md +4 -0
  431. data/support/gems/rspec-rails-2.11.0/features/Transactions.md +84 -0
  432. data/support/gems/rspec-rails-2.11.0/features/Upgrade.md +117 -0
  433. data/support/gems/rspec-rails-2.11.0/features/controller_specs/Cookies.md +57 -0
  434. data/support/gems/rspec-rails-2.11.0/features/controller_specs/README.md +45 -0
  435. data/support/gems/rspec-rails-2.11.0/features/controller_specs/anonymous_controller.feature +330 -0
  436. data/support/gems/rspec-rails-2.11.0/features/controller_specs/bypass_rescue.feature +75 -0
  437. data/support/gems/rspec-rails-2.11.0/features/controller_specs/controller_spec.feature +35 -0
  438. data/support/gems/rspec-rails-2.11.0/features/controller_specs/isolation_from_views.feature +87 -0
  439. data/support/gems/rspec-rails-2.11.0/features/controller_specs/render_views.feature +114 -0
  440. data/support/gems/rspec-rails-2.11.0/features/helper_specs/helper_spec.feature +96 -0
  441. data/support/gems/rspec-rails-2.11.0/features/mailer_specs/url_helpers.feature +38 -0
  442. data/support/gems/rspec-rails-2.11.0/features/matchers/README.md +18 -0
  443. data/support/gems/rspec-rails-2.11.0/features/matchers/new_record_matcher.feature +28 -0
  444. data/support/gems/rspec-rails-2.11.0/features/matchers/redirect_to_matcher.feature +40 -0
  445. data/support/gems/rspec-rails-2.11.0/features/matchers/relation_match_array.feature +20 -0
  446. data/support/gems/rspec-rails-2.11.0/features/matchers/render_template_matcher.feature +28 -0
  447. data/support/gems/rspec-rails-2.11.0/features/mocks/mock_model.feature +147 -0
  448. data/support/gems/rspec-rails-2.11.0/features/mocks/stub_model.feature +58 -0
  449. data/support/gems/rspec-rails-2.11.0/features/model_specs/README.md +21 -0
  450. data/support/gems/rspec-rails-2.11.0/features/model_specs/errors_on.feature +33 -0
  451. data/support/gems/rspec-rails-2.11.0/features/model_specs/transactional_examples.feature +109 -0
  452. data/support/gems/rspec-rails-2.11.0/features/request_specs/request_spec.feature +49 -0
  453. data/support/gems/rspec-rails-2.11.0/features/routing_specs/README.md +17 -0
  454. data/support/gems/rspec-rails-2.11.0/features/routing_specs/be_routable_matcher.feature +80 -0
  455. data/support/gems/rspec-rails-2.11.0/features/routing_specs/named_routes.feature +18 -0
  456. data/support/gems/rspec-rails-2.11.0/features/routing_specs/route_to_matcher.feature +90 -0
  457. data/support/gems/rspec-rails-2.11.0/features/step_definitions/additional_cli_steps.rb +4 -0
  458. data/support/gems/rspec-rails-2.11.0/features/step_definitions/model_steps.rb +3 -0
  459. data/support/gems/rspec-rails-2.11.0/features/support/env.rb +53 -0
  460. data/support/gems/rspec-rails-2.11.0/features/view_specs/inferred_controller_path.feature +44 -0
  461. data/support/gems/rspec-rails-2.11.0/features/view_specs/stub_template.feature +51 -0
  462. data/support/gems/rspec-rails-2.11.0/features/view_specs/view_spec.feature +174 -0
  463. data/support/gems/rspec-rails-2.11.0/lib/autotest/rails_rspec2.rb +84 -0
  464. data/support/gems/rspec-rails-2.11.0/lib/generators/rspec.rb +25 -0
  465. data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/controller/controller_generator.rb +33 -0
  466. data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/controller/templates/controller_spec.rb +14 -0
  467. data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/controller/templates/view_spec.rb +5 -0
  468. data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/helper/helper_generator.rb +15 -0
  469. data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/helper/templates/helper_spec.rb +15 -0
  470. data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/install/install_generator.rb +24 -0
  471. data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/install/templates/.rspec +1 -0
  472. data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/install/templates/spec/spec_helper.rb +38 -0
  473. data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/integration/integration_generator.rb +27 -0
  474. data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/integration/templates/request_spec.rb +15 -0
  475. data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/mailer/mailer_generator.rb +20 -0
  476. data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/mailer/templates/fixture +3 -0
  477. data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/mailer/templates/mailer_spec.rb +23 -0
  478. data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/model/model_generator.rb +22 -0
  479. data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/model/templates/fixtures.yml +19 -0
  480. data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/model/templates/model_spec.rb +5 -0
  481. data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/observer/observer_generator.rb +12 -0
  482. data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/observer/templates/observer_spec.rb +5 -0
  483. data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/scaffold/scaffold_generator.rb +158 -0
  484. data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/scaffold/templates/controller_spec.rb +166 -0
  485. data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/scaffold/templates/edit_spec.rb +31 -0
  486. data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/scaffold/templates/index_spec.rb +32 -0
  487. data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/scaffold/templates/new_spec.rb +30 -0
  488. data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/scaffold/templates/routing_spec.rb +37 -0
  489. data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/scaffold/templates/show_spec.rb +28 -0
  490. data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/view/templates/view_spec.rb +5 -0
  491. data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/view/view_generator.rb +21 -0
  492. data/support/gems/rspec-rails-2.11.0/lib/rspec-rails.rb +14 -0
  493. data/support/gems/rspec-rails-2.11.0/lib/rspec/rails.rb +17 -0
  494. data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/adapters.rb +79 -0
  495. data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/example.rb +38 -0
  496. data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/example/controller_example_group.rb +128 -0
  497. data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/example/helper_example_group.rb +40 -0
  498. data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/example/mailer_example_group.rb +22 -0
  499. data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/example/model_example_group.rb +10 -0
  500. data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/example/rails_example_group.rb +14 -0
  501. data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/example/request_example_group.rb +23 -0
  502. data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/example/routing_example_group.rb +27 -0
  503. data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/example/view_example_group.rb +155 -0
  504. data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/extensions.rb +1 -0
  505. data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/extensions/active_record/base.rb +45 -0
  506. data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/fixture_support.rb +40 -0
  507. data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/matchers.rb +26 -0
  508. data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/matchers/be_a_new.rb +76 -0
  509. data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/matchers/be_new_record.rb +19 -0
  510. data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/matchers/have_extension.rb +35 -0
  511. data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/matchers/have_rendered.rb +40 -0
  512. data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/matchers/redirect_to.rb +37 -0
  513. data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/matchers/relation_match_array.rb +3 -0
  514. data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/matchers/routing_matchers.rb +107 -0
  515. data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/mocks.rb +243 -0
  516. data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/module_inclusion.rb +29 -0
  517. data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/tasks/rspec.rake +56 -0
  518. data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/vendor/capybara.rb +29 -0
  519. data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/vendor/webrat.rb +33 -0
  520. data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/version.rb +7 -0
  521. data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/view_assigns.rb +45 -0
  522. data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/view_rendering.rb +121 -0
  523. data/support/gems/rspec-rails-2.11.0/spec/autotest/rails_rspec2_spec.rb +36 -0
  524. data/support/gems/rspec-rails-2.11.0/spec/generators/rspec/controller/controller_generator_spec.rb +86 -0
  525. data/support/gems/rspec-rails-2.11.0/spec/generators/rspec/helper/helper_generator_spec.rb +30 -0
  526. data/support/gems/rspec-rails-2.11.0/spec/generators/rspec/install/install_generator_spec.rb +18 -0
  527. data/support/gems/rspec-rails-2.11.0/spec/generators/rspec/integration/integration_generator_spec.rb +44 -0
  528. data/support/gems/rspec-rails-2.11.0/spec/generators/rspec/mailer/mailer_generator_spec.rb +48 -0
  529. data/support/gems/rspec-rails-2.11.0/spec/generators/rspec/model/model_generator_spec.rb +52 -0
  530. data/support/gems/rspec-rails-2.11.0/spec/generators/rspec/observer/observer_generator_spec.rb +21 -0
  531. data/support/gems/rspec-rails-2.11.0/spec/generators/rspec/scaffold/scaffold_generator_spec.rb +107 -0
  532. data/support/gems/rspec-rails-2.11.0/spec/generators/rspec/view/view_generator_spec.rb +41 -0
  533. data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/assertion_adapter_spec.rb +28 -0
  534. data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/configuration_spec.rb +26 -0
  535. data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/deprecations_spec.rb +18 -0
  536. data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/example/controller_example_group_spec.rb +100 -0
  537. data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/example/helper_example_group_spec.rb +64 -0
  538. data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/example/mailer_example_group_spec.rb +21 -0
  539. data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/example/model_example_group_spec.rb +15 -0
  540. data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/example/request_example_group_spec.rb +17 -0
  541. data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/example/routing_example_group_spec.rb +32 -0
  542. data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/example/view_example_group_spec.rb +214 -0
  543. data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/extensions/active_model/errors_on_spec.rb +23 -0
  544. data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/extensions/active_record/records_spec.rb +9 -0
  545. data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/fixture_support_spec.rb +17 -0
  546. data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/matchers/be_a_new_spec.rb +142 -0
  547. data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/matchers/be_new_record_spec.rb +19 -0
  548. data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/matchers/be_routable_spec.rb +41 -0
  549. data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/matchers/errors_on_spec.rb +38 -0
  550. data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/matchers/have_rendered_spec.rb +93 -0
  551. data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/matchers/redirect_to_spec.rb +80 -0
  552. data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/matchers/relation_match_array_spec.rb +20 -0
  553. data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/matchers/route_to_spec.rb +152 -0
  554. data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/mocks/mock_model_spec.rb +379 -0
  555. data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/mocks/stub_model_spec.rb +154 -0
  556. data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/setup_and_teardown_adapter_spec.rb +32 -0
  557. data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/view_rendering_spec.rb +111 -0
  558. data/support/gems/rspec-rails-2.11.0/spec/spec_helper.rb +31 -0
  559. data/support/gems/rspec-rails-2.11.0/spec/support/ar_classes.rb +42 -0
  560. data/support/gems/rspec-rails-2.11.0/spec/support/helpers.rb +20 -0
  561. data/support/gems/rspec-rails-2.11.0/spec/support/matchers.rb +9 -0
  562. data/support/specifications/rspec-2.11.0.gemspec +39 -0
  563. data/support/specifications/rspec-core-2.11.1.gemspec +61 -0
  564. data/support/specifications/rspec-expectations-2.11.2.gemspec +40 -0
  565. data/support/specifications/rspec-mocks-2.11.1.gemspec +37 -0
  566. data/support/specifications/rspec-rails-2.11.0.gemspec +55 -0
  567. metadata +653 -0
@@ -0,0 +1,81 @@
1
+ require 'diff/lcs'
2
+ require 'diff/lcs/hunk'
3
+ require 'pp'
4
+
5
+ module RSpec
6
+ module Expectations
7
+ class Differ
8
+ # This is snagged from diff/lcs/ldiff.rb (which is a commandline tool)
9
+ def diff_as_string(data_new, data_old)
10
+ data_old = data_old.split(/\n/).map! { |e| e.chomp }
11
+ data_new = data_new.split(/\n/).map! { |e| e.chomp }
12
+ diffs = Diff::LCS.diff(data_old, data_new)
13
+ output = ""
14
+ return output if diffs.empty?
15
+ oldhunk = hunk = nil
16
+ file_length_difference = 0
17
+ diffs.each do |piece|
18
+ begin
19
+ hunk = Diff::LCS::Hunk.new(
20
+ data_old, data_new, piece, context_lines, file_length_difference
21
+ )
22
+ file_length_difference = hunk.file_length_difference
23
+ next unless oldhunk
24
+ # Hunks may overlap, which is why we need to be careful when our
25
+ # diff includes lines of context. Otherwise, we might print
26
+ # redundant lines.
27
+ if (context_lines > 0) and hunk.overlaps?(oldhunk)
28
+ hunk.unshift(oldhunk)
29
+ else
30
+ output << oldhunk.diff(format)
31
+ end
32
+ ensure
33
+ oldhunk = hunk
34
+ output << "\n"
35
+ end
36
+ end
37
+ #Handle the last remaining hunk
38
+ output << oldhunk.diff(format) << "\n"
39
+ end
40
+
41
+ def diff_as_object(actual, expected)
42
+ actual_as_string = object_to_string(actual)
43
+ expected_as_string = object_to_string(expected)
44
+ diff = diff_as_string(actual_as_string, expected_as_string)
45
+
46
+ if diff.empty?
47
+ "#{actual}.==(#{expected}) returned false even though the diff " \
48
+ "between #{actual} and #{expected} is empty. Check the " \
49
+ "implementation of #{actual}.==."
50
+ else
51
+ diff
52
+ end
53
+ end
54
+
55
+ protected
56
+
57
+ def format
58
+ :unified
59
+ end
60
+
61
+ def context_lines
62
+ 3
63
+ end
64
+
65
+ def object_to_string(object)
66
+ case object
67
+ when Hash
68
+ object.keys.sort_by { |k| k.to_s }.map do |k|
69
+ %(#{PP.singleline_pp(k, "")} => #{PP.singleline_pp(object[k], "")})
70
+ end.join(",\n")
71
+ when String
72
+ object =~ /\n/ ? object : object.inspect
73
+ else
74
+ PP.pp(object,"")
75
+ end
76
+ end
77
+ end
78
+
79
+ end
80
+ end
81
+
@@ -0,0 +1,9 @@
1
+ module RSpec
2
+ module Expectations
3
+ if defined?(Test::Unit::AssertionFailedError)
4
+ class ExpectationNotMetError < Test::Unit::AssertionFailedError; end
5
+ else
6
+ class ExpectationNotMetError < ::StandardError; end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,58 @@
1
+ module RSpec
2
+ module Expectations
3
+ # Wraps the target of an expectation.
4
+ # @example
5
+ # expect(something) # => ExpectationTarget wrapping something
6
+ #
7
+ # # used with `to`
8
+ # expect(actual).to eq(3)
9
+ #
10
+ # # with `to_not`
11
+ # expect(actual).to_not eq(3)
12
+ class ExpectationTarget
13
+ # @api private
14
+ def initialize(target)
15
+ @target = target
16
+ end
17
+
18
+ # Runs the given expectation, passing if `matcher` returns true.
19
+ # @example
20
+ # expect(value).to eq(5)
21
+ # expect { perform }.to raise_error
22
+ # @param [Matcher]
23
+ # matcher
24
+ # @param [String] message optional message to display when the expectation fails
25
+ # @return [Boolean] true if the expectation succeeds (else raises)
26
+ # @see RSpec::Matchers
27
+ def to(matcher=nil, message=nil, &block)
28
+ prevent_operator_matchers(:to, matcher)
29
+ RSpec::Expectations::PositiveExpectationHandler.handle_matcher(@target, matcher, message, &block)
30
+ end
31
+
32
+ # Runs the given expectation, passing if `matcher` returns false.
33
+ # @example
34
+ # expect(value).to_not eq(5)
35
+ # expect(value).not_to eq(5)
36
+ # @param [Matcher]
37
+ # matcher
38
+ # @param [String] message optional message to display when the expectation fails
39
+ # @return [Boolean] false if the negative expectation succeeds (else raises)
40
+ # @see RSpec::Matchers
41
+ def to_not(matcher=nil, message=nil, &block)
42
+ prevent_operator_matchers(:to_not, matcher)
43
+ RSpec::Expectations::NegativeExpectationHandler.handle_matcher(@target, matcher, message, &block)
44
+ end
45
+ alias not_to to_not
46
+
47
+ private
48
+
49
+ def prevent_operator_matchers(verb, matcher)
50
+ return if matcher
51
+
52
+ raise ArgumentError, "The expect syntax does not support operator matchers, " +
53
+ "so you must pass a matcher to `##{verb}`."
54
+ end
55
+ end
56
+ end
57
+ end
58
+
@@ -0,0 +1,2 @@
1
+ require 'rspec/expectations/extensions/array'
2
+ require 'rspec/expectations/extensions/object'
@@ -0,0 +1,9 @@
1
+ # @private
2
+ class Array
3
+ unless public_instance_methods.map {|m| m.to_s}.include?('none?')
4
+ # Supports +none?+ on early patch levels of Ruby 1.8.6
5
+ def none?(&block)
6
+ !any?(&block)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,39 @@
1
+ module RSpec
2
+ module Expectations
3
+ module DeprecatedConstants
4
+ # Displays deprecation warning when it captures Rspec and Spec. Otherwise
5
+ # delegates to super.
6
+ def const_missing(name)
7
+ case name
8
+ when :Rspec, :Spec
9
+ RSpec.warn_deprecation <<-WARNING
10
+ *****************************************************************
11
+ DEPRECATION WARNING: you are using a deprecated constant that will
12
+ be removed from a future version of RSpec.
13
+
14
+ #{caller(0)[2]}
15
+
16
+ * #{name} is deprecated.
17
+ * RSpec is the new top-level module in RSpec-2
18
+ ***************************************************************
19
+ WARNING
20
+ RSpec
21
+ else
22
+ begin
23
+ super
24
+ rescue Exception => e
25
+ e.backtrace.reject! {|l| l =~ Regexp.compile(__FILE__) }
26
+ raise e
27
+ end
28
+ end
29
+ end
30
+ end
31
+
32
+ # @deprecated (no replacement)
33
+ def differ=(ignore)
34
+ RSpec.deprecate("RSpec::Expectations.differ=(differ)", "nothing at all (diffing is now automatic and no longer configurable)")
35
+ end
36
+ end
37
+ end
38
+
39
+ extend RSpec::Expectations::DeprecatedConstants
@@ -0,0 +1,55 @@
1
+ module RSpec
2
+ module Expectations
3
+ class << self
4
+ # @private
5
+ def differ
6
+ @differ ||= Differ.new
7
+ end
8
+
9
+ # Raises an RSpec::Expectations::ExpectationNotMetError with message.
10
+ # @param [String] message
11
+ # @param [Object] expected
12
+ # @param [Object] actual
13
+ #
14
+ # Adds a diff to the failure message when `expected` and `actual` are
15
+ # both present.
16
+ def fail_with(message, expected=nil, actual=nil)
17
+ if !message
18
+ raise ArgumentError, "Failure message is nil. Does your matcher define the " +
19
+ "appropriate failure_message_for_* method to return a string?"
20
+ end
21
+
22
+ if actual && expected
23
+ if all_strings?(actual, expected)
24
+ if any_multiline_strings?(actual, expected)
25
+ expected = expected.join(',') if Array === expected
26
+ message << "\nDiff:" << differ.diff_as_string(actual, expected)
27
+ end
28
+ elsif no_procs?(actual, expected) && no_numbers?(actual, expected)
29
+ message << "\nDiff:" << differ.diff_as_object(actual, expected)
30
+ end
31
+ end
32
+
33
+ raise(RSpec::Expectations::ExpectationNotMetError.new(message))
34
+ end
35
+
36
+ private
37
+
38
+ def no_procs?(*args)
39
+ args.flatten.none? {|a| Proc === a}
40
+ end
41
+
42
+ def all_strings?(*args)
43
+ args.flatten.all? {|a| String === a}
44
+ end
45
+
46
+ def any_multiline_strings?(*args)
47
+ all_strings?(*args) && args.any? {|a| a =~ /\n/}
48
+ end
49
+
50
+ def no_numbers?(*args)
51
+ args.flatten.none? {|a| Numeric === a}
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,48 @@
1
+ module RSpec
2
+ module Expectations
3
+ class PositiveExpectationHandler
4
+ def self.handle_matcher(actual, matcher, message=nil, &block)
5
+ ::RSpec::Matchers.last_should = :should
6
+ ::RSpec::Matchers.last_matcher = matcher
7
+ return ::RSpec::Matchers::BuiltIn::PositiveOperatorMatcher.new(actual) if matcher.nil?
8
+
9
+ match = matcher.matches?(actual, &block)
10
+ return match if match
11
+
12
+ message ||= matcher.respond_to?(:failure_message_for_should) ?
13
+ matcher.failure_message_for_should :
14
+ matcher.failure_message
15
+
16
+ if matcher.respond_to?(:diffable?) && matcher.diffable?
17
+ ::RSpec::Expectations.fail_with message, matcher.expected, matcher.actual
18
+ else
19
+ ::RSpec::Expectations.fail_with message
20
+ end
21
+ end
22
+ end
23
+
24
+ class NegativeExpectationHandler
25
+ def self.handle_matcher(actual, matcher, message=nil, &block)
26
+ ::RSpec::Matchers.last_should = :should_not
27
+ ::RSpec::Matchers.last_matcher = matcher
28
+ return ::RSpec::Matchers::BuiltIn::NegativeOperatorMatcher.new(actual) if matcher.nil?
29
+
30
+ match = matcher.respond_to?(:does_not_match?) ?
31
+ !matcher.does_not_match?(actual, &block) :
32
+ matcher.matches?(actual, &block)
33
+ return match unless match
34
+
35
+ message ||= matcher.respond_to?(:failure_message_for_should_not) ?
36
+ matcher.failure_message_for_should_not :
37
+ matcher.negative_failure_message
38
+
39
+ if matcher.respond_to?(:diffable?) && matcher.diffable?
40
+ ::RSpec::Expectations.fail_with message, matcher.expected, matcher.actual
41
+ else
42
+ ::RSpec::Expectations.fail_with message
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
48
+
@@ -0,0 +1,110 @@
1
+ module RSpec
2
+ module Expectations
3
+ # @api private
4
+ # Provides methods for enabling and disabling the available
5
+ # syntaxes provided by rspec-expectations.
6
+ module Syntax
7
+ extend self
8
+
9
+ # @method should
10
+ # Passes if `matcher` returns true. Available on every `Object`.
11
+ # @example
12
+ # actual.should eq expected
13
+ # actual.should match /expression/
14
+ # @param [Matcher]
15
+ # matcher
16
+ # @param [String] message optional message to display when the expectation fails
17
+ # @return [Boolean] true if the expectation succeeds (else raises)
18
+ # @see RSpec::Matchers
19
+
20
+ # @method should_not
21
+ # Passes if `matcher` returns false. Available on every `Object`.
22
+ # @example
23
+ # actual.should_not eq expected
24
+ # @param [Matcher]
25
+ # matcher
26
+ # @param [String] message optional message to display when the expectation fails
27
+ # @return [Boolean] false if the negative expectation succeeds (else raises)
28
+ # @see RSpec::Matchers
29
+
30
+ # @method expect
31
+ # Supports `expect(actual).to matcher` syntax by wrapping `actual` in an
32
+ # `ExpectationTarget`.
33
+ # @example
34
+ # expect(actual).to eq(expected)
35
+ # expect(actual).to_not eq(expected)
36
+ # @return [ExpectationTarget]
37
+ # @see ExpectationTarget#to
38
+ # @see ExpectationTarget#to_not
39
+
40
+ # @api private
41
+ # Determines where we add `should` and `should_not`.
42
+ def default_should_host
43
+ @default_should_host ||= ::Object.ancestors.last
44
+ end
45
+
46
+ # @api private
47
+ # Enables the `should` syntax.
48
+ def enable_should(syntax_host = default_should_host)
49
+ return if should_enabled?(syntax_host)
50
+
51
+ syntax_host.module_eval do
52
+ def should(matcher=nil, message=nil, &block)
53
+ ::RSpec::Expectations::PositiveExpectationHandler.handle_matcher(self, matcher, message, &block)
54
+ end
55
+
56
+ def should_not(matcher=nil, message=nil, &block)
57
+ ::RSpec::Expectations::NegativeExpectationHandler.handle_matcher(self, matcher, message, &block)
58
+ end
59
+ end
60
+ end
61
+
62
+ # @api private
63
+ # Disables the `should` syntax.
64
+ def disable_should(syntax_host = default_should_host)
65
+ return unless should_enabled?(syntax_host)
66
+
67
+ syntax_host.module_eval do
68
+ undef should
69
+ undef should_not
70
+ end
71
+ end
72
+
73
+ # @api private
74
+ # Enables the `expect` syntax.
75
+ def enable_expect(syntax_host = ::RSpec::Matchers)
76
+ return if expect_enabled?(syntax_host)
77
+
78
+ syntax_host.module_eval do
79
+ def expect(*target, &target_block)
80
+ target << target_block if block_given?
81
+ raise ArgumentError.new("You must pass an argument or a block to #expect but not both.") unless target.size == 1
82
+ ::RSpec::Expectations::ExpectationTarget.new(target.first)
83
+ end
84
+ end
85
+ end
86
+
87
+ # @api private
88
+ # Disables the `expect` syntax.
89
+ def disable_expect(syntax_host = ::RSpec::Matchers)
90
+ return unless expect_enabled?(syntax_host)
91
+
92
+ syntax_host.module_eval do
93
+ undef expect
94
+ end
95
+ end
96
+
97
+ # @api private
98
+ # Indicates whether or not the `should` syntax is enabled.
99
+ def should_enabled?(syntax_host = default_should_host)
100
+ syntax_host.method_defined?(:should)
101
+ end
102
+
103
+ # @api private
104
+ # Indicates whether or not the `expect` syntax is enabled.
105
+ def expect_enabled?(syntax_host = ::RSpec::Matchers)
106
+ syntax_host.method_defined?(:expect)
107
+ end
108
+ end
109
+ end
110
+ end
@@ -0,0 +1,8 @@
1
+ module RSpec
2
+ module Expectations
3
+ # @private
4
+ module Version
5
+ STRING = '2.11.2'
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,689 @@
1
+ module RSpec
2
+ # RSpec::Matchers provides a number of useful matchers we use to compose
3
+ # expectations. A matcher is any object that responds to the following:
4
+ #
5
+ # matches?(actual)
6
+ # failure_message_for_should
7
+ #
8
+ # These methods are also part of the matcher protocol, but are optional:
9
+ #
10
+ # does_not_match?(actual)
11
+ # failure_message_for_should_not
12
+ # description
13
+ #
14
+ # ## Predicates
15
+ #
16
+ # In addition to matchers that are defined explicitly, RSpec will create
17
+ # custom matchers on the fly for any arbitrary predicate, giving your specs a
18
+ # much more natural language feel.
19
+ #
20
+ # A Ruby predicate is a method that ends with a "?" and returns true or false.
21
+ # Common examples are `empty?`, `nil?`, and `instance_of?`.
22
+ #
23
+ # All you need to do is write `should be_` followed by the predicate without
24
+ # the question mark, and RSpec will figure it out from there. For example:
25
+ #
26
+ # [].should be_empty # => [].empty?() | passes
27
+ # [].should_not be_empty # => [].empty?() | fails
28
+ #
29
+ # In addtion to prefixing the predicate matchers with "be_", you can also use "be_a_"
30
+ # and "be_an_", making your specs read much more naturally:
31
+ #
32
+ # "a string".should be_an_instance_of(String) =>"a string".instance_of?(String) #passes
33
+ #
34
+ # 3.should be_a_kind_of(Fixnum) # => 3.kind_of?(Numeric) | passes
35
+ # 3.should be_a_kind_of(Numeric) # => 3.kind_of?(Numeric) | passes
36
+ # 3.should be_an_instance_of(Fixnum) # => 3.instance_of?(Fixnum) | passes
37
+ # 3.should_not be_instance_of(Numeric) # => 3.instance_of?(Numeric) | fails
38
+ #
39
+ # RSpec will also create custom matchers for predicates like `has_key?`. To
40
+ # use this feature, just state that the object should have_key(:key) and RSpec will
41
+ # call has_key?(:key) on the target. For example:
42
+ #
43
+ # {:a => "A"}.should have_key(:a) # => {:a => "A"}.has_key?(:a) | passes
44
+ # {:a => "A"}.should have_key(:b) # => {:a => "A"}.has_key?(:b) | fails
45
+ #
46
+ # You can use this feature to invoke any predicate that begins with "has_", whether it is
47
+ # part of the Ruby libraries (like `Hash#has_key?`) or a method you wrote on your own class.
48
+ #
49
+ # ## Custom Matchers
50
+ #
51
+ # When you find that none of the stock matchers provide a natural feeling
52
+ # expectation, you can very easily write your own using RSpec's matcher DSL
53
+ # or writing one from scratch.
54
+ #
55
+ # ### Matcher DSL
56
+ #
57
+ # Imagine that you are writing a game in which players can be in various
58
+ # zones on a virtual board. To specify that bob should be in zone 4, you
59
+ # could say:
60
+ #
61
+ # bob.current_zone.should eql(Zone.new("4"))
62
+ #
63
+ # But you might find it more expressive to say:
64
+ #
65
+ # bob.should be_in_zone("4")
66
+ #
67
+ # and/or
68
+ #
69
+ # bob.should_not be_in_zone("3")
70
+ #
71
+ # You can create such a matcher like so:
72
+ #
73
+ # RSpec::Matchers.define :be_in_zone do |zone|
74
+ # match do |player|
75
+ # player.in_zone?(zone)
76
+ # end
77
+ # end
78
+ #
79
+ # This will generate a <tt>be_in_zone</tt> method that returns a matcher
80
+ # with logical default messages for failures. You can override the failure
81
+ # messages and the generated description as follows:
82
+ #
83
+ # RSpec::Matchers.define :be_in_zone do |zone|
84
+ # match do |player|
85
+ # player.in_zone?(zone)
86
+ # end
87
+ #
88
+ # failure_message_for_should do |player|
89
+ # # generate and return the appropriate string.
90
+ # end
91
+ #
92
+ # failure_message_for_should_not do |player|
93
+ # # generate and return the appropriate string.
94
+ # end
95
+ #
96
+ # description do
97
+ # # generate and return the appropriate string.
98
+ # end
99
+ # end
100
+ #
101
+ # Each of the message-generation methods has access to the block arguments
102
+ # passed to the <tt>create</tt> method (in this case, <tt>zone</tt>). The
103
+ # failure message methods (<tt>failure_message_for_should</tt> and
104
+ # <tt>failure_message_for_should_not</tt>) are passed the actual value (the
105
+ # receiver of <tt>should</tt> or <tt>should_not</tt>).
106
+ #
107
+ # ### Custom Matcher from scratch
108
+ #
109
+ # You could also write a custom matcher from scratch, as follows:
110
+ #
111
+ # class BeInZone
112
+ # def initialize(expected)
113
+ # @expected = expected
114
+ # end
115
+ #
116
+ # def matches?(target)
117
+ # @target = target
118
+ # @target.current_zone.eql?(Zone.new(@expected))
119
+ # end
120
+ #
121
+ # def failure_message_for_should
122
+ # "expected #{@target.inspect} to be in Zone #{@expected}"
123
+ # end
124
+ #
125
+ # def failure_message_for_should_not
126
+ # "expected #{@target.inspect} not to be in Zone #{@expected}"
127
+ # end
128
+ # end
129
+ #
130
+ # ... and a method like this:
131
+ #
132
+ # def be_in_zone(expected)
133
+ # BeInZone.new(expected)
134
+ # end
135
+ #
136
+ # And then expose the method to your specs. This is normally done
137
+ # by including the method and the class in a module, which is then
138
+ # included in your spec:
139
+ #
140
+ # module CustomGameMatchers
141
+ # class BeInZone
142
+ # # ...
143
+ # end
144
+ #
145
+ # def be_in_zone(expected)
146
+ # # ...
147
+ # end
148
+ # end
149
+ #
150
+ # describe "Player behaviour" do
151
+ # include CustomGameMatchers
152
+ # # ...
153
+ # end
154
+ #
155
+ # or you can include in globally in a spec_helper.rb file <tt>require</tt>d
156
+ # from your spec file(s):
157
+ #
158
+ # RSpec::configure do |config|
159
+ # config.include(CustomGameMatchers)
160
+ # end
161
+ module Matchers
162
+ # Include Matchers for other test frameworks. Note that MiniTest _must_
163
+ # come before TU because on ruby 1.9, T::U::TC is a subclass of MT::U::TC
164
+ # and a 1.9 bug can lead to infinite recursion from the `super` call in our
165
+ # method_missing hook. See this gist for more info:
166
+ # https://gist.github.com/845896
167
+ if defined?(MiniTest::Unit::TestCase)
168
+ MiniTest::Unit::TestCase.send(:include, self)
169
+ end
170
+ if defined?(Test::Unit::TestCase)
171
+ Test::Unit::TestCase.send(:include, self)
172
+ end
173
+ end
174
+ end
175
+
176
+ require 'rspec/matchers/extensions/instance_eval_with_args'
177
+ require 'rspec/matchers/pretty'
178
+
179
+ require 'rspec/matchers/built_in'
180
+ require 'rspec/matchers/matcher'
181
+ require 'rspec/matchers/operator_matcher'
182
+ require 'rspec/matchers/be_close'
183
+
184
+ require 'rspec/matchers/generated_descriptions'
185
+ require 'rspec/matchers/method_missing'
186
+ require 'rspec/matchers/compatibility'
187
+ require 'rspec/matchers/dsl'
188
+
189
+ module RSpec
190
+ module Matchers
191
+
192
+ # Passes if actual is truthy (anything but false or nil)
193
+ def be_true
194
+ BuiltIn::BeTrue.new
195
+ end
196
+
197
+ # Passes if actual is falsy (false or nil)
198
+ def be_false
199
+ BuiltIn::BeFalse.new
200
+ end
201
+
202
+ # Passes if actual is nil
203
+ def be_nil
204
+ BuiltIn::BeNil.new
205
+ end
206
+
207
+ # @example
208
+ # actual.should be_true
209
+ # actual.should be_false
210
+ # actual.should be_nil
211
+ # actual.should be_[arbitrary_predicate](*args)
212
+ # actual.should_not be_nil
213
+ # actual.should_not be_[arbitrary_predicate](*args)
214
+ #
215
+ # Given true, false, or nil, will pass if actual value is true, false or
216
+ # nil (respectively). Given no args means the caller should satisfy an if
217
+ # condition (to be or not to be).
218
+ #
219
+ # Predicates are any Ruby method that ends in a "?" and returns true or
220
+ # false. Given be_ followed by arbitrary_predicate (without the "?"),
221
+ # RSpec will match convert that into a query against the target object.
222
+ #
223
+ # The arbitrary_predicate feature will handle any predicate prefixed with
224
+ # "be_an_" (e.g. be_an_instance_of), "be_a_" (e.g. be_a_kind_of) or "be_"
225
+ # (e.g. be_empty), letting you choose the prefix that best suits the
226
+ # predicate.
227
+ def be(*args)
228
+ args.empty? ?
229
+ Matchers::BuiltIn::Be.new : equal(*args)
230
+ end
231
+
232
+ # passes if target.kind_of?(klass)
233
+ def be_a(klass)
234
+ be_a_kind_of(klass)
235
+ end
236
+
237
+ alias_method :be_an, :be_a
238
+
239
+ # Passes if actual.instance_of?(expected)
240
+ #
241
+ # @example
242
+ #
243
+ # 5.should be_instance_of(Fixnum)
244
+ # 5.should_not be_instance_of(Numeric)
245
+ # 5.should_not be_instance_of(Float)
246
+ def be_an_instance_of(expected)
247
+ BuiltIn::BeAnInstanceOf.new(expected)
248
+ end
249
+
250
+ alias_method :be_instance_of, :be_an_instance_of
251
+
252
+ # Passes if actual.kind_of?(expected)
253
+ #
254
+ # @example
255
+ #
256
+ # 5.should be_kind_of(Fixnum)
257
+ # 5.should be_kind_of(Numeric)
258
+ # 5.should_not be_kind_of(Float)
259
+ def be_a_kind_of(expected)
260
+ BuiltIn::BeAKindOf.new(expected)
261
+ end
262
+
263
+ alias_method :be_kind_of, :be_a_kind_of
264
+
265
+ # Passes if actual == expected +/- delta
266
+ #
267
+ # @example
268
+ #
269
+ # result.should be_within(0.5).of(3.0)
270
+ # result.should_not be_within(0.5).of(3.0)
271
+ def be_within(delta)
272
+ BuiltIn::BeWithin.new(delta)
273
+ end
274
+
275
+ # Applied to a proc, specifies that its execution will cause some value to
276
+ # change.
277
+ #
278
+ # @param [Object] receiver
279
+ # @param [Symbol] message the message to send the receiver
280
+ #
281
+ # You can either pass <tt>receiver</tt> and <tt>message</tt>, or a block,
282
+ # but not both.
283
+ #
284
+ # When passing a block, it must use the <tt>{ ... }</tt> format, not
285
+ # do/end, as <tt>{ ... }</tt> binds to the +change+ method, whereas do/end
286
+ # would errantly bind to the +should+ or +should_not+ method.
287
+ #
288
+ # @example
289
+ #
290
+ # lambda {
291
+ # team.add_player(player)
292
+ # }.should change(roster, :count)
293
+ #
294
+ # lambda {
295
+ # team.add_player(player)
296
+ # }.should change(roster, :count).by(1)
297
+ #
298
+ # lambda {
299
+ # team.add_player(player)
300
+ # }.should change(roster, :count).by_at_least(1)
301
+ #
302
+ # lambda {
303
+ # team.add_player(player)
304
+ # }.should change(roster, :count).by_at_most(1)
305
+ #
306
+ # string = "string"
307
+ # lambda {
308
+ # string.reverse!
309
+ # }.should change { string }.from("string").to("gnirts")
310
+ #
311
+ # lambda {
312
+ # person.happy_birthday
313
+ # }.should change(person, :birthday).from(32).to(33)
314
+ #
315
+ # lambda {
316
+ # employee.develop_great_new_social_networking_app
317
+ # }.should change(employee, :title).from("Mail Clerk").to("CEO")
318
+ #
319
+ # lambda {
320
+ # doctor.leave_office
321
+ # }.should change(doctor, :sign).from(/is in/).to(/is out/)
322
+ #
323
+ # user = User.new(:type => "admin")
324
+ # lambda {
325
+ # user.symbolize_type
326
+ # }.should change(user, :type).from(String).to(Symbol)
327
+ #
328
+ # == Notes
329
+ #
330
+ # Evaluates <tt>receiver.message</tt> or <tt>block</tt> before and after it
331
+ # evaluates the proc object (generated by the lambdas in the examples
332
+ # above).
333
+ #
334
+ # <tt>should_not change</tt> only supports the form with no subsequent
335
+ # calls to <tt>by</tt>, <tt>by_at_least</tt>, <tt>by_at_most</tt>,
336
+ # <tt>to</tt> or <tt>from</tt>.
337
+ def change(receiver=nil, message=nil, &block)
338
+ BuiltIn::Change.new(receiver, message, &block)
339
+ end
340
+
341
+ # Passes if actual covers expected. This works for
342
+ # Ranges. You can also pass in multiple args
343
+ # and it will only pass if all args are found in Range.
344
+ #
345
+ # @example
346
+ # (1..10).should cover(5)
347
+ # (1..10).should cover(4, 6)
348
+ # (1..10).should cover(4, 6, 11) # will fail
349
+ # (1..10).should_not cover(11)
350
+ # (1..10).should_not cover(5) # will fail
351
+ #
352
+ # ### Warning:: Ruby >= 1.9 only
353
+ def cover(*values)
354
+ BuiltIn::Cover.new(*values)
355
+ end if (1..2).respond_to?(:cover?)
356
+
357
+ # Matches if the actual value ends with the expected value(s). In the case
358
+ # of a string, matches against the last `expected.length` characters of the
359
+ # actual string. In the case of an array, matches against the last
360
+ # `expected.length` elements of the actual array.
361
+ #
362
+ # @example
363
+ #
364
+ # "this string".should end_with "string"
365
+ # [0, 1, 2, 3, 4].should end_with 4
366
+ # [0, 2, 3, 4, 4].should end_with 3, 4
367
+ def end_with(*expected)
368
+ BuiltIn::EndWith.new(*expected)
369
+ end
370
+
371
+ # Passes if <tt>actual == expected</tt>.
372
+ #
373
+ # See http://www.ruby-doc.org/core/classes/Object.html#M001057 for more information about equality in Ruby.
374
+ #
375
+ # @example
376
+ #
377
+ # 5.should eq(5)
378
+ # 5.should_not eq(3)
379
+ def eq(expected)
380
+ BuiltIn::Eq.new(expected)
381
+ end
382
+
383
+ # Passes if +actual.eql?(expected)+
384
+ #
385
+ # See http://www.ruby-doc.org/core/classes/Object.html#M001057 for more information about equality in Ruby.
386
+ #
387
+ # @example
388
+ #
389
+ # 5.should eql(5)
390
+ # 5.should_not eql(3)
391
+ def eql(expected)
392
+ BuiltIn::Eql.new(expected)
393
+ end
394
+
395
+ # Passes if <tt>actual.equal?(expected)</tt> (object identity).
396
+ #
397
+ # See http://www.ruby-doc.org/core/classes/Object.html#M001057 for more information about equality in Ruby.
398
+ #
399
+ # @example
400
+ #
401
+ # 5.should equal(5) # Fixnums are equal
402
+ # "5".should_not equal("5") # Strings that look the same are not the same object
403
+ def equal(expected)
404
+ BuiltIn::Equal.new(expected)
405
+ end
406
+
407
+ # Passes if `actual.exist?` or `actual.exists?`
408
+ #
409
+ # @example
410
+ # File.should exist("path/to/file")
411
+ def exist(*args)
412
+ BuiltIn::Exist.new(*args)
413
+ end
414
+
415
+ # Passes if receiver is a collection with the submitted number of items OR
416
+ # if the receiver OWNS a collection with the submitted number of items.
417
+ #
418
+ # If the receiver OWNS the collection, you must use the name of the
419
+ # collection. So if a `Team` instance has a collection named `#players`,
420
+ # you must use that name to set the expectation.
421
+ #
422
+ # If the receiver IS the collection, you can use any name you like for
423
+ # `named_collection`. We'd recommend using either "elements", "members", or
424
+ # "items" as these are all standard ways of describing the things IN a
425
+ # collection.
426
+ #
427
+ # This also works for Strings, letting you set expectations about their
428
+ # lengths.
429
+ #
430
+ # @example
431
+ #
432
+ # # Passes if team.players.size == 11
433
+ # team.should have(11).players
434
+ #
435
+ # # Passes if [1,2,3].length == 3
436
+ # [1,2,3].should have(3).items #"items" is pure sugar
437
+ #
438
+ # # Passes if ['a', 'b', 'c'].count == 3
439
+ # [1,2,3].should have(3).items #"items" is pure sugar
440
+ #
441
+ # # Passes if "this string".length == 11
442
+ # "this string".should have(11).characters #"characters" is pure sugar
443
+ def have(n)
444
+ BuiltIn::Have.new(n)
445
+ end
446
+ alias :have_exactly :have
447
+
448
+ # Exactly like have() with >=.
449
+ #
450
+ # @example
451
+ # "this".should have_at_least(3).letters
452
+ #
453
+ # ### Warning:
454
+ #
455
+ # `should_not have_at_least` is not supported
456
+ def have_at_least(n)
457
+ BuiltIn::Have.new(n, :at_least)
458
+ end
459
+
460
+ # Exactly like have() with <=.
461
+ #
462
+ # @example
463
+ # should have_at_most(number).items
464
+ #
465
+ # ### Warning:
466
+ #
467
+ # `should_not have_at_most` is not supported
468
+ def have_at_most(n)
469
+ BuiltIn::Have.new(n, :at_most)
470
+ end
471
+
472
+ # Passes if actual includes expected. This works for
473
+ # collections and Strings. You can also pass in multiple args
474
+ # and it will only pass if all args are found in collection.
475
+ #
476
+ # @example
477
+ #
478
+ # [1,2,3].should include(3)
479
+ # [1,2,3].should include(2,3) #would pass
480
+ # [1,2,3].should include(2,3,4) #would fail
481
+ # [1,2,3].should_not include(4)
482
+ # "spread".should include("read")
483
+ # "spread".should_not include("red")
484
+ def include(*expected)
485
+ BuiltIn::Include.new(*expected)
486
+ end
487
+
488
+ # Given a Regexp or String, passes if actual.match(pattern)
489
+ #
490
+ # @example
491
+ #
492
+ # email.should match(/^([^\s]+)((?:[-a-z0-9]+\.)+[a-z]{2,})$/i)
493
+ # email.should match("@example.com")
494
+ def match(expected)
495
+ BuiltIn::Match.new(expected)
496
+ end
497
+
498
+ # With no args, matches if any error is raised.
499
+ # With a named error, matches only if that specific error is raised.
500
+ # With a named error and messsage specified as a String, matches only if both match.
501
+ # With a named error and messsage specified as a Regexp, matches only if both match.
502
+ # Pass an optional block to perform extra verifications on the exception matched
503
+ #
504
+ # @example
505
+ #
506
+ # lambda { do_something_risky }.should raise_error
507
+ # lambda { do_something_risky }.should raise_error(PoorRiskDecisionError)
508
+ # lambda { do_something_risky }.should raise_error(PoorRiskDecisionError) { |error| error.data.should == 42 }
509
+ # lambda { do_something_risky }.should raise_error(PoorRiskDecisionError, "that was too risky")
510
+ # lambda { do_something_risky }.should raise_error(PoorRiskDecisionError, /oo ri/)
511
+ #
512
+ # lambda { do_something_risky }.should_not raise_error
513
+ # lambda { do_something_risky }.should_not raise_error(PoorRiskDecisionError)
514
+ # lambda { do_something_risky }.should_not raise_error(PoorRiskDecisionError, "that was too risky")
515
+ # lambda { do_something_risky }.should_not raise_error(PoorRiskDecisionError, /oo ri/)
516
+ def raise_error(error=Exception, message=nil, &block)
517
+ BuiltIn::RaiseError.new(error, message, &block)
518
+ end
519
+
520
+ alias_method :raise_exception, :raise_error
521
+
522
+ # Matches if the target object responds to all of the names
523
+ # provided. Names can be Strings or Symbols.
524
+ #
525
+ # @example
526
+ #
527
+ def respond_to(*names)
528
+ BuiltIn::RespondTo.new(*names)
529
+ end
530
+
531
+ # Passes if the submitted block returns true. Yields target to the
532
+ # block.
533
+ #
534
+ # Generally speaking, this should be thought of as a last resort when
535
+ # you can't find any other way to specify the behaviour you wish to
536
+ # specify.
537
+ #
538
+ # If you do find yourself in such a situation, you could always write
539
+ # a custom matcher, which would likely make your specs more expressive.
540
+ #
541
+ # @example
542
+ #
543
+ # 5.should satisfy { |n|
544
+ # n > 3
545
+ # }
546
+ def satisfy(&block)
547
+ BuiltIn::Satisfy.new(&block)
548
+ end
549
+
550
+ # Matches if the actual value starts with the expected value(s). In the
551
+ # case of a string, matches against the first `expected.length` characters
552
+ # of the actual string. In the case of an array, matches against the first
553
+ # `expected.length` elements of the actual array.
554
+ #
555
+ # @example
556
+ #
557
+ # "this string".should start_with "this s"
558
+ # [0, 1, 2, 3, 4].should start_with 0
559
+ # [0, 2, 3, 4, 4].should start_with 0, 1
560
+ def start_with(*expected)
561
+ BuiltIn::StartWith.new(*expected)
562
+ end
563
+
564
+ # Given no argument, matches if a proc throws any Symbol.
565
+ #
566
+ # Given a Symbol, matches if the given proc throws the specified Symbol.
567
+ #
568
+ # Given a Symbol and an arg, matches if the given proc throws the
569
+ # specified Symbol with the specified arg.
570
+ #
571
+ # @example
572
+ #
573
+ # lambda { do_something_risky }.should throw_symbol
574
+ # lambda { do_something_risky }.should throw_symbol(:that_was_risky)
575
+ # lambda { do_something_risky }.should throw_symbol(:that_was_risky, culprit)
576
+ #
577
+ # lambda { do_something_risky }.should_not throw_symbol
578
+ # lambda { do_something_risky }.should_not throw_symbol(:that_was_risky)
579
+ # lambda { do_something_risky }.should_not throw_symbol(:that_was_risky, culprit)
580
+ def throw_symbol(expected_symbol=nil, expected_arg=nil)
581
+ BuiltIn::ThrowSymbol.new(expected_symbol, expected_arg)
582
+ end
583
+
584
+ # Passes if the method called in the expect block yields, regardless
585
+ # of whether or not arguments are yielded.
586
+ #
587
+ # @example
588
+ #
589
+ # expect { |b| 5.tap(&b) }.to yield_control
590
+ # expect { |b| "a".to_sym(&b) }.not_to yield_control
591
+ #
592
+ # @note Your expect block must accept a parameter and pass it on to
593
+ # the method-under-test as a block.
594
+ # @note This matcher is not designed for use with methods that yield
595
+ # multiple times.
596
+ def yield_control
597
+ BuiltIn::YieldControl.new
598
+ end
599
+
600
+ # Passes if the method called in the expect block yields with
601
+ # no arguments. Fails if it does not yield, or yields with arguments.
602
+ #
603
+ # @example
604
+ #
605
+ # expect { |b| User.transaction(&b) }.to yield_with_no_args
606
+ # expect { |b| 5.tap(&b) }.not_to yield_with_no_args # because it yields with `5`
607
+ # expect { |b| "a".to_sym(&b) }.not_to yield_with_no_args # because it does not yield
608
+ #
609
+ # @note Your expect block must accept a parameter and pass it on to
610
+ # the method-under-test as a block.
611
+ # @note This matcher is not designed for use with methods that yield
612
+ # multiple times.
613
+ def yield_with_no_args
614
+ BuiltIn::YieldWithNoArgs.new
615
+ end
616
+
617
+ # Given no arguments, matches if the method called in the expect
618
+ # block yields with arguments (regardless of what they are or how
619
+ # many there are).
620
+ #
621
+ # Given arguments, matches if the method called in the expect block
622
+ # yields with arguments that match the given arguments.
623
+ #
624
+ # Argument matching is done using `===` (the case match operator)
625
+ # and `==`. If the expected and actual arguments match with either
626
+ # operator, the matcher will pass.
627
+ #
628
+ # @example
629
+ #
630
+ # expect { |b| 5.tap(&b) }.to yield_with_args # because #tap yields an arg
631
+ # expect { |b| 5.tap(&b) }.to yield_with_args(5) # because 5 == 5
632
+ # expect { |b| 5.tap(&b) }.to yield_with_args(Fixnum) # because Fixnum === 5
633
+ # expect { |b| File.open("f.txt", &b) }.to yield_with_args(/txt/) # because /txt/ === "f.txt"
634
+ #
635
+ # expect { |b| User.transaction(&b) }.not_to yield_with_args # because it yields no args
636
+ # expect { |b| 5.tap(&b) }.not_to yield_with_args(1, 2, 3)
637
+ #
638
+ # @note Your expect block must accept a parameter and pass it on to
639
+ # the method-under-test as a block.
640
+ # @note This matcher is not designed for use with methods that yield
641
+ # multiple times.
642
+ def yield_with_args(*args)
643
+ BuiltIn::YieldWithArgs.new(*args)
644
+ end
645
+
646
+ # Designed for use with methods that repeatedly yield (such as
647
+ # iterators). Passes if the method called in the expect block yields
648
+ # multiple times with arguments matching those given.
649
+ #
650
+ # Argument matching is done using `===` (the case match operator)
651
+ # and `==`. If the expected and actual arguments match with either
652
+ # operator, the matcher will pass.
653
+ #
654
+ # @example
655
+ #
656
+ # expect { |b| [1, 2, 3].each(&b) }.to yield_successive_args(1, 2, 3)
657
+ # expect { |b| { :a => 1, :b => 2 }.each(&b) }.to yield_successive_args([:a, 1], [:b, 2])
658
+ # expect { |b| [1, 2, 3].each(&b) }.not_to yield_successive_args(1, 2)
659
+ #
660
+ # @note Your expect block must accept a parameter and pass it on to
661
+ # the method-under-test as a block.
662
+ def yield_successive_args(*args)
663
+ BuiltIn::YieldSuccessiveArgs.new(*args)
664
+ end
665
+
666
+ # Passes if actual contains all of the expected regardless of order.
667
+ # This works for collections. Pass in multiple args and it will only
668
+ # pass if all args are found in collection.
669
+ #
670
+ # @note This is also available using the `=~` operator with `should`,
671
+ # but `=~` is not supported with `expect`.
672
+ # @note There is no should_not version of array.should =~ other_array
673
+ #
674
+ # @example
675
+ #
676
+ # expect([1,2,3]).to match_array([1,2,3])
677
+ # expect([1,2,3]).to match_array([1,3,2])
678
+ # [1,2,3].should =~ [1,2,3] # => would pass
679
+ # [1,2,3].should =~ [2,3,1] # => would pass
680
+ # [1,2,3,4].should =~ [1,2,3] # => would fail
681
+ # [1,2,2,3].should =~ [1,2,3] # => would fail
682
+ # [1,2,3].should =~ [1,2,3,4] # => would fail
683
+ def match_array(array)
684
+ BuiltIn::MatchArray.new(array)
685
+ end
686
+
687
+ OperatorMatcher.register(Array, '=~', BuiltIn::MatchArray)
688
+ end
689
+ end