gem_repackager 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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