deckshuffler 0.0.2

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 (656) hide show
  1. data/.DS_Store +0 -0
  2. data/MIT-LICENSE +21 -0
  3. data/Rakefile +55 -0
  4. data/app/controllers/account_controller.rb +41 -0
  5. data/app/controllers/application.rb +27 -0
  6. data/app/controllers/board_controller.rb +15 -0
  7. data/app/controllers/capacities_controller.rb +52 -0
  8. data/app/controllers/card_sizes_controller.rb +47 -0
  9. data/app/controllers/card_types_controller.rb +47 -0
  10. data/app/controllers/cards_controller.rb +233 -0
  11. data/app/controllers/functional_sets_controller.rb +55 -0
  12. data/app/controllers/iteration_controller.rb +93 -0
  13. data/app/controllers/milestones_controller.rb +51 -0
  14. data/app/controllers/priorities_controller.rb +52 -0
  15. data/app/controllers/project_infos_controller.rb +40 -0
  16. data/app/helpers/account_helper.rb +2 -0
  17. data/app/helpers/application_helper.rb +39 -0
  18. data/app/helpers/board_helper.rb +2 -0
  19. data/app/helpers/capacities_helper.rb +2 -0
  20. data/app/helpers/card_sizes_helper.rb +2 -0
  21. data/app/helpers/card_types_helper.rb +2 -0
  22. data/app/helpers/cards_helper.rb +2 -0
  23. data/app/helpers/functional_sets_helper.rb +2 -0
  24. data/app/helpers/milestones_helper.rb +2 -0
  25. data/app/helpers/priorities_helper.rb +2 -0
  26. data/app/helpers/project_infos_helper.rb +5 -0
  27. data/app/models/capacity.rb +4 -0
  28. data/app/models/card.rb +64 -0
  29. data/app/models/card_size.rb +13 -0
  30. data/app/models/card_type.rb +13 -0
  31. data/app/models/functional_set.rb +5 -0
  32. data/app/models/milestone.rb +15 -0
  33. data/app/models/previous_card_owner.rb +6 -0
  34. data/app/models/priority.rb +14 -0
  35. data/app/models/project_info.rb +3 -0
  36. data/app/views/account/index.rhtml +56 -0
  37. data/app/views/account/login.rhtml +12 -0
  38. data/app/views/account/signup.rhtml +24 -0
  39. data/app/views/board/_card_summary.rhtml +24 -0
  40. data/app/views/board/_cards_column.rhtml +11 -0
  41. data/app/views/board/index.rhtml +30 -0
  42. data/app/views/capacities/edit.rhtml +11 -0
  43. data/app/views/capacities/list.rhtml +34 -0
  44. data/app/views/capacities/new.rhtml +10 -0
  45. data/app/views/capacities/show.rhtml +8 -0
  46. data/app/views/card_sizes/_form.rhtml +10 -0
  47. data/app/views/card_sizes/edit.rhtml +7 -0
  48. data/app/views/card_sizes/list.rhtml +27 -0
  49. data/app/views/card_sizes/new.rhtml +6 -0
  50. data/app/views/card_sizes/show.rhtml +8 -0
  51. data/app/views/card_types/_form.rhtml +7 -0
  52. data/app/views/card_types/edit.rhtml +7 -0
  53. data/app/views/card_types/list.rhtml +27 -0
  54. data/app/views/card_types/new.rhtml +6 -0
  55. data/app/views/card_types/show.rhtml +8 -0
  56. data/app/views/cards/_form.rhtml +104 -0
  57. data/app/views/cards/edit.rhtml +4 -0
  58. data/app/views/cards/import.rhtml +4 -0
  59. data/app/views/cards/list_per_functional_set.rhtml +37 -0
  60. data/app/views/cards/list_per_milestone.rhtml +36 -0
  61. data/app/views/cards/list_per_status.rhtml +40 -0
  62. data/app/views/cards/list_per_user.rhtml +38 -0
  63. data/app/views/cards/merge.rhtml +41 -0
  64. data/app/views/cards/raise_card.rhtml +4 -0
  65. data/app/views/cards/split.rhtml +4 -0
  66. data/app/views/functional_sets/_form.rhtml +10 -0
  67. data/app/views/functional_sets/edit.rhtml +4 -0
  68. data/app/views/functional_sets/list.rhtml +25 -0
  69. data/app/views/functional_sets/new.rhtml +4 -0
  70. data/app/views/iteration/bulk_edit_actual.rhtml +23 -0
  71. data/app/views/iteration/bulk_edit_planned.rhtml +19 -0
  72. data/app/views/layouts/account.rhtml +22 -0
  73. data/app/views/layouts/standard.rhtml +36 -0
  74. data/app/views/milestones/_form.rhtml +8 -0
  75. data/app/views/milestones/edit.rhtml +7 -0
  76. data/app/views/milestones/list.rhtml +23 -0
  77. data/app/views/milestones/new.rhtml +6 -0
  78. data/app/views/milestones/show.rhtml +8 -0
  79. data/app/views/priorities/_form.rhtml +9 -0
  80. data/app/views/priorities/edit.rhtml +7 -0
  81. data/app/views/priorities/list.rhtml +25 -0
  82. data/app/views/priorities/new.rhtml +6 -0
  83. data/app/views/priorities/show.rhtml +9 -0
  84. data/app/views/project_infos/_form.rhtml +18 -0
  85. data/app/views/project_infos/edit.rhtml +7 -0
  86. data/app/views/project_infos/list.rhtml +25 -0
  87. data/app/views/project_infos/new.rhtml +6 -0
  88. data/bin/deckshuffler +74 -0
  89. data/config/boot.rb +19 -0
  90. data/config/environment.rb +68 -0
  91. data/config/routes.rb +19 -0
  92. data/db/development_structure.sql +81 -0
  93. data/db/migrate/001_cards.rb +41 -0
  94. data/db/migrate/002_statuses.rb +45 -0
  95. data/db/migrate/003_card_sizes.rb +17 -0
  96. data/db/migrate/004_card_types.rb +15 -0
  97. data/db/migrate/005_functional_set.rb +23 -0
  98. data/db/migrate/006_project_info.rb +14 -0
  99. data/db/migrate/007_create_users.rb +18 -0
  100. data/db/migrate/008_capacities.rb +14 -0
  101. data/db/migrate/009_in_play_status.rb +48 -0
  102. data/db/migrate/010_milestones.rb +14 -0
  103. data/db/migrate/011_priorities.rb +18 -0
  104. data/db/migrate/012_card_dependencies.rb +21 -0
  105. data/db/migrate/013_authentication_independent.rb +15 -0
  106. data/db/schema.rb +104 -0
  107. data/doc/.DS_Store +0 -0
  108. data/doc/deckshuffler.svg +199 -0
  109. data/lib/authentication/authenticated_system.rb +162 -0
  110. data/lib/authentication/authenticated_test_helper.rb +113 -0
  111. data/lib/authentication/user.rb +67 -0
  112. data/lib/authentication/user_notifier.rb +22 -0
  113. data/lib/authentication/user_observer.rb +9 -0
  114. data/lib/cards_csv_exporter.rb +33 -0
  115. data/lib/cards_csv_importer.rb +87 -0
  116. data/lib/module_validator.rb +12 -0
  117. data/lib/status.rb +69 -0
  118. data/lib/transition_manager.rb +30 -0
  119. data/previous_failures.txt +0 -0
  120. data/public/.DS_Store +0 -0
  121. data/public/.htaccess +41 -0
  122. data/public/404.html +8 -0
  123. data/public/500.html +8 -0
  124. data/public/dispatch.cgi +10 -0
  125. data/public/dispatch.fcgi +29 -0
  126. data/public/dispatch.rb +10 -0
  127. data/public/favicon.ico +0 -0
  128. data/public/images/.DS_Store +0 -0
  129. data/public/images/deckshuffler.png +0 -0
  130. data/public/javascripts/controls.js +750 -0
  131. data/public/javascripts/dragdrop.js +584 -0
  132. data/public/javascripts/effects.js +854 -0
  133. data/public/javascripts/prototype.js +1785 -0
  134. data/public/robots.txt +1 -0
  135. data/public/stylesheets/deckshuffler.css +142 -0
  136. data/public/stylesheets/scaffold.css +74 -0
  137. data/script/about +3 -0
  138. data/script/breakpointer +3 -0
  139. data/script/console +3 -0
  140. data/script/destroy +3 -0
  141. data/script/generate +3 -0
  142. data/script/performance/benchmarker +3 -0
  143. data/script/performance/profiler +3 -0
  144. data/script/plugin +3 -0
  145. data/script/process/reaper +3 -0
  146. data/script/process/spawner +3 -0
  147. data/script/process/spinner +3 -0
  148. data/script/runner +3 -0
  149. data/script/server +3 -0
  150. data/script/spec +4 -0
  151. data/script/spec_server +86 -0
  152. data/spec/controllers/cards_controller_spec.rb +98 -0
  153. data/spec/lib/cards_csv_exporter_spec.rb +86 -0
  154. data/spec/lib/cards_csv_importer_spec.rb +184 -0
  155. data/spec/spec.opts +6 -0
  156. data/spec/spec_helper.rb +23 -0
  157. data/test/.DS_Store +0 -0
  158. data/test/fixtures/capacities.yml +5 -0
  159. data/test/fixtures/card_sizes.yml +6 -0
  160. data/test/fixtures/card_types.yml +5 -0
  161. data/test/fixtures/cards.yml +17 -0
  162. data/test/fixtures/functional_sets.yml +5 -0
  163. data/test/fixtures/milestones.yml +5 -0
  164. data/test/fixtures/priorities.yml +7 -0
  165. data/test/fixtures/project_infos.yml +5 -0
  166. data/test/fixtures/users.yml +17 -0
  167. data/test/functional/.DS_Store +0 -0
  168. data/test/functional/account_controller_test.rb +129 -0
  169. data/test/functional/board_controller_test.rb +28 -0
  170. data/test/functional/capacities_controller_test.rb +37 -0
  171. data/test/functional/cards_controller_test.rb +268 -0
  172. data/test/functional/functional_sets_controller_test.rb +27 -0
  173. data/test/functional/project_infos_controller_test.rb +38 -0
  174. data/test/test_helper.rb +30 -0
  175. data/test/unit/.DS_Store +0 -0
  176. data/test/unit/capacity_test.rb +14 -0
  177. data/test/unit/card_size_test.rb +21 -0
  178. data/test/unit/card_test.rb +51 -0
  179. data/test/unit/card_type_test.rb +20 -0
  180. data/test/unit/milestone_test.rb +20 -0
  181. data/test/unit/priority_test.rb +20 -0
  182. data/test/unit/status_test.rb +93 -0
  183. data/test/unit/transition_manager_test.rb +142 -0
  184. data/test/unit/user_notifier_test.rb +32 -0
  185. data/test/unit/user_test.rb +75 -0
  186. data/vendor/plugins/acts_as_authenticated/CHANGELOG +86 -0
  187. data/vendor/plugins/acts_as_authenticated/README +20 -0
  188. data/vendor/plugins/acts_as_authenticated/generators/authenticated/USAGE +1 -0
  189. data/vendor/plugins/acts_as_authenticated/generators/authenticated/authenticated_generator.rb +102 -0
  190. data/vendor/plugins/acts_as_authenticated/generators/authenticated/templates/authenticated_system.rb +131 -0
  191. data/vendor/plugins/acts_as_authenticated/generators/authenticated/templates/authenticated_test_helper.rb +113 -0
  192. data/vendor/plugins/acts_as_authenticated/generators/authenticated/templates/controller.rb +43 -0
  193. data/vendor/plugins/acts_as_authenticated/generators/authenticated/templates/fixtures.yml +17 -0
  194. data/vendor/plugins/acts_as_authenticated/generators/authenticated/templates/functional_test.rb +129 -0
  195. data/vendor/plugins/acts_as_authenticated/generators/authenticated/templates/helper.rb +2 -0
  196. data/vendor/plugins/acts_as_authenticated/generators/authenticated/templates/index.rhtml +56 -0
  197. data/vendor/plugins/acts_as_authenticated/generators/authenticated/templates/login.rhtml +14 -0
  198. data/vendor/plugins/acts_as_authenticated/generators/authenticated/templates/migration.rb +18 -0
  199. data/vendor/plugins/acts_as_authenticated/generators/authenticated/templates/model.rb +64 -0
  200. data/vendor/plugins/acts_as_authenticated/generators/authenticated/templates/signup.rhtml +16 -0
  201. data/vendor/plugins/acts_as_authenticated/generators/authenticated/templates/unit_test.rb +75 -0
  202. data/vendor/plugins/acts_as_authenticated/generators/authenticated_mailer/USAGE +1 -0
  203. data/vendor/plugins/acts_as_authenticated/generators/authenticated_mailer/authenticated_mailer_generator.rb +27 -0
  204. data/vendor/plugins/acts_as_authenticated/generators/authenticated_mailer/templates/activation.rhtml +3 -0
  205. data/vendor/plugins/acts_as_authenticated/generators/authenticated_mailer/templates/notifier.rb +22 -0
  206. data/vendor/plugins/acts_as_authenticated/generators/authenticated_mailer/templates/notifier_test.rb +27 -0
  207. data/vendor/plugins/acts_as_authenticated/generators/authenticated_mailer/templates/observer.rb +9 -0
  208. data/vendor/plugins/acts_as_authenticated/generators/authenticated_mailer/templates/signup_notification.rhtml +8 -0
  209. data/vendor/plugins/acts_as_authenticated/install.rb +1 -0
  210. data/vendor/plugins/rspec/CHANGES +963 -0
  211. data/vendor/plugins/rspec/MIT-LICENSE +20 -0
  212. data/vendor/plugins/rspec/README +75 -0
  213. data/vendor/plugins/rspec/Rakefile +273 -0
  214. data/vendor/plugins/rspec/TODO +54 -0
  215. data/vendor/plugins/rspec/UPGRADE +31 -0
  216. data/vendor/plugins/rspec/autotest/discover.rb +6 -0
  217. data/vendor/plugins/rspec/autotest/rspec.rb +1 -0
  218. data/vendor/plugins/rspec/bin/spec +3 -0
  219. data/vendor/plugins/rspec/bin/spec_translator +8 -0
  220. data/vendor/plugins/rspec/examples/auto_spec_description_example.rb +19 -0
  221. data/vendor/plugins/rspec/examples/before_and_after_example.rb +40 -0
  222. data/vendor/plugins/rspec/examples/behave_as_example.rb +45 -0
  223. data/vendor/plugins/rspec/examples/custom_expectation_matchers.rb +54 -0
  224. data/vendor/plugins/rspec/examples/custom_formatter.rb +12 -0
  225. data/vendor/plugins/rspec/examples/dynamic_spec.rb +9 -0
  226. data/vendor/plugins/rspec/examples/file_accessor.rb +19 -0
  227. data/vendor/plugins/rspec/examples/file_accessor_spec.rb +38 -0
  228. data/vendor/plugins/rspec/examples/greeter_spec.rb +31 -0
  229. data/vendor/plugins/rspec/examples/helper_method_example.rb +11 -0
  230. data/vendor/plugins/rspec/examples/io_processor.rb +8 -0
  231. data/vendor/plugins/rspec/examples/io_processor_spec.rb +21 -0
  232. data/vendor/plugins/rspec/examples/legacy_spec.rb +11 -0
  233. data/vendor/plugins/rspec/examples/mocking_example.rb +27 -0
  234. data/vendor/plugins/rspec/examples/multi_threaded_behaviour_runner.rb +27 -0
  235. data/vendor/plugins/rspec/examples/partial_mock_example.rb +28 -0
  236. data/vendor/plugins/rspec/examples/pending_example.rb +20 -0
  237. data/vendor/plugins/rspec/examples/predicate_example.rb +27 -0
  238. data/vendor/plugins/rspec/examples/priority.txt +1 -0
  239. data/vendor/plugins/rspec/examples/shared_behaviours_example.rb +39 -0
  240. data/vendor/plugins/rspec/examples/spec_and_test_together.rb +20 -0
  241. data/vendor/plugins/rspec/examples/spec_helper.rb +3 -0
  242. data/vendor/plugins/rspec/examples/stack.rb +36 -0
  243. data/vendor/plugins/rspec/examples/stack_spec.rb +97 -0
  244. data/vendor/plugins/rspec/examples/story/game-of-life/.loadpath +5 -0
  245. data/vendor/plugins/rspec/examples/story/game-of-life/README.txt +21 -0
  246. data/vendor/plugins/rspec/examples/story/game-of-life/behaviour/everything.rb +6 -0
  247. data/vendor/plugins/rspec/examples/story/game-of-life/behaviour/examples/examples.rb +3 -0
  248. data/vendor/plugins/rspec/examples/story/game-of-life/behaviour/examples/game_behaviour.rb +35 -0
  249. data/vendor/plugins/rspec/examples/story/game-of-life/behaviour/examples/grid_behaviour.rb +66 -0
  250. data/vendor/plugins/rspec/examples/story/game-of-life/behaviour/stories/CellsWithLessThanTwoNeighboursDie.story +21 -0
  251. data/vendor/plugins/rspec/examples/story/game-of-life/behaviour/stories/CellsWithMoreThanThreeNeighboursDie.story +21 -0
  252. data/vendor/plugins/rspec/examples/story/game-of-life/behaviour/stories/EmptySpacesWithThreeNeighboursCreateACell.story +42 -0
  253. data/vendor/plugins/rspec/examples/story/game-of-life/behaviour/stories/ICanCreateACell.story +42 -0
  254. data/vendor/plugins/rspec/examples/story/game-of-life/behaviour/stories/ICanKillACell.story +17 -0
  255. data/vendor/plugins/rspec/examples/story/game-of-life/behaviour/stories/TheGridWraps.story +53 -0
  256. data/vendor/plugins/rspec/examples/story/game-of-life/behaviour/stories/create_a_cell.rb +52 -0
  257. data/vendor/plugins/rspec/examples/story/game-of-life/behaviour/stories/kill_a_cell.rb +24 -0
  258. data/vendor/plugins/rspec/examples/story/game-of-life/behaviour/stories/stories.rb +5 -0
  259. data/vendor/plugins/rspec/examples/story/game-of-life/behaviour/stories/stories.txt +22 -0
  260. data/vendor/plugins/rspec/examples/story/game-of-life/life.rb +3 -0
  261. data/vendor/plugins/rspec/examples/story/game-of-life/life/game.rb +23 -0
  262. data/vendor/plugins/rspec/examples/story/game-of-life/life/grid.rb +43 -0
  263. data/vendor/plugins/rspec/examples/stubbing_example.rb +69 -0
  264. data/vendor/plugins/rspec/examples/test_case_adapter_example.rb +26 -0
  265. data/vendor/plugins/rspec/failing_examples/diffing_spec.rb +36 -0
  266. data/vendor/plugins/rspec/failing_examples/failure_in_setup.rb +10 -0
  267. data/vendor/plugins/rspec/failing_examples/failure_in_teardown.rb +10 -0
  268. data/vendor/plugins/rspec/failing_examples/mocking_example.rb +40 -0
  269. data/vendor/plugins/rspec/failing_examples/mocking_with_flexmock.rb +26 -0
  270. data/vendor/plugins/rspec/failing_examples/mocking_with_mocha.rb +25 -0
  271. data/vendor/plugins/rspec/failing_examples/mocking_with_rr.rb +27 -0
  272. data/vendor/plugins/rspec/failing_examples/partial_mock_example.rb +20 -0
  273. data/vendor/plugins/rspec/failing_examples/predicate_example.rb +29 -0
  274. data/vendor/plugins/rspec/failing_examples/raising_example.rb +47 -0
  275. data/vendor/plugins/rspec/failing_examples/spec_helper.rb +3 -0
  276. data/vendor/plugins/rspec/failing_examples/syntax_error_example.rb +7 -0
  277. data/vendor/plugins/rspec/failing_examples/team_spec.rb +44 -0
  278. data/vendor/plugins/rspec/failing_examples/timeout_behaviour.rb +7 -0
  279. data/vendor/plugins/rspec/init.rb +3 -0
  280. data/vendor/plugins/rspec/lib/autotest/discover.rb +3 -0
  281. data/vendor/plugins/rspec/lib/autotest/rspec.rb +94 -0
  282. data/vendor/plugins/rspec/lib/spec.rb +12 -0
  283. data/vendor/plugins/rspec/lib/spec/dsl.rb +16 -0
  284. data/vendor/plugins/rspec/lib/spec/dsl/behaviour.rb +183 -0
  285. data/vendor/plugins/rspec/lib/spec/dsl/behaviour_description.rb +85 -0
  286. data/vendor/plugins/rspec/lib/spec/dsl/behaviour_factory.rb +59 -0
  287. data/vendor/plugins/rspec/lib/spec/dsl/configuration.rb +137 -0
  288. data/vendor/plugins/rspec/lib/spec/dsl/errors.rb +9 -0
  289. data/vendor/plugins/rspec/lib/spec/dsl/example.rb +7 -0
  290. data/vendor/plugins/rspec/lib/spec/dsl/example_definition.rb +32 -0
  291. data/vendor/plugins/rspec/lib/spec/dsl/example_matcher.rb +38 -0
  292. data/vendor/plugins/rspec/lib/spec/dsl/example_module.rb +198 -0
  293. data/vendor/plugins/rspec/lib/spec/dsl/example_runner.rb +147 -0
  294. data/vendor/plugins/rspec/lib/spec/dsl/example_suite.rb +110 -0
  295. data/vendor/plugins/rspec/lib/spec/dsl/pending.rb +18 -0
  296. data/vendor/plugins/rspec/lib/spec/dsl/shared_behaviour.rb +52 -0
  297. data/vendor/plugins/rspec/lib/spec/dsl/should_raise_handler.rb +64 -0
  298. data/vendor/plugins/rspec/lib/spec/expectations.rb +56 -0
  299. data/vendor/plugins/rspec/lib/spec/expectations/differs/default.rb +66 -0
  300. data/vendor/plugins/rspec/lib/spec/expectations/errors.rb +6 -0
  301. data/vendor/plugins/rspec/lib/spec/expectations/extensions.rb +2 -0
  302. data/vendor/plugins/rspec/lib/spec/expectations/extensions/object.rb +71 -0
  303. data/vendor/plugins/rspec/lib/spec/expectations/extensions/string_and_symbol.rb +17 -0
  304. data/vendor/plugins/rspec/lib/spec/expectations/handler.rb +52 -0
  305. data/vendor/plugins/rspec/lib/spec/extensions.rb +2 -0
  306. data/vendor/plugins/rspec/lib/spec/extensions/main.rb +51 -0
  307. data/vendor/plugins/rspec/lib/spec/extensions/object.rb +10 -0
  308. data/vendor/plugins/rspec/lib/spec/matchers.rb +153 -0
  309. data/vendor/plugins/rspec/lib/spec/matchers/be.rb +206 -0
  310. data/vendor/plugins/rspec/lib/spec/matchers/be_close.rb +37 -0
  311. data/vendor/plugins/rspec/lib/spec/matchers/change.rb +120 -0
  312. data/vendor/plugins/rspec/lib/spec/matchers/eql.rb +43 -0
  313. data/vendor/plugins/rspec/lib/spec/matchers/equal.rb +43 -0
  314. data/vendor/plugins/rspec/lib/spec/matchers/has.rb +44 -0
  315. data/vendor/plugins/rspec/lib/spec/matchers/have.rb +142 -0
  316. data/vendor/plugins/rspec/lib/spec/matchers/include.rb +70 -0
  317. data/vendor/plugins/rspec/lib/spec/matchers/match.rb +41 -0
  318. data/vendor/plugins/rspec/lib/spec/matchers/operator_matcher.rb +73 -0
  319. data/vendor/plugins/rspec/lib/spec/matchers/raise_error.rb +105 -0
  320. data/vendor/plugins/rspec/lib/spec/matchers/respond_to.rb +45 -0
  321. data/vendor/plugins/rspec/lib/spec/matchers/satisfy.rb +47 -0
  322. data/vendor/plugins/rspec/lib/spec/matchers/simple_matcher.rb +27 -0
  323. data/vendor/plugins/rspec/lib/spec/matchers/throw_symbol.rb +73 -0
  324. data/vendor/plugins/rspec/lib/spec/mocks.rb +211 -0
  325. data/vendor/plugins/rspec/lib/spec/mocks/argument_constraint_matchers.rb +27 -0
  326. data/vendor/plugins/rspec/lib/spec/mocks/argument_expectation.rb +183 -0
  327. data/vendor/plugins/rspec/lib/spec/mocks/error_generator.rb +84 -0
  328. data/vendor/plugins/rspec/lib/spec/mocks/errors.rb +10 -0
  329. data/vendor/plugins/rspec/lib/spec/mocks/extensions/object.rb +3 -0
  330. data/vendor/plugins/rspec/lib/spec/mocks/message_expectation.rb +254 -0
  331. data/vendor/plugins/rspec/lib/spec/mocks/methods.rb +39 -0
  332. data/vendor/plugins/rspec/lib/spec/mocks/mock.rb +37 -0
  333. data/vendor/plugins/rspec/lib/spec/mocks/order_group.rb +29 -0
  334. data/vendor/plugins/rspec/lib/spec/mocks/proxy.rb +170 -0
  335. data/vendor/plugins/rspec/lib/spec/mocks/space.rb +28 -0
  336. data/vendor/plugins/rspec/lib/spec/mocks/spec_methods.rb +37 -0
  337. data/vendor/plugins/rspec/lib/spec/rake/spectask.rb +224 -0
  338. data/vendor/plugins/rspec/lib/spec/rake/verify_rcov.rb +52 -0
  339. data/vendor/plugins/rspec/lib/spec/runner.rb +164 -0
  340. data/vendor/plugins/rspec/lib/spec/runner/backtrace_tweaker.rb +57 -0
  341. data/vendor/plugins/rspec/lib/spec/runner/behaviour_runner.rb +56 -0
  342. data/vendor/plugins/rspec/lib/spec/runner/command_line.rb +39 -0
  343. data/vendor/plugins/rspec/lib/spec/runner/drb_command_line.rb +20 -0
  344. data/vendor/plugins/rspec/lib/spec/runner/extensions/object.rb +32 -0
  345. data/vendor/plugins/rspec/lib/spec/runner/formatter.rb +9 -0
  346. data/vendor/plugins/rspec/lib/spec/runner/formatter/base_formatter.rb +77 -0
  347. data/vendor/plugins/rspec/lib/spec/runner/formatter/base_text_formatter.rb +128 -0
  348. data/vendor/plugins/rspec/lib/spec/runner/formatter/failing_behaviours_formatter.rb +29 -0
  349. data/vendor/plugins/rspec/lib/spec/runner/formatter/failing_examples_formatter.rb +22 -0
  350. data/vendor/plugins/rspec/lib/spec/runner/formatter/html_formatter.rb +322 -0
  351. data/vendor/plugins/rspec/lib/spec/runner/formatter/progress_bar_formatter.rb +31 -0
  352. data/vendor/plugins/rspec/lib/spec/runner/formatter/rdoc_formatter.rb +24 -0
  353. data/vendor/plugins/rspec/lib/spec/runner/formatter/snippet_extractor.rb +52 -0
  354. data/vendor/plugins/rspec/lib/spec/runner/formatter/specdoc_formatter.rb +29 -0
  355. data/vendor/plugins/rspec/lib/spec/runner/heckle_runner.rb +72 -0
  356. data/vendor/plugins/rspec/lib/spec/runner/heckle_runner_unsupported.rb +10 -0
  357. data/vendor/plugins/rspec/lib/spec/runner/option_parser.rb +222 -0
  358. data/vendor/plugins/rspec/lib/spec/runner/options.rb +223 -0
  359. data/vendor/plugins/rspec/lib/spec/runner/reporter.rb +137 -0
  360. data/vendor/plugins/rspec/lib/spec/runner/spec_parser.rb +53 -0
  361. data/vendor/plugins/rspec/lib/spec/story.rb +10 -0
  362. data/vendor/plugins/rspec/lib/spec/story/documenter.rb +1 -0
  363. data/vendor/plugins/rspec/lib/spec/story/documenter/plain_text_documenter.rb +43 -0
  364. data/vendor/plugins/rspec/lib/spec/story/extensions.rb +1 -0
  365. data/vendor/plugins/rspec/lib/spec/story/extensions/main.rb +13 -0
  366. data/vendor/plugins/rspec/lib/spec/story/given_scenario.rb +14 -0
  367. data/vendor/plugins/rspec/lib/spec/story/reporter.rb +1 -0
  368. data/vendor/plugins/rspec/lib/spec/story/reporter/plain_text_reporter.rb +60 -0
  369. data/vendor/plugins/rspec/lib/spec/story/runner.rb +49 -0
  370. data/vendor/plugins/rspec/lib/spec/story/runner/scenario_collector.rb +18 -0
  371. data/vendor/plugins/rspec/lib/spec/story/runner/scenario_runner.rb +43 -0
  372. data/vendor/plugins/rspec/lib/spec/story/runner/story_runner.rb +65 -0
  373. data/vendor/plugins/rspec/lib/spec/story/scenario.rb +14 -0
  374. data/vendor/plugins/rspec/lib/spec/story/simple_step.rb +17 -0
  375. data/vendor/plugins/rspec/lib/spec/story/step_mother.rb +31 -0
  376. data/vendor/plugins/rspec/lib/spec/story/story.rb +22 -0
  377. data/vendor/plugins/rspec/lib/spec/story/world.rb +87 -0
  378. data/vendor/plugins/rspec/lib/spec/test.rb +9 -0
  379. data/vendor/plugins/rspec/lib/spec/test/unit/autorunner.rb +6 -0
  380. data/vendor/plugins/rspec/lib/spec/test/unit/example.rb +15 -0
  381. data/vendor/plugins/rspec/lib/spec/test/unit/example_suite.rb +11 -0
  382. data/vendor/plugins/rspec/lib/spec/test/unit/rspectestresult.rb +5 -0
  383. data/vendor/plugins/rspec/lib/spec/test/unit/ui/console/testrunner.rb +18 -0
  384. data/vendor/plugins/rspec/lib/spec/test/unit/ui/testrunnermediator.rb +10 -0
  385. data/vendor/plugins/rspec/lib/spec/test_case_adapter.rb +10 -0
  386. data/vendor/plugins/rspec/lib/spec/translator.rb +114 -0
  387. data/vendor/plugins/rspec/lib/spec/version.rb +23 -0
  388. data/vendor/plugins/rspec/plugins/mock_frameworks/flexmock.rb +23 -0
  389. data/vendor/plugins/rspec/plugins/mock_frameworks/mocha.rb +19 -0
  390. data/vendor/plugins/rspec/plugins/mock_frameworks/rr.rb +21 -0
  391. data/vendor/plugins/rspec/plugins/mock_frameworks/rspec.rb +18 -0
  392. data/vendor/plugins/rspec/rake_tasks/examples.rake +7 -0
  393. data/vendor/plugins/rspec/rake_tasks/examples_rdoc.rake +8 -0
  394. data/vendor/plugins/rspec/rake_tasks/examples_with_rcov.rake +9 -0
  395. data/vendor/plugins/rspec/rake_tasks/failing_examples_with_html.rake +9 -0
  396. data/vendor/plugins/rspec/rake_tasks/verify_rcov.rake +7 -0
  397. data/vendor/plugins/rspec/spec.opts +6 -0
  398. data/vendor/plugins/rspec/spec/README.jruby +14 -0
  399. data/vendor/plugins/rspec/spec/autotest/discover_spec.rb +19 -0
  400. data/vendor/plugins/rspec/spec/autotest/rspec_spec.rb +264 -0
  401. data/vendor/plugins/rspec/spec/autotest_helper.rb +5 -0
  402. data/vendor/plugins/rspec/spec/rspec_suite.rb +6 -0
  403. data/vendor/plugins/rspec/spec/spec/dsl/behaviour_description_spec.rb +97 -0
  404. data/vendor/plugins/rspec/spec/spec/dsl/behaviour_factory_spec.rb +22 -0
  405. data/vendor/plugins/rspec/spec/spec/dsl/configuration_spec.rb +61 -0
  406. data/vendor/plugins/rspec/spec/spec/dsl/example_class_definition_spec.rb +48 -0
  407. data/vendor/plugins/rspec/spec/spec/dsl/example_definition_class_spec.rb +23 -0
  408. data/vendor/plugins/rspec/spec/spec/dsl/example_definition_spec.rb +17 -0
  409. data/vendor/plugins/rspec/spec/spec/dsl/example_factory_spec.rb +69 -0
  410. data/vendor/plugins/rspec/spec/spec/dsl/example_instance_spec.rb +242 -0
  411. data/vendor/plugins/rspec/spec/spec/dsl/example_matcher_spec.rb +91 -0
  412. data/vendor/plugins/rspec/spec/spec/dsl/example_should_raise_spec.rb +164 -0
  413. data/vendor/plugins/rspec/spec/spec/dsl/example_spec.rb +399 -0
  414. data/vendor/plugins/rspec/spec/spec/dsl/example_suite_spec.rb +617 -0
  415. data/vendor/plugins/rspec/spec/spec/dsl/pending_module_spec.rb +31 -0
  416. data/vendor/plugins/rspec/spec/spec/dsl/predicate_matcher_spec.rb +21 -0
  417. data/vendor/plugins/rspec/spec/spec/dsl/shared_behaviour_spec.rb +248 -0
  418. data/vendor/plugins/rspec/spec/spec/expectations/differs/default_spec.rb +109 -0
  419. data/vendor/plugins/rspec/spec/spec/expectations/extensions/object_spec.rb +107 -0
  420. data/vendor/plugins/rspec/spec/spec/expectations/fail_with_spec.rb +71 -0
  421. data/vendor/plugins/rspec/spec/spec/extensions/main_spec.rb +33 -0
  422. data/vendor/plugins/rspec/spec/spec/matchers/be_close_spec.rb +39 -0
  423. data/vendor/plugins/rspec/spec/spec/matchers/be_spec.rb +209 -0
  424. data/vendor/plugins/rspec/spec/spec/matchers/change_spec.rb +232 -0
  425. data/vendor/plugins/rspec/spec/spec/matchers/description_generation_spec.rb +157 -0
  426. data/vendor/plugins/rspec/spec/spec/matchers/eql_spec.rb +28 -0
  427. data/vendor/plugins/rspec/spec/spec/matchers/equal_spec.rb +28 -0
  428. data/vendor/plugins/rspec/spec/spec/matchers/exist_spec.rb +75 -0
  429. data/vendor/plugins/rspec/spec/spec/matchers/handler_spec.rb +129 -0
  430. data/vendor/plugins/rspec/spec/spec/matchers/has_spec.rb +37 -0
  431. data/vendor/plugins/rspec/spec/spec/matchers/have_spec.rb +272 -0
  432. data/vendor/plugins/rspec/spec/spec/matchers/include_spec.rb +45 -0
  433. data/vendor/plugins/rspec/spec/spec/matchers/match_spec.rb +37 -0
  434. data/vendor/plugins/rspec/spec/spec/matchers/matcher_methods_spec.rb +78 -0
  435. data/vendor/plugins/rspec/spec/spec/matchers/mock_constraint_matchers_spec.rb +24 -0
  436. data/vendor/plugins/rspec/spec/spec/matchers/operator_matcher_spec.rb +158 -0
  437. data/vendor/plugins/rspec/spec/spec/matchers/raise_error_spec.rb +185 -0
  438. data/vendor/plugins/rspec/spec/spec/matchers/respond_to_spec.rb +54 -0
  439. data/vendor/plugins/rspec/spec/spec/matchers/satisfy_spec.rb +36 -0
  440. data/vendor/plugins/rspec/spec/spec/matchers/simple_matcher_spec.rb +26 -0
  441. data/vendor/plugins/rspec/spec/spec/matchers/throw_symbol_spec.rb +54 -0
  442. data/vendor/plugins/rspec/spec/spec/mocks/any_number_of_times_spec.rb +29 -0
  443. data/vendor/plugins/rspec/spec/spec/mocks/argument_expectation_spec.rb +23 -0
  444. data/vendor/plugins/rspec/spec/spec/mocks/at_least_spec.rb +97 -0
  445. data/vendor/plugins/rspec/spec/spec/mocks/at_most_spec.rb +93 -0
  446. data/vendor/plugins/rspec/spec/spec/mocks/bug_report_10260_spec.rb +8 -0
  447. data/vendor/plugins/rspec/spec/spec/mocks/bug_report_11545_spec.rb +31 -0
  448. data/vendor/plugins/rspec/spec/spec/mocks/bug_report_7611_spec.rb +19 -0
  449. data/vendor/plugins/rspec/spec/spec/mocks/bug_report_7805_spec.rb +22 -0
  450. data/vendor/plugins/rspec/spec/spec/mocks/bug_report_8165_spec.rb +31 -0
  451. data/vendor/plugins/rspec/spec/spec/mocks/bug_report_8302_spec.rb +26 -0
  452. data/vendor/plugins/rspec/spec/spec/mocks/failing_mock_argument_constraints_spec.rb +115 -0
  453. data/vendor/plugins/rspec/spec/spec/mocks/mock_ordering_spec.rb +84 -0
  454. data/vendor/plugins/rspec/spec/spec/mocks/mock_space_spec.rb +54 -0
  455. data/vendor/plugins/rspec/spec/spec/mocks/mock_spec.rb +450 -0
  456. data/vendor/plugins/rspec/spec/spec/mocks/multiple_return_value_spec.rb +113 -0
  457. data/vendor/plugins/rspec/spec/spec/mocks/null_object_mock_spec.rb +40 -0
  458. data/vendor/plugins/rspec/spec/spec/mocks/once_counts_spec.rb +53 -0
  459. data/vendor/plugins/rspec/spec/spec/mocks/options_hash_spec.rb +42 -0
  460. data/vendor/plugins/rspec/spec/spec/mocks/partial_mock_spec.rb +106 -0
  461. data/vendor/plugins/rspec/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +66 -0
  462. data/vendor/plugins/rspec/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +154 -0
  463. data/vendor/plugins/rspec/spec/spec/mocks/precise_counts_spec.rb +52 -0
  464. data/vendor/plugins/rspec/spec/spec/mocks/record_messages_spec.rb +26 -0
  465. data/vendor/plugins/rspec/spec/spec/mocks/stub_spec.rb +215 -0
  466. data/vendor/plugins/rspec/spec/spec/mocks/twice_counts_spec.rb +67 -0
  467. data/vendor/plugins/rspec/spec/spec/package/bin_spec_spec.rb +12 -0
  468. data/vendor/plugins/rspec/spec/spec/runner/command_line_spec.rb +140 -0
  469. data/vendor/plugins/rspec/spec/spec/runner/drb_command_line_spec.rb +92 -0
  470. data/vendor/plugins/rspec/spec/spec/runner/empty_file.txt +0 -0
  471. data/vendor/plugins/rspec/spec/spec/runner/examples.txt +2 -0
  472. data/vendor/plugins/rspec/spec/spec/runner/execution_context_spec.rb +31 -0
  473. data/vendor/plugins/rspec/spec/spec/runner/failed.txt +3 -0
  474. data/vendor/plugins/rspec/spec/spec/runner/formatter/failing_behaviours_formatter_spec.rb +41 -0
  475. data/vendor/plugins/rspec/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +30 -0
  476. data/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.4.html +365 -0
  477. data/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.5-jruby.html +375 -0
  478. data/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.5.html +371 -0
  479. data/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.6.html +371 -0
  480. data/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatter_spec.rb +54 -0
  481. data/vendor/plugins/rspec/spec/spec/runner/formatter/progress_bar_formatter_dry_run_spec.rb +21 -0
  482. data/vendor/plugins/rspec/spec/spec/runner/formatter/progress_bar_formatter_failure_dump_spec.rb +39 -0
  483. data/vendor/plugins/rspec/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +110 -0
  484. data/vendor/plugins/rspec/spec/spec/runner/formatter/rdoc_formatter_dry_run_spec.rb +21 -0
  485. data/vendor/plugins/rspec/spec/spec/runner/formatter/rdoc_formatter_spec.rb +48 -0
  486. data/vendor/plugins/rspec/spec/spec/runner/formatter/snippet_extractor_spec.rb +11 -0
  487. data/vendor/plugins/rspec/spec/spec/runner/formatter/specdoc_formatter_dry_run_spec.rb +21 -0
  488. data/vendor/plugins/rspec/spec/spec/runner/formatter/specdoc_formatter_spec.rb +64 -0
  489. data/vendor/plugins/rspec/spec/spec/runner/heckle_runner_spec.rb +62 -0
  490. data/vendor/plugins/rspec/spec/spec/runner/heckler_spec.rb +13 -0
  491. data/vendor/plugins/rspec/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +45 -0
  492. data/vendor/plugins/rspec/spec/spec/runner/object_ext_spec.rb +11 -0
  493. data/vendor/plugins/rspec/spec/spec/runner/option_parser_spec.rb +356 -0
  494. data/vendor/plugins/rspec/spec/spec/runner/options_spec.rb +255 -0
  495. data/vendor/plugins/rspec/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +56 -0
  496. data/vendor/plugins/rspec/spec/spec/runner/reporter_spec.rb +216 -0
  497. data/vendor/plugins/rspec/spec/spec/runner/spec.opts +2 -0
  498. data/vendor/plugins/rspec/spec/spec/runner/spec_parser_spec.rb +124 -0
  499. data/vendor/plugins/rspec/spec/spec/runner/spec_spaced.opts +2 -0
  500. data/vendor/plugins/rspec/spec/spec/runner_spec.rb +11 -0
  501. data/vendor/plugins/rspec/spec/spec/spec_classes.rb +123 -0
  502. data/vendor/plugins/rspec/spec/spec/story/builders.rb +46 -0
  503. data/vendor/plugins/rspec/spec/spec/story/documenter/plain_text_documenter_spec.rb +100 -0
  504. data/vendor/plugins/rspec/spec/spec/story/extensions_spec.rb +14 -0
  505. data/vendor/plugins/rspec/spec/spec/story/given_scenario_spec.rb +27 -0
  506. data/vendor/plugins/rspec/spec/spec/story/reporter/plain_text_reporter_spec.rb +114 -0
  507. data/vendor/plugins/rspec/spec/spec/story/rspec_adapter.rb +49 -0
  508. data/vendor/plugins/rspec/spec/spec/story/runner/scenario_collector_spec.rb +27 -0
  509. data/vendor/plugins/rspec/spec/spec/story/runner/scenario_runner_spec.rb +145 -0
  510. data/vendor/plugins/rspec/spec/spec/story/runner/story_runner_spec.rb +247 -0
  511. data/vendor/plugins/rspec/spec/spec/story/runner_spec.rb +64 -0
  512. data/vendor/plugins/rspec/spec/spec/story/scenario_spec.rb +20 -0
  513. data/vendor/plugins/rspec/spec/spec/story/simple_step_spec.rb +37 -0
  514. data/vendor/plugins/rspec/spec/spec/story/step_mother_spec.rb +59 -0
  515. data/vendor/plugins/rspec/spec/spec/story/story_helper.rb +3 -0
  516. data/vendor/plugins/rspec/spec/spec/story/story_spec.rb +45 -0
  517. data/vendor/plugins/rspec/spec/spec/story/world_spec.rb +406 -0
  518. data/vendor/plugins/rspec/spec/spec/test/unit/autorunner_test.rb +12 -0
  519. data/vendor/plugins/rspec/spec/spec/test/unit/sample_spec_test.rb +28 -0
  520. data/vendor/plugins/rspec/spec/spec/test/unit/spec_helper.rb +4 -0
  521. data/vendor/plugins/rspec/spec/spec/test/unit/test_unit_and_rspec_spec.rb +28 -0
  522. data/vendor/plugins/rspec/spec/spec/translator_spec.rb +264 -0
  523. data/vendor/plugins/rspec/spec/spec_helper.rb +56 -0
  524. data/vendor/plugins/rspec_on_rails/MIT-LICENSE +31 -0
  525. data/vendor/plugins/rspec_on_rails/README +1 -0
  526. data/vendor/plugins/rspec_on_rails/Rakefile +9 -0
  527. data/vendor/plugins/rspec_on_rails/generators/rspec/CHANGES +1 -0
  528. data/vendor/plugins/rspec_on_rails/generators/rspec/rspec_generator.rb +34 -0
  529. data/vendor/plugins/rspec_on_rails/generators/rspec/templates/all_stories.rb +4 -0
  530. data/vendor/plugins/rspec_on_rails/generators/rspec/templates/previous_failures.txt +0 -0
  531. data/vendor/plugins/rspec_on_rails/generators/rspec/templates/script/spec +4 -0
  532. data/vendor/plugins/rspec_on_rails/generators/rspec/templates/script/spec_server +103 -0
  533. data/vendor/plugins/rspec_on_rails/generators/rspec/templates/spec.opts +6 -0
  534. data/vendor/plugins/rspec_on_rails/generators/rspec/templates/spec_helper.rb +23 -0
  535. data/vendor/plugins/rspec_on_rails/generators/rspec/templates/stories_helper.rb +3 -0
  536. data/vendor/plugins/rspec_on_rails/generators/rspec_controller/USAGE +33 -0
  537. data/vendor/plugins/rspec_on_rails/generators/rspec_controller/rspec_controller_generator.rb +49 -0
  538. data/vendor/plugins/rspec_on_rails/generators/rspec_controller/templates/controller_spec.rb +23 -0
  539. data/vendor/plugins/rspec_on_rails/generators/rspec_controller/templates/helper_spec.rb +11 -0
  540. data/vendor/plugins/rspec_on_rails/generators/rspec_controller/templates/view_spec.rb +12 -0
  541. data/vendor/plugins/rspec_on_rails/generators/rspec_model/USAGE +18 -0
  542. data/vendor/plugins/rspec_on_rails/generators/rspec_model/rspec_model_generator.rb +30 -0
  543. data/vendor/plugins/rspec_on_rails/generators/rspec_model/templates/model_spec.rb +11 -0
  544. data/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/rspec_scaffold_generator.rb +165 -0
  545. data/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/controller_spec.rb +355 -0
  546. data/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/edit_erb_spec.rb +25 -0
  547. data/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/helper_spec.rb +4 -0
  548. data/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/index_erb_spec.rb +22 -0
  549. data/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/new_erb_spec.rb +26 -0
  550. data/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/show_erb_spec.rb +22 -0
  551. data/vendor/plugins/rspec_on_rails/init.rb +9 -0
  552. data/vendor/plugins/rspec_on_rails/lib/autotest/rails_rspec.rb +81 -0
  553. data/vendor/plugins/rspec_on_rails/lib/spec/dsl.rb +2 -0
  554. data/vendor/plugins/rspec_on_rails/lib/spec/dsl/configuration.rb +23 -0
  555. data/vendor/plugins/rspec_on_rails/lib/spec/matchers.rb +3 -0
  556. data/vendor/plugins/rspec_on_rails/lib/spec/matchers/have.rb +19 -0
  557. data/vendor/plugins/rspec_on_rails/lib/spec/rails.rb +57 -0
  558. data/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl.rb +40 -0
  559. data/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/assigns_hash_proxy.rb +42 -0
  560. data/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour.rb +7 -0
  561. data/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour/controller_example.rb +251 -0
  562. data/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour/functional_example.rb +67 -0
  563. data/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour/helper_example.rb +82 -0
  564. data/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour/model_example.rb +14 -0
  565. data/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour/rails_example.rb +93 -0
  566. data/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour/render_observer.rb +90 -0
  567. data/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour/view_example.rb +181 -0
  568. data/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/ivar_proxy.rb +62 -0
  569. data/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions.rb +7 -0
  570. data/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/action_controller/base.rb +11 -0
  571. data/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/action_controller/rescue.rb +21 -0
  572. data/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/action_controller/test_response.rb +11 -0
  573. data/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/action_view/base.rb +27 -0
  574. data/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/active_record/base.rb +29 -0
  575. data/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/object.rb +5 -0
  576. data/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers.rb +29 -0
  577. data/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/assert_select.rb +130 -0
  578. data/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/have_text.rb +55 -0
  579. data/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/redirect_to.rb +114 -0
  580. data/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/render_template.rb +66 -0
  581. data/vendor/plugins/rspec_on_rails/lib/spec/rails/story_adapter.rb +47 -0
  582. data/vendor/plugins/rspec_on_rails/lib/spec/rails/version.rb +26 -0
  583. data/vendor/plugins/rspec_on_rails/spec/rails/autotest/mappings_spec.rb +39 -0
  584. data/vendor/plugins/rspec_on_rails/spec/rails/autotest/rails_rspec_spec.rb +8 -0
  585. data/vendor/plugins/rspec_on_rails/spec/rails/dsl/assigns_hash_proxy_spec.rb +55 -0
  586. data/vendor/plugins/rspec_on_rails/spec/rails/dsl/behaviour_factory_spec.rb +83 -0
  587. data/vendor/plugins/rspec_on_rails/spec/rails/dsl/configuration_spec.rb +56 -0
  588. data/vendor/plugins/rspec_on_rails/spec/rails/dsl/controller_isolation_spec.rb +43 -0
  589. data/vendor/plugins/rspec_on_rails/spec/rails/dsl/controller_spec_spec.rb +166 -0
  590. data/vendor/plugins/rspec_on_rails/spec/rails/dsl/helper_spec_spec.rb +106 -0
  591. data/vendor/plugins/rspec_on_rails/spec/rails/dsl/ivar_proxy_spec.rb +64 -0
  592. data/vendor/plugins/rspec_on_rails/spec/rails/dsl/model_spec_spec.rb +14 -0
  593. data/vendor/plugins/rspec_on_rails/spec/rails/dsl/shared_behaviour_spec.rb +16 -0
  594. data/vendor/plugins/rspec_on_rails/spec/rails/dsl/test_unit_assertion_accessibility_spec.rb +33 -0
  595. data/vendor/plugins/rspec_on_rails/spec/rails/dsl/view_spec_spec.rb +245 -0
  596. data/vendor/plugins/rspec_on_rails/spec/rails/extensions/action_controller_rescue_action_spec.rb +54 -0
  597. data/vendor/plugins/rspec_on_rails/spec/rails/extensions/action_view_base_spec.rb +34 -0
  598. data/vendor/plugins/rspec_on_rails/spec/rails/extensions/active_record_spec.rb +17 -0
  599. data/vendor/plugins/rspec_on_rails/spec/rails/matchers/assert_select_spec.rb +783 -0
  600. data/vendor/plugins/rspec_on_rails/spec/rails/matchers/description_generation_spec.rb +40 -0
  601. data/vendor/plugins/rspec_on_rails/spec/rails/matchers/errors_on_spec.rb +13 -0
  602. data/vendor/plugins/rspec_on_rails/spec/rails/matchers/redirect_to_spec.rb +203 -0
  603. data/vendor/plugins/rspec_on_rails/spec/rails/matchers/render_spec.rb +131 -0
  604. data/vendor/plugins/rspec_on_rails/spec/rails/mocks/mock_model_spec.rb +65 -0
  605. data/vendor/plugins/rspec_on_rails/spec/rails/sample_spec.rb +7 -0
  606. data/vendor/plugins/rspec_on_rails/spec/rails/spec_server_spec.rb +47 -0
  607. data/vendor/plugins/rspec_on_rails/spec/rails/spec_spec.rb +11 -0
  608. data/vendor/plugins/rspec_on_rails/spec/rails_suite.rb +7 -0
  609. data/vendor/plugins/rspec_on_rails/spec/spec_helper.rb +48 -0
  610. data/vendor/plugins/rspec_on_rails/spec_resources/controllers/action_view_base_spec_controller.rb +2 -0
  611. data/vendor/plugins/rspec_on_rails/spec_resources/controllers/controller_spec_controller.rb +48 -0
  612. data/vendor/plugins/rspec_on_rails/spec_resources/controllers/redirect_spec_controller.rb +59 -0
  613. data/vendor/plugins/rspec_on_rails/spec_resources/controllers/render_spec_controller.rb +22 -0
  614. data/vendor/plugins/rspec_on_rails/spec_resources/controllers/rjs_spec_controller.rb +58 -0
  615. data/vendor/plugins/rspec_on_rails/spec_resources/helpers/explicit_helper.rb +10 -0
  616. data/vendor/plugins/rspec_on_rails/spec_resources/helpers/more_explicit_helper.rb +5 -0
  617. data/vendor/plugins/rspec_on_rails/spec_resources/helpers/plugin_application_helper.rb +6 -0
  618. data/vendor/plugins/rspec_on_rails/spec_resources/helpers/view_spec_helper.rb +13 -0
  619. data/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/_partial.rhtml +0 -0
  620. data/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_setting_flash_after_session_reset.rhtml +1 -0
  621. data/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_setting_flash_before_session_reset.rhtml +1 -0
  622. data/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_setting_the_assigns_hash.rhtml +0 -0
  623. data/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_with_errors_in_template.rhtml +1 -0
  624. data/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_with_template.rhtml +1 -0
  625. data/vendor/plugins/rspec_on_rails/spec_resources/views/render_spec/_a_partial.rhtml +0 -0
  626. data/vendor/plugins/rspec_on_rails/spec_resources/views/render_spec/some_action.js.rjs +1 -0
  627. data/vendor/plugins/rspec_on_rails/spec_resources/views/render_spec/some_action.rhtml +0 -0
  628. data/vendor/plugins/rspec_on_rails/spec_resources/views/render_spec/some_action.rjs +1 -0
  629. data/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/_replacement_partial.rhtml +1 -0
  630. data/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/hide_div.rjs +1 -0
  631. data/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/hide_page_element.rjs +1 -0
  632. data/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/insert_html.rjs +1 -0
  633. data/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/replace.rjs +1 -0
  634. data/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/replace_html.rjs +1 -0
  635. data/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/replace_html_with_partial.rjs +1 -0
  636. data/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/visual_effect.rjs +1 -0
  637. data/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/visual_toggle_effect.rjs +1 -0
  638. data/vendor/plugins/rspec_on_rails/spec_resources/views/tag_spec/no_tags.rhtml +1 -0
  639. data/vendor/plugins/rspec_on_rails/spec_resources/views/tag_spec/single_div_with_no_attributes.rhtml +1 -0
  640. data/vendor/plugins/rspec_on_rails/spec_resources/views/tag_spec/single_div_with_one_attribute.rhtml +1 -0
  641. data/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/_partial.rhtml +2 -0
  642. data/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/_partial_used_twice.rhtml +0 -0
  643. data/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/_partial_with_local_variable.rhtml +1 -0
  644. data/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/_partial_with_sub_partial.rhtml +1 -0
  645. data/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/_spacer.rhtml +1 -0
  646. data/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/accessor.rhtml +3 -0
  647. data/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/entry_form.rhtml +2 -0
  648. data/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/explicit_helper.rhtml +2 -0
  649. data/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/foo/show.rhtml +1 -0
  650. data/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/implicit_helper.rhtml +2 -0
  651. data/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/multiple_helpers.rhtml +3 -0
  652. data/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/template_with_partial.rhtml +5 -0
  653. data/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/template_with_partial_using_collection.rhtml +3 -0
  654. data/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/template_with_partial_with_array.rhtml +1 -0
  655. data/vendor/plugins/rspec_on_rails/tasks/rspec.rake +133 -0
  656. metadata +875 -0
@@ -0,0 +1,66 @@
1
+ begin
2
+ require 'rubygems'
3
+ require 'diff/lcs' #necessary due to loading bug on some machines - not sure why - DaC
4
+ require 'diff/lcs/hunk'
5
+ rescue LoadError ; raise "You must gem install diff-lcs to use diffing" ; end
6
+
7
+ require 'pp'
8
+
9
+ module Spec
10
+ module Expectations
11
+ module Differs
12
+
13
+ # TODO add some rdoc
14
+ class Default
15
+ def initialize(options)
16
+ @options = options
17
+ end
18
+
19
+ # This is snagged from diff/lcs/ldiff.rb (which is a commandline tool)
20
+ def diff_as_string(data_old, data_new)
21
+ data_old = data_old.split(/\n/).map! { |e| e.chomp }
22
+ data_new = data_new.split(/\n/).map! { |e| e.chomp }
23
+ output = ""
24
+ diffs = Diff::LCS.diff(data_old, data_new)
25
+ return output if diffs.empty?
26
+ oldhunk = hunk = nil
27
+ file_length_difference = 0
28
+ diffs.each do |piece|
29
+ begin
30
+ hunk = Diff::LCS::Hunk.new(data_old, data_new, piece, context_lines,
31
+ file_length_difference)
32
+ file_length_difference = hunk.file_length_difference
33
+ next unless oldhunk
34
+ # Hunks may overlap, which is why we need to be careful when our
35
+ # diff includes lines of context. Otherwise, we might print
36
+ # redundant lines.
37
+ if (context_lines > 0) and hunk.overlaps?(oldhunk)
38
+ hunk.unshift(oldhunk)
39
+ else
40
+ output << oldhunk.diff(format)
41
+ end
42
+ ensure
43
+ oldhunk = hunk
44
+ output << "\n"
45
+ end
46
+ end
47
+ #Handle the last remaining hunk
48
+ output << oldhunk.diff(format) << "\n"
49
+ end
50
+
51
+ def diff_as_object(target,expected)
52
+ diff_as_string(PP.pp(target,""), PP.pp(expected,""))
53
+ end
54
+
55
+ protected
56
+ def format
57
+ @options.diff_format
58
+ end
59
+
60
+ def context_lines
61
+ @options.context_lines
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,6 @@
1
+ module Spec
2
+ module Expectations
3
+ class ExpectationNotMetError < StandardError
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,2 @@
1
+ require 'spec/expectations/extensions/object'
2
+ require 'spec/expectations/extensions/string_and_symbol'
@@ -0,0 +1,71 @@
1
+ module Spec
2
+ module Expectations
3
+ # rspec adds #should and #should_not to every Object (and,
4
+ # implicitly, every Class).
5
+ module ObjectExpectations
6
+ # :call-seq:
7
+ # should(matcher)
8
+ # should == expected
9
+ # should === expected
10
+ # should =~ expected
11
+ #
12
+ # receiver.should(matcher)
13
+ # => Passes if matcher.matches?(receiver)
14
+ #
15
+ # receiver.should == expected #any value
16
+ # => Passes if (receiver == expected)
17
+ #
18
+ # receiver.should === expected #any value
19
+ # => Passes if (receiver === expected)
20
+ #
21
+ # receiver.should =~ regexp
22
+ # => Passes if (receiver =~ regexp)
23
+ #
24
+ # See Spec::Matchers for more information about matchers
25
+ #
26
+ # == Warning
27
+ #
28
+ # NOTE that this does NOT support receiver.should != expected.
29
+ # Instead, use receiver.should_not == expected
30
+ def should(matcher = :default_parameter, &block)
31
+ if :default_parameter == matcher
32
+ Spec::Matchers::PositiveOperatorMatcher.new(self)
33
+ else
34
+ ExpectationMatcherHandler.handle_matcher(self, matcher, &block)
35
+ end
36
+ end
37
+
38
+ # :call-seq:
39
+ # should_not(matcher)
40
+ # should_not == expected
41
+ # should_not === expected
42
+ # should_not =~ expected
43
+ #
44
+ # receiver.should_not(matcher)
45
+ # => Passes unless matcher.matches?(receiver)
46
+ #
47
+ # receiver.should_not == expected
48
+ # => Passes unless (receiver == expected)
49
+ #
50
+ # receiver.should_not === expected
51
+ # => Passes unless (receiver === expected)
52
+ #
53
+ # receiver.should_not =~ regexp
54
+ # => Passes unless (receiver =~ regexp)
55
+ #
56
+ # See Spec::Matchers for more information about matchers
57
+ def should_not(matcher = :default_parameter, &block)
58
+ if :default_parameter == matcher
59
+ Spec::Matchers::NegativeOperatorMatcher.new(self)
60
+ else
61
+ NegativeExpectationMatcherHandler.handle_matcher(self, matcher, &block)
62
+ end
63
+ end
64
+
65
+ end
66
+ end
67
+ end
68
+
69
+ class Object
70
+ include Spec::Expectations::ObjectExpectations
71
+ end
@@ -0,0 +1,17 @@
1
+ module Spec
2
+ module Expectations
3
+ module StringHelpers
4
+ def starts_with?(prefix)
5
+ to_s[0..(prefix.to_s.length - 1)] == prefix.to_s
6
+ end
7
+ end
8
+ end
9
+ end
10
+
11
+ class String
12
+ include Spec::Expectations::StringHelpers
13
+ end
14
+
15
+ class Symbol
16
+ include Spec::Expectations::StringHelpers
17
+ end
@@ -0,0 +1,52 @@
1
+ module Spec
2
+ module Expectations
3
+ class InvalidMatcherError < ArgumentError; end
4
+
5
+ module MatcherHandlerHelper
6
+ def describe(matcher)
7
+ matcher.respond_to?(:description) ? matcher.description : "[#{matcher.class.name} does not provide a description]"
8
+ end
9
+ end
10
+
11
+ class ExpectationMatcherHandler
12
+ class << self
13
+ include MatcherHandlerHelper
14
+ def handle_matcher(actual, matcher, &block)
15
+ unless matcher.respond_to?(:matches?)
16
+ raise InvalidMatcherError, "Expected a matcher, got #{matcher.inspect}."
17
+ end
18
+
19
+ match = matcher.matches?(actual, &block)
20
+ ::Spec::Matchers.generated_description = "should #{describe(matcher)}"
21
+ Spec::Expectations.fail_with(matcher.failure_message) unless match
22
+ end
23
+ end
24
+ end
25
+
26
+ class NegativeExpectationMatcherHandler
27
+ class << self
28
+ include MatcherHandlerHelper
29
+ def handle_matcher(actual, matcher, &block)
30
+ unless matcher.respond_to?(:matches?)
31
+ raise InvalidMatcherError, "Expected a matcher, got #{matcher.inspect}."
32
+ end
33
+
34
+ unless matcher.respond_to?(:negative_failure_message)
35
+ Spec::Expectations.fail_with(
36
+ <<-EOF
37
+ Matcher does not support should_not.
38
+ See Spec::Matchers for more information
39
+ about matchers.
40
+ EOF
41
+ )
42
+ end
43
+ match = matcher.matches?(actual, &block)
44
+ ::Spec::Matchers.generated_description = "should not #{describe(matcher)}"
45
+ Spec::Expectations.fail_with(matcher.negative_failure_message) if match
46
+ end
47
+ end
48
+ end
49
+
50
+ end
51
+ end
52
+
@@ -0,0 +1,2 @@
1
+ require 'spec/extensions/object'
2
+ require 'spec/extensions/main'
@@ -0,0 +1,51 @@
1
+ module Spec
2
+ module Extensions
3
+ module Main
4
+ # Creates and registers an instance of a Spec::DSL::Example (or a subclass).
5
+ # The instantiated behaviour class depends on the directory of the file
6
+ # calling this method. For example, Spec::Rails will use different
7
+ # classes for specs living in <tt>spec/models</tt>, <tt>spec/helpers</tt>,
8
+ # <tt>spec/views</tt> and <tt>spec/controllers</tt>.
9
+ #
10
+ # It is also possible to override autodiscovery of the behaviour class
11
+ # with an options Hash as the last argument:
12
+ #
13
+ # describe "name", :behaviour_type => :something_special do ...
14
+ #
15
+ # The reason for using different behaviour classes is to have
16
+ # different matcher methods available from within the <tt>describe</tt>
17
+ # block.
18
+ #
19
+ # See Spec::DSL::ExampleFactory#add_example_class for details about
20
+ # how to register special Spec::DSL::Example implementations.
21
+ #
22
+ def describe(*args, &block)
23
+ raise ArgumentError if args.empty?
24
+ raise ArgumentError unless block
25
+ args << {} unless Hash === args.last
26
+ args.last[:spec_path] = caller(0)[1]
27
+ behaviour = Spec::DSL::BehaviourFactory.create(*args, &block)
28
+ behaviour.register
29
+ behaviour
30
+ end
31
+ alias :context :describe
32
+
33
+ private
34
+
35
+ def rspec_options
36
+ $rspec_options ||= begin; \
37
+ parser = ::Spec::Runner::OptionParser.new(STDERR, STDOUT); \
38
+ parser.order!(ARGV); \
39
+ $rspec_options = parser.options; \
40
+ end
41
+ $rspec_options
42
+ end
43
+
44
+ def init_rspec_options(options)
45
+ $rspec_options = options if $rspec_options.nil?
46
+ end
47
+ end
48
+ end
49
+ end
50
+
51
+ include Spec::Extensions::Main
@@ -0,0 +1,10 @@
1
+ class Object
2
+ def args_and_options(*args)
3
+ options = Hash === args.last ? args.pop : {}
4
+ return args, options
5
+ end
6
+
7
+ def metaclass
8
+ class << self; self; end
9
+ end
10
+ end
@@ -0,0 +1,153 @@
1
+ require 'spec/matchers/simple_matcher'
2
+ require 'spec/matchers/be'
3
+ require 'spec/matchers/be_close'
4
+ require 'spec/matchers/change'
5
+ require 'spec/matchers/eql'
6
+ require 'spec/matchers/equal'
7
+ require 'spec/matchers/has'
8
+ require 'spec/matchers/have'
9
+ require 'spec/matchers/include'
10
+ require 'spec/matchers/match'
11
+ require 'spec/matchers/raise_error'
12
+ require 'spec/matchers/respond_to'
13
+ require 'spec/matchers/satisfy'
14
+ require 'spec/matchers/throw_symbol'
15
+ require 'spec/matchers/operator_matcher'
16
+
17
+ module Spec
18
+
19
+ # RSpec ships with a number of useful Expression Matchers. An Expression Matcher
20
+ # is any object that responds to the following methods:
21
+ #
22
+ # matches?(actual)
23
+ # failure_message
24
+ # negative_failure_message #optional
25
+ # description #optional
26
+ #
27
+ # See Spec::Expectations to learn how to use these as Expectation Matchers.
28
+ # See Spec::Mocks to learn how to use them as Mock Argument Constraints.
29
+ #
30
+ # == Predicates
31
+ #
32
+ # In addition to those Expression Matchers that are defined explicitly, RSpec will
33
+ # create custom Matchers on the fly for any arbitrary predicate, giving your specs
34
+ # a much more natural language feel.
35
+ #
36
+ # A Ruby predicate is a method that ends with a "?" and returns true or false.
37
+ # Common examples are +empty?+, +nil?+, and +instance_of?+.
38
+ #
39
+ # All you need to do is write +should be_+ followed by the predicate without
40
+ # the question mark, and RSpec will figure it out from there. For example:
41
+ #
42
+ # [].should be_empty => [].empty? #passes
43
+ # [].should_not be_empty => [].empty? #fails
44
+ #
45
+ # In addtion to prefixing the predicate matchers with "be_", you can also use "be_a_"
46
+ # and "be_an_", making your specs read much more naturally:
47
+ #
48
+ # "a string".should be_an_instance_of(String) =>"a string".instance_of?(String) #passes
49
+ #
50
+ # 3.should be_a_kind_of(Fixnum) => 3.kind_of?(Numeric) #passes
51
+ # 3.should be_a_kind_of(Numeric) => 3.kind_of?(Numeric) #passes
52
+ # 3.should be_an_instance_of(Fixnum) => 3.instance_of?(Fixnum) #passes
53
+ # 3.should_not be_instance_of(Numeric) => 3.instance_of?(Numeric) #fails
54
+ #
55
+ # RSpec will also create custom matchers for predicates like +has_key?+. To
56
+ # use this feature, just state that the object should have_key(:key) and RSpec will
57
+ # call has_key?(:key) on the target. For example:
58
+ #
59
+ # {:a => "A"}.should have_key(:a) => {:a => "A"}.has_key?(:a) #passes
60
+ # {:a => "A"}.should have_key(:b) => {:a => "A"}.has_key?(:b) #fails
61
+ #
62
+ # You can use this feature to invoke any predicate that begins with "has_", whether it is
63
+ # part of the Ruby libraries (like +Hash#has_key?+) or a method you wrote on your own class.
64
+ #
65
+ # == Custom Expectation Matchers
66
+ #
67
+ # When you find that none of the stock Expectation Matchers provide a natural
68
+ # feeling expectation, you can very easily write your own.
69
+ #
70
+ # For example, imagine that you are writing a game in which players can
71
+ # be in various zones on a virtual board. To specify that bob should
72
+ # be in zone 4, you could say:
73
+ #
74
+ # bob.current_zone.should eql(Zone.new("4"))
75
+ #
76
+ # But you might find it more expressive to say:
77
+ #
78
+ # bob.should be_in_zone("4")
79
+ #
80
+ # and/or
81
+ #
82
+ # bob.should_not be_in_zone("3")
83
+ #
84
+ # To do this, you would need to write a class like this:
85
+ #
86
+ # class BeInZone
87
+ # def initialize(expected)
88
+ # @expected = expected
89
+ # end
90
+ # def matches?(target)
91
+ # @target = target
92
+ # @target.current_zone.eql?(Zone.new(@expected))
93
+ # end
94
+ # def failure_message
95
+ # "expected #{@target.inspect} to be in Zone #{@expected}"
96
+ # end
97
+ # def negative_failure_message
98
+ # "expected #{@target.inspect} not to be in Zone #{@expected}"
99
+ # end
100
+ # end
101
+ #
102
+ # ... and a method like this:
103
+ #
104
+ # def be_in_zone(expected)
105
+ # BeInZone.new(expected)
106
+ # end
107
+ #
108
+ # And then expose the method to your specs. This is normally done
109
+ # by including the method and the class in a module, which is then
110
+ # included in your spec:
111
+ #
112
+ # module CustomGameMatchers
113
+ # class BeInZone
114
+ # ...
115
+ # end
116
+ #
117
+ # def be_in_zone(expected)
118
+ # ...
119
+ # end
120
+ # end
121
+ #
122
+ # describe "Player behaviour" do
123
+ # include CustomGameMatchers
124
+ # ...
125
+ # end
126
+ #
127
+ # or you can include in globally in a spec_helper.rb file <tt>require</tt>d
128
+ # from your spec file(s):
129
+ #
130
+ # Spec::Runner.configure do |config|
131
+ # config.include(CustomGameMatchers)
132
+ # end
133
+ #
134
+ module Matchers
135
+ module ModuleMethods
136
+ attr_accessor :generated_description
137
+ def clear_generated_description
138
+ @generated_description = nil
139
+ end
140
+ end
141
+ extend ModuleMethods
142
+
143
+ def method_missing(sym, *args, &block) # :nodoc:
144
+ return Matchers::Be.new(sym, *args) if sym.starts_with?("be_")
145
+ return Matchers::Has.new(sym, *args) if sym.starts_with?("have_")
146
+ super
147
+ end
148
+
149
+ class MatcherError < StandardError
150
+ end
151
+
152
+ end
153
+ end
@@ -0,0 +1,206 @@
1
+ module Spec
2
+ module Matchers
3
+
4
+ class Be #:nodoc:
5
+ def initialize(*args)
6
+ @expected = parse_expected(args.shift)
7
+ @args = args
8
+ @comparison = ""
9
+ end
10
+
11
+ def matches?(actual)
12
+ @actual = actual
13
+ return true if match_or_compare unless handling_predicate?
14
+ if handling_predicate?
15
+ begin
16
+ return @result = actual.__send__(predicate, *@args)
17
+ rescue => predicate_error
18
+ # This clause should be empty, but rcov will not report it as covered
19
+ # unless something (anything) is executed within the clause
20
+ rcov_error_report = "http://eigenclass.org/hiki.rb?rcov-0.8.0"
21
+ end
22
+
23
+ # This supports should_exist > target.exists? in the old world.
24
+ # We should consider deprecating that ability as in the new world
25
+ # you can't write "should exist" unless you have your own custom matcher.
26
+ begin
27
+ return @result = actual.__send__(present_tense_predicate, *@args)
28
+ rescue
29
+ raise predicate_error
30
+ end
31
+ end
32
+ return false
33
+ end
34
+
35
+ def failure_message
36
+ return "expected #{@comparison}#{expected}, got #{@actual.inspect}" unless handling_predicate?
37
+ return "expected #{predicate}#{args_to_s} to return true, got #{@result.inspect}"
38
+ end
39
+
40
+ def negative_failure_message
41
+ return "expected not #{expected}, got #{@actual.inspect}" unless handling_predicate?
42
+ return "expected #{predicate}#{args_to_s} to return false, got #{@result.inspect}"
43
+ end
44
+
45
+ def expected
46
+ return true if @expected == :true
47
+ return false if @expected == :false
48
+ return "nil" if @expected == :nil
49
+ return @expected.inspect
50
+ end
51
+
52
+ def match_or_compare
53
+ return @actual == true if @expected == :true
54
+ return @actual == false if @expected == :false
55
+ return @actual.nil? if @expected == :nil
56
+ return @actual < @expected if @less_than
57
+ return @actual <= @expected if @less_than_or_equal
58
+ return @actual >= @expected if @greater_than_or_equal
59
+ return @actual > @expected if @greater_than
60
+ return @actual == @expected if @double_equal
61
+ return @actual === @expected if @triple_equal
62
+ return @actual.equal?(@expected)
63
+ end
64
+
65
+ def ==(expected)
66
+ @double_equal = true
67
+ @comparison = "== "
68
+ @expected = expected
69
+ self
70
+ end
71
+
72
+ def ===(expected)
73
+ @triple_equal = true
74
+ @comparison = "=== "
75
+ @expected = expected
76
+ self
77
+ end
78
+
79
+ def <(expected)
80
+ @less_than = true
81
+ @comparison = "< "
82
+ @expected = expected
83
+ self
84
+ end
85
+
86
+ def <=(expected)
87
+ @less_than_or_equal = true
88
+ @comparison = "<= "
89
+ @expected = expected
90
+ self
91
+ end
92
+
93
+ def >=(expected)
94
+ @greater_than_or_equal = true
95
+ @comparison = ">= "
96
+ @expected = expected
97
+ self
98
+ end
99
+
100
+ def >(expected)
101
+ @greater_than = true
102
+ @comparison = "> "
103
+ @expected = expected
104
+ self
105
+ end
106
+
107
+ def description
108
+ "#{prefix_to_sentence}#{comparison}#{expected_to_sentence}#{args_to_sentence}"
109
+ end
110
+
111
+ private
112
+ def parse_expected(expected)
113
+ if Symbol === expected
114
+ @handling_predicate = true
115
+ ["be_an_","be_a_","be_"].each do |@prefix|
116
+ return "#{expected.to_s.sub(@prefix,"")}".to_sym if expected.starts_with?(@prefix)
117
+ end
118
+ end
119
+ @prefix = "be "
120
+ return expected
121
+ end
122
+
123
+ def handling_predicate?
124
+ return false if [:true, :false, :nil].include?(@expected)
125
+ return @handling_predicate
126
+ end
127
+
128
+ def predicate
129
+ "#{@expected.to_s}?".to_sym
130
+ end
131
+
132
+ def present_tense_predicate
133
+ "#{@expected.to_s}s?".to_sym
134
+ end
135
+
136
+ def args_to_s
137
+ return "" if @args.empty?
138
+ inspected_args = @args.collect{|a| a.inspect}
139
+ return "(#{inspected_args.join(', ')})"
140
+ end
141
+
142
+ def comparison
143
+ @comparison
144
+ end
145
+
146
+ def expected_to_sentence
147
+ split_words(@expected)
148
+ end
149
+
150
+ def prefix_to_sentence
151
+ split_words(@prefix)
152
+ end
153
+
154
+ def split_words(sym)
155
+ sym.to_s.gsub(/_/,' ')
156
+ end
157
+
158
+ def args_to_sentence
159
+ case @args.length
160
+ when 0
161
+ ""
162
+ when 1
163
+ " #{@args[0]}"
164
+ else
165
+ " #{@args[0...-1].join(', ')} and #{@args[-1]}"
166
+ end
167
+ end
168
+
169
+ end
170
+
171
+ # :call-seq:
172
+ # should be_true
173
+ # should be_false
174
+ # should be_nil
175
+ # should be_arbitrary_predicate(*args)
176
+ # should_not be_nil
177
+ # should_not be_arbitrary_predicate(*args)
178
+ #
179
+ # Given true, false, or nil, will pass if actual is
180
+ # true, false or nil (respectively).
181
+ #
182
+ # Predicates are any Ruby method that ends in a "?" and returns true or false.
183
+ # Given be_ followed by arbitrary_predicate (without the "?"), RSpec will match
184
+ # convert that into a query against the target object.
185
+ #
186
+ # The arbitrary_predicate feature will handle any predicate
187
+ # prefixed with "be_an_" (e.g. be_an_instance_of), "be_a_" (e.g. be_a_kind_of)
188
+ # or "be_" (e.g. be_empty), letting you choose the prefix that best suits the predicate.
189
+ #
190
+ # == Examples
191
+ #
192
+ # target.should be_true
193
+ # target.should be_false
194
+ # target.should be_nil
195
+ # target.should_not be_nil
196
+ #
197
+ # collection.should be_empty #passes if target.empty?
198
+ # "this string".should be_an_intance_of(String)
199
+ #
200
+ # target.should_not be_empty #passes unless target.empty?
201
+ # target.should_not be_old_enough(16) #passes unless target.old_enough?(16)
202
+ def be(*args)
203
+ Matchers::Be.new(*args)
204
+ end
205
+ end
206
+ end