mack 0.8.1 → 0.8.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 (477) hide show
  1. data/CHANGELOG +22 -1
  2. data/bin/mack +3 -0
  3. data/bin/mackery-console +4 -0
  4. data/bin/mackery-server +21 -4
  5. data/lib/gems.rb +15 -0
  6. data/lib/gems/abstract-1.0.0/lib/abstract.rb +75 -0
  7. data/lib/gems/builder-2.1.2/lib/blankslate.rb +113 -0
  8. data/lib/gems/builder-2.1.2/lib/builder.rb +13 -0
  9. data/lib/gems/builder-2.1.2/lib/builder/blankslate.rb +20 -0
  10. data/lib/gems/builder-2.1.2/lib/builder/css.rb +250 -0
  11. data/lib/gems/builder-2.1.2/lib/builder/xchar.rb +115 -0
  12. data/lib/gems/builder-2.1.2/lib/builder/xmlbase.rb +139 -0
  13. data/lib/gems/builder-2.1.2/lib/builder/xmlevents.rb +63 -0
  14. data/lib/gems/builder-2.1.2/lib/builder/xmlmarkup.rb +328 -0
  15. data/lib/gems/configatron-2.1.5/lib/configatron.rb +6 -0
  16. data/lib/gems/configatron-2.1.5/lib/configatron/configatron.rb +52 -0
  17. data/lib/gems/configatron-2.1.5/lib/configatron/errors.rb +7 -0
  18. data/lib/gems/configatron-2.1.5/lib/configatron/kernel.rb +8 -0
  19. data/lib/gems/configatron-2.1.5/lib/configatron/store.rb +224 -0
  20. data/lib/gems/daemons-1.0.10/lib/daemons.rb +283 -0
  21. data/lib/gems/daemons-1.0.10/lib/daemons/application.rb +372 -0
  22. data/lib/gems/daemons-1.0.10/lib/daemons/application_group.rb +152 -0
  23. data/lib/gems/daemons-1.0.10/lib/daemons/cmdline.rb +117 -0
  24. data/lib/gems/daemons-1.0.10/lib/daemons/controller.rb +134 -0
  25. data/lib/gems/daemons-1.0.10/lib/daemons/daemonize.rb +263 -0
  26. data/lib/gems/daemons-1.0.10/lib/daemons/exceptions.rb +28 -0
  27. data/lib/gems/daemons-1.0.10/lib/daemons/monitor.rb +127 -0
  28. data/lib/gems/daemons-1.0.10/lib/daemons/pid.rb +101 -0
  29. data/lib/gems/daemons-1.0.10/lib/daemons/pidfile.rb +111 -0
  30. data/lib/gems/daemons-1.0.10/lib/daemons/pidmem.rb +10 -0
  31. data/lib/gems/flexmock-0.8.3/lib/flexmock.rb +13 -0
  32. data/lib/gems/flexmock-0.8.3/lib/flexmock/argument_matchers.rb +57 -0
  33. data/lib/gems/flexmock-0.8.3/lib/flexmock/argument_types.rb +42 -0
  34. data/lib/gems/flexmock-0.8.3/lib/flexmock/base.rb +24 -0
  35. data/lib/gems/flexmock-0.8.3/lib/flexmock/composite.rb +10 -0
  36. data/lib/gems/flexmock-0.8.3/lib/flexmock/core.rb +218 -0
  37. data/lib/gems/flexmock-0.8.3/lib/flexmock/core_class_methods.rb +83 -0
  38. data/lib/gems/flexmock-0.8.3/lib/flexmock/default_framework_adapter.rb +31 -0
  39. data/lib/gems/flexmock-0.8.3/lib/flexmock/deprecated_methods.rb +62 -0
  40. data/lib/gems/flexmock-0.8.3/lib/flexmock/errors.rb +23 -0
  41. data/lib/gems/flexmock-0.8.3/lib/flexmock/expectation.rb +476 -0
  42. data/lib/gems/flexmock-0.8.3/lib/flexmock/expectation_director.rb +87 -0
  43. data/lib/gems/flexmock-0.8.3/lib/flexmock/mock_container.rb +321 -0
  44. data/lib/gems/flexmock-0.8.3/lib/flexmock/noop.rb +13 -0
  45. data/lib/gems/flexmock-0.8.3/lib/flexmock/ordering.rb +51 -0
  46. data/lib/gems/flexmock-0.8.3/lib/flexmock/partial_mock.rb +291 -0
  47. data/lib/gems/flexmock-0.8.3/lib/flexmock/rails.rb +15 -0
  48. data/lib/gems/flexmock-0.8.3/lib/flexmock/rails/view_mocking.rb +102 -0
  49. data/lib/gems/flexmock-0.8.3/lib/flexmock/recorder.rb +71 -0
  50. data/lib/gems/flexmock-0.8.3/lib/flexmock/rspec.rb +34 -0
  51. data/lib/gems/flexmock-0.8.3/lib/flexmock/test_unit.rb +32 -0
  52. data/lib/gems/flexmock-0.8.3/lib/flexmock/test_unit_integration.rb +53 -0
  53. data/lib/gems/flexmock-0.8.3/lib/flexmock/undefined.rb +50 -0
  54. data/lib/gems/flexmock-0.8.3/lib/flexmock/validators.rb +77 -0
  55. data/lib/gems/genosaurus-1.2.4/lib/genosaurus.rb +233 -0
  56. data/lib/gems/lockfile-1.4.3/bin/rlock +360 -0
  57. data/lib/gems/lockfile-1.4.3/bin/rlock-1.4.3 +360 -0
  58. data/lib/gems/lockfile-1.4.3/lib/lockfile-1.4.3.rb +564 -0
  59. data/lib/gems/lockfile-1.4.3/lib/lockfile.rb +564 -0
  60. data/lib/gems/logging-0.9.4/data/bad_logging_1.rb +13 -0
  61. data/lib/gems/logging-0.9.4/data/bad_logging_2.rb +21 -0
  62. data/lib/gems/logging-0.9.4/data/logging.rb +42 -0
  63. data/lib/gems/logging-0.9.4/data/logging.yaml +63 -0
  64. data/lib/gems/logging-0.9.4/data/simple_logging.rb +13 -0
  65. data/lib/gems/logging-0.9.4/lib/logging.rb +404 -0
  66. data/lib/gems/logging-0.9.4/lib/logging/appender.rb +300 -0
  67. data/lib/gems/logging-0.9.4/lib/logging/appenders/console.rb +62 -0
  68. data/lib/gems/logging-0.9.4/lib/logging/appenders/email.rb +130 -0
  69. data/lib/gems/logging-0.9.4/lib/logging/appenders/file.rb +54 -0
  70. data/lib/gems/logging-0.9.4/lib/logging/appenders/growl.rb +197 -0
  71. data/lib/gems/logging-0.9.4/lib/logging/appenders/io.rb +80 -0
  72. data/lib/gems/logging-0.9.4/lib/logging/appenders/rolling_file.rb +291 -0
  73. data/lib/gems/logging-0.9.4/lib/logging/appenders/syslog.rb +201 -0
  74. data/lib/gems/logging-0.9.4/lib/logging/config/configurator.rb +190 -0
  75. data/lib/gems/logging-0.9.4/lib/logging/config/yaml_configurator.rb +195 -0
  76. data/lib/gems/logging-0.9.4/lib/logging/layout.rb +110 -0
  77. data/lib/gems/logging-0.9.4/lib/logging/layouts/basic.rb +34 -0
  78. data/lib/gems/logging-0.9.4/lib/logging/layouts/pattern.rb +291 -0
  79. data/lib/gems/logging-0.9.4/lib/logging/log_event.rb +49 -0
  80. data/lib/gems/logging-0.9.4/lib/logging/logger.rb +490 -0
  81. data/lib/gems/logging-0.9.4/lib/logging/repository.rb +172 -0
  82. data/lib/gems/logging-0.9.4/lib/logging/root_logger.rb +61 -0
  83. data/lib/gems/logging-0.9.4/lib/logging/stats.rb +278 -0
  84. data/lib/gems/logging-0.9.4/lib/logging/utils.rb +130 -0
  85. data/lib/gems/rack-0.4.0/bin/rackup +172 -0
  86. data/lib/gems/rack-0.4.0/lib/rack.rb +81 -0
  87. data/lib/gems/rack-0.4.0/lib/rack/adapter/camping.rb +22 -0
  88. data/lib/gems/rack-0.4.0/lib/rack/auth/abstract/handler.rb +28 -0
  89. data/lib/gems/rack-0.4.0/lib/rack/auth/abstract/request.rb +37 -0
  90. data/lib/gems/rack-0.4.0/lib/rack/auth/basic.rb +58 -0
  91. data/lib/gems/rack-0.4.0/lib/rack/auth/digest/md5.rb +124 -0
  92. data/lib/gems/rack-0.4.0/lib/rack/auth/digest/nonce.rb +51 -0
  93. data/lib/gems/rack-0.4.0/lib/rack/auth/digest/params.rb +55 -0
  94. data/lib/gems/rack-0.4.0/lib/rack/auth/digest/request.rb +40 -0
  95. data/lib/gems/rack-0.4.0/lib/rack/auth/openid.rb +437 -0
  96. data/lib/gems/rack-0.4.0/lib/rack/builder.rb +56 -0
  97. data/lib/gems/rack-0.4.0/lib/rack/cascade.rb +36 -0
  98. data/lib/gems/rack-0.4.0/lib/rack/commonlogger.rb +61 -0
  99. data/lib/gems/rack-0.4.0/lib/rack/deflater.rb +63 -0
  100. data/lib/gems/rack-0.4.0/lib/rack/directory.rb +158 -0
  101. data/lib/gems/rack-0.4.0/lib/rack/file.rb +116 -0
  102. data/lib/gems/rack-0.4.0/lib/rack/handler.rb +44 -0
  103. data/lib/gems/rack-0.4.0/lib/rack/handler/cgi.rb +57 -0
  104. data/lib/gems/rack-0.4.0/lib/rack/handler/evented_mongrel.rb +8 -0
  105. data/lib/gems/rack-0.4.0/lib/rack/handler/fastcgi.rb +84 -0
  106. data/lib/gems/rack-0.4.0/lib/rack/handler/lsws.rb +52 -0
  107. data/lib/gems/rack-0.4.0/lib/rack/handler/mongrel.rb +78 -0
  108. data/lib/gems/rack-0.4.0/lib/rack/handler/scgi.rb +57 -0
  109. data/lib/gems/rack-0.4.0/lib/rack/handler/webrick.rb +57 -0
  110. data/lib/gems/rack-0.4.0/lib/rack/lint.rb +401 -0
  111. data/lib/gems/rack-0.4.0/lib/rack/lobster.rb +65 -0
  112. data/lib/gems/rack-0.4.0/lib/rack/mock.rb +160 -0
  113. data/lib/gems/rack-0.4.0/lib/rack/recursive.rb +57 -0
  114. data/lib/gems/rack-0.4.0/lib/rack/reloader.rb +64 -0
  115. data/lib/gems/rack-0.4.0/lib/rack/request.rb +209 -0
  116. data/lib/gems/rack-0.4.0/lib/rack/response.rb +166 -0
  117. data/lib/gems/rack-0.4.0/lib/rack/session/abstract/id.rb +140 -0
  118. data/lib/gems/rack-0.4.0/lib/rack/session/cookie.rb +71 -0
  119. data/lib/gems/rack-0.4.0/lib/rack/session/memcache.rb +97 -0
  120. data/lib/gems/rack-0.4.0/lib/rack/session/pool.rb +73 -0
  121. data/lib/gems/rack-0.4.0/lib/rack/showexceptions.rb +344 -0
  122. data/lib/gems/rack-0.4.0/lib/rack/showstatus.rb +105 -0
  123. data/lib/gems/rack-0.4.0/lib/rack/static.rb +38 -0
  124. data/lib/gems/rack-0.4.0/lib/rack/urlmap.rb +48 -0
  125. data/lib/gems/rack-0.4.0/lib/rack/utils.rb +318 -0
  126. data/lib/gems/rcov-0.8.1.2.0/bin/rcov +1327 -0
  127. data/lib/gems/rcov-0.8.1.2.0/ext/rcovrt/callsite.c +242 -0
  128. data/lib/gems/rcov-0.8.1.2.0/ext/rcovrt/extconf.rb +11 -0
  129. data/lib/gems/rcov-0.8.1.2.0/ext/rcovrt/rcovrt.c +329 -0
  130. data/lib/gems/rcov-0.8.1.2.0/lib/rcov.rb +988 -0
  131. data/lib/gems/rcov-0.8.1.2.0/lib/rcov/lowlevel.rb +147 -0
  132. data/lib/gems/rcov-0.8.1.2.0/lib/rcov/rant.rb +87 -0
  133. data/lib/gems/rcov-0.8.1.2.0/lib/rcov/rcovtask.rb +156 -0
  134. data/lib/gems/rcov-0.8.1.2.0/lib/rcov/report.rb +1236 -0
  135. data/lib/gems/rcov-0.8.1.2.0/lib/rcov/version.rb +13 -0
  136. data/lib/gems/rspec-1.1.11/bin/autospec +4 -0
  137. data/lib/gems/rspec-1.1.11/bin/spec +4 -0
  138. data/lib/gems/rspec-1.1.11/lib/autotest/discover.rb +3 -0
  139. data/lib/gems/rspec-1.1.11/lib/autotest/rspec.rb +46 -0
  140. data/lib/gems/rspec-1.1.11/lib/spec.rb +32 -0
  141. data/lib/gems/rspec-1.1.11/lib/spec/adapters.rb +1 -0
  142. data/lib/gems/rspec-1.1.11/lib/spec/adapters/ruby_engine.rb +26 -0
  143. data/lib/gems/rspec-1.1.11/lib/spec/adapters/ruby_engine/mri.rb +8 -0
  144. data/lib/gems/rspec-1.1.11/lib/spec/adapters/ruby_engine/rubinius.rb +8 -0
  145. data/lib/gems/rspec-1.1.11/lib/spec/example.rb +12 -0
  146. data/lib/gems/rspec-1.1.11/lib/spec/example/before_and_after_hooks.rb +93 -0
  147. data/lib/gems/rspec-1.1.11/lib/spec/example/configuration.rb +167 -0
  148. data/lib/gems/rspec-1.1.11/lib/spec/example/errors.rb +30 -0
  149. data/lib/gems/rspec-1.1.11/lib/spec/example/example_group.rb +25 -0
  150. data/lib/gems/rspec-1.1.11/lib/spec/example/example_group_factory.rb +81 -0
  151. data/lib/gems/rspec-1.1.11/lib/spec/example/example_group_methods.rb +368 -0
  152. data/lib/gems/rspec-1.1.11/lib/spec/example/example_matcher.rb +44 -0
  153. data/lib/gems/rspec-1.1.11/lib/spec/example/example_methods.rb +105 -0
  154. data/lib/gems/rspec-1.1.11/lib/spec/example/module_reopening_fix.rb +21 -0
  155. data/lib/gems/rspec-1.1.11/lib/spec/example/pending.rb +18 -0
  156. data/lib/gems/rspec-1.1.11/lib/spec/example/shared_example_group.rb +52 -0
  157. data/lib/gems/rspec-1.1.11/lib/spec/expectations.rb +56 -0
  158. data/lib/gems/rspec-1.1.11/lib/spec/expectations/differs/default.rb +66 -0
  159. data/lib/gems/rspec-1.1.11/lib/spec/expectations/errors.rb +12 -0
  160. data/lib/gems/rspec-1.1.11/lib/spec/expectations/extensions.rb +2 -0
  161. data/lib/gems/rspec-1.1.11/lib/spec/expectations/extensions/object.rb +63 -0
  162. data/lib/gems/rspec-1.1.11/lib/spec/expectations/extensions/string_and_symbol.rb +17 -0
  163. data/lib/gems/rspec-1.1.11/lib/spec/expectations/handler.rb +52 -0
  164. data/lib/gems/rspec-1.1.11/lib/spec/extensions.rb +4 -0
  165. data/lib/gems/rspec-1.1.11/lib/spec/extensions/class.rb +24 -0
  166. data/lib/gems/rspec-1.1.11/lib/spec/extensions/main.rb +87 -0
  167. data/lib/gems/rspec-1.1.11/lib/spec/extensions/metaclass.rb +7 -0
  168. data/lib/gems/rspec-1.1.11/lib/spec/extensions/object.rb +6 -0
  169. data/lib/gems/rspec-1.1.11/lib/spec/interop/test.rb +12 -0
  170. data/lib/gems/rspec-1.1.11/lib/spec/interop/test/unit/autorunner.rb +6 -0
  171. data/lib/gems/rspec-1.1.11/lib/spec/interop/test/unit/testcase.rb +71 -0
  172. data/lib/gems/rspec-1.1.11/lib/spec/interop/test/unit/testresult.rb +6 -0
  173. data/lib/gems/rspec-1.1.11/lib/spec/interop/test/unit/testsuite_adapter.rb +34 -0
  174. data/lib/gems/rspec-1.1.11/lib/spec/interop/test/unit/ui/console/testrunner.rb +61 -0
  175. data/lib/gems/rspec-1.1.11/lib/spec/matchers.rb +162 -0
  176. data/lib/gems/rspec-1.1.11/lib/spec/matchers/be.rb +221 -0
  177. data/lib/gems/rspec-1.1.11/lib/spec/matchers/be_close.rb +37 -0
  178. data/lib/gems/rspec-1.1.11/lib/spec/matchers/change.rb +148 -0
  179. data/lib/gems/rspec-1.1.11/lib/spec/matchers/eql.rb +43 -0
  180. data/lib/gems/rspec-1.1.11/lib/spec/matchers/equal.rb +43 -0
  181. data/lib/gems/rspec-1.1.11/lib/spec/matchers/exist.rb +22 -0
  182. data/lib/gems/rspec-1.1.11/lib/spec/matchers/has.rb +34 -0
  183. data/lib/gems/rspec-1.1.11/lib/spec/matchers/have.rb +150 -0
  184. data/lib/gems/rspec-1.1.11/lib/spec/matchers/include.rb +77 -0
  185. data/lib/gems/rspec-1.1.11/lib/spec/matchers/match.rb +41 -0
  186. data/lib/gems/rspec-1.1.11/lib/spec/matchers/operator_matcher.rb +79 -0
  187. data/lib/gems/rspec-1.1.11/lib/spec/matchers/raise_error.rb +132 -0
  188. data/lib/gems/rspec-1.1.11/lib/spec/matchers/respond_to.rb +46 -0
  189. data/lib/gems/rspec-1.1.11/lib/spec/matchers/satisfy.rb +47 -0
  190. data/lib/gems/rspec-1.1.11/lib/spec/matchers/simple_matcher.rb +132 -0
  191. data/lib/gems/rspec-1.1.11/lib/spec/matchers/throw_symbol.rb +74 -0
  192. data/lib/gems/rspec-1.1.11/lib/spec/mocks.rb +200 -0
  193. data/lib/gems/rspec-1.1.11/lib/spec/mocks/argument_constraints.rb +165 -0
  194. data/lib/gems/rspec-1.1.11/lib/spec/mocks/argument_expectation.rb +49 -0
  195. data/lib/gems/rspec-1.1.11/lib/spec/mocks/error_generator.rb +84 -0
  196. data/lib/gems/rspec-1.1.11/lib/spec/mocks/errors.rb +10 -0
  197. data/lib/gems/rspec-1.1.11/lib/spec/mocks/extensions.rb +1 -0
  198. data/lib/gems/rspec-1.1.11/lib/spec/mocks/extensions/object.rb +3 -0
  199. data/lib/gems/rspec-1.1.11/lib/spec/mocks/framework.rb +15 -0
  200. data/lib/gems/rspec-1.1.11/lib/spec/mocks/message_expectation.rb +331 -0
  201. data/lib/gems/rspec-1.1.11/lib/spec/mocks/methods.rb +51 -0
  202. data/lib/gems/rspec-1.1.11/lib/spec/mocks/mock.rb +56 -0
  203. data/lib/gems/rspec-1.1.11/lib/spec/mocks/order_group.rb +29 -0
  204. data/lib/gems/rspec-1.1.11/lib/spec/mocks/proxy.rb +224 -0
  205. data/lib/gems/rspec-1.1.11/lib/spec/mocks/space.rb +28 -0
  206. data/lib/gems/rspec-1.1.11/lib/spec/mocks/spec_methods.rb +46 -0
  207. data/lib/gems/rspec-1.1.11/lib/spec/rake/spectask.rb +227 -0
  208. data/lib/gems/rspec-1.1.11/lib/spec/rake/verify_rcov.rb +52 -0
  209. data/lib/gems/rspec-1.1.11/lib/spec/runner.rb +213 -0
  210. data/lib/gems/rspec-1.1.11/lib/spec/runner/backtrace_tweaker.rb +56 -0
  211. data/lib/gems/rspec-1.1.11/lib/spec/runner/class_and_arguments_parser.rb +16 -0
  212. data/lib/gems/rspec-1.1.11/lib/spec/runner/command_line.rb +17 -0
  213. data/lib/gems/rspec-1.1.11/lib/spec/runner/drb_command_line.rb +20 -0
  214. data/lib/gems/rspec-1.1.11/lib/spec/runner/example_group_runner.rb +59 -0
  215. data/lib/gems/rspec-1.1.11/lib/spec/runner/formatter/base_formatter.rb +79 -0
  216. data/lib/gems/rspec-1.1.11/lib/spec/runner/formatter/base_text_formatter.rb +126 -0
  217. data/lib/gems/rspec-1.1.11/lib/spec/runner/formatter/failing_example_groups_formatter.rb +27 -0
  218. data/lib/gems/rspec-1.1.11/lib/spec/runner/formatter/failing_examples_formatter.rb +20 -0
  219. data/lib/gems/rspec-1.1.11/lib/spec/runner/formatter/html_formatter.rb +337 -0
  220. data/lib/gems/rspec-1.1.11/lib/spec/runner/formatter/nested_text_formatter.rb +65 -0
  221. data/lib/gems/rspec-1.1.11/lib/spec/runner/formatter/profile_formatter.rb +51 -0
  222. data/lib/gems/rspec-1.1.11/lib/spec/runner/formatter/progress_bar_formatter.rb +34 -0
  223. data/lib/gems/rspec-1.1.11/lib/spec/runner/formatter/snippet_extractor.rb +52 -0
  224. data/lib/gems/rspec-1.1.11/lib/spec/runner/formatter/specdoc_formatter.rb +39 -0
  225. data/lib/gems/rspec-1.1.11/lib/spec/runner/formatter/story/html_formatter.rb +174 -0
  226. data/lib/gems/rspec-1.1.11/lib/spec/runner/formatter/story/plain_text_formatter.rb +194 -0
  227. data/lib/gems/rspec-1.1.11/lib/spec/runner/formatter/story/progress_bar_formatter.rb +42 -0
  228. data/lib/gems/rspec-1.1.11/lib/spec/runner/formatter/text_mate_formatter.rb +16 -0
  229. data/lib/gems/rspec-1.1.11/lib/spec/runner/heckle_runner.rb +72 -0
  230. data/lib/gems/rspec-1.1.11/lib/spec/runner/heckle_runner_unsupported.rb +10 -0
  231. data/lib/gems/rspec-1.1.11/lib/spec/runner/option_parser.rb +205 -0
  232. data/lib/gems/rspec-1.1.11/lib/spec/runner/options.rb +320 -0
  233. data/lib/gems/rspec-1.1.11/lib/spec/runner/reporter.rb +167 -0
  234. data/lib/gems/rspec-1.1.11/lib/spec/runner/spec_parser.rb +71 -0
  235. data/lib/gems/rspec-1.1.11/lib/spec/story.rb +10 -0
  236. data/lib/gems/rspec-1.1.11/lib/spec/story/extensions.rb +3 -0
  237. data/lib/gems/rspec-1.1.11/lib/spec/story/extensions/main.rb +86 -0
  238. data/lib/gems/rspec-1.1.11/lib/spec/story/extensions/regexp.rb +9 -0
  239. data/lib/gems/rspec-1.1.11/lib/spec/story/extensions/string.rb +9 -0
  240. data/lib/gems/rspec-1.1.11/lib/spec/story/given_scenario.rb +14 -0
  241. data/lib/gems/rspec-1.1.11/lib/spec/story/runner.rb +59 -0
  242. data/lib/gems/rspec-1.1.11/lib/spec/story/runner/plain_text_story_runner.rb +48 -0
  243. data/lib/gems/rspec-1.1.11/lib/spec/story/runner/scenario_collector.rb +18 -0
  244. data/lib/gems/rspec-1.1.11/lib/spec/story/runner/scenario_runner.rb +54 -0
  245. data/lib/gems/rspec-1.1.11/lib/spec/story/runner/story_mediator.rb +137 -0
  246. data/lib/gems/rspec-1.1.11/lib/spec/story/runner/story_parser.rb +247 -0
  247. data/lib/gems/rspec-1.1.11/lib/spec/story/runner/story_runner.rb +70 -0
  248. data/lib/gems/rspec-1.1.11/lib/spec/story/scenario.rb +14 -0
  249. data/lib/gems/rspec-1.1.11/lib/spec/story/step.rb +70 -0
  250. data/lib/gems/rspec-1.1.11/lib/spec/story/step_group.rb +89 -0
  251. data/lib/gems/rspec-1.1.11/lib/spec/story/step_mother.rb +38 -0
  252. data/lib/gems/rspec-1.1.11/lib/spec/story/story.rb +39 -0
  253. data/lib/gems/rspec-1.1.11/lib/spec/story/world.rb +128 -0
  254. data/lib/gems/rspec-1.1.11/lib/spec/version.rb +13 -0
  255. data/lib/gems/rspec-1.1.11/plugins/mock_frameworks/flexmock.rb +23 -0
  256. data/lib/gems/rspec-1.1.11/plugins/mock_frameworks/mocha.rb +19 -0
  257. data/lib/gems/rspec-1.1.11/plugins/mock_frameworks/rr.rb +21 -0
  258. data/lib/gems/rspec-1.1.11/plugins/mock_frameworks/rspec.rb +20 -0
  259. data/lib/gems/rspec-1.1.11/rake_tasks/examples.rake +7 -0
  260. data/lib/gems/rspec-1.1.11/rake_tasks/examples_with_rcov.rake +9 -0
  261. data/lib/gems/rspec-1.1.11/rake_tasks/failing_examples_with_html.rake +9 -0
  262. data/lib/gems/rspec-1.1.11/rake_tasks/verify_rcov.rake +7 -0
  263. data/lib/gems/rspec-1.1.11/spec/README.jruby +15 -0
  264. data/lib/gems/rspec-1.1.11/spec/autotest/autotest_helper.rb +6 -0
  265. data/lib/gems/rspec-1.1.11/spec/autotest/autotest_matchers.rb +47 -0
  266. data/lib/gems/rspec-1.1.11/spec/autotest/discover_spec.rb +19 -0
  267. data/lib/gems/rspec-1.1.11/spec/autotest/rspec_spec.rb +150 -0
  268. data/lib/gems/rspec-1.1.11/spec/rspec_suite.rb +6 -0
  269. data/lib/gems/rspec-1.1.11/spec/ruby_forker.rb +13 -0
  270. data/lib/gems/rspec-1.1.11/spec/spec.opts +6 -0
  271. data/lib/gems/rspec-1.1.11/spec/spec/adapters/ruby_engine_spec.rb +16 -0
  272. data/lib/gems/rspec-1.1.11/spec/spec/example/configuration_spec.rb +296 -0
  273. data/lib/gems/rspec-1.1.11/spec/spec/example/example_group_class_definition_spec.rb +48 -0
  274. data/lib/gems/rspec-1.1.11/spec/spec/example/example_group_factory_spec.rb +165 -0
  275. data/lib/gems/rspec-1.1.11/spec/spec/example/example_group_methods_spec.rb +584 -0
  276. data/lib/gems/rspec-1.1.11/spec/spec/example/example_group_spec.rb +683 -0
  277. data/lib/gems/rspec-1.1.11/spec/spec/example/example_matcher_spec.rb +96 -0
  278. data/lib/gems/rspec-1.1.11/spec/spec/example/example_methods_spec.rb +169 -0
  279. data/lib/gems/rspec-1.1.11/spec/spec/example/example_runner_spec.rb +194 -0
  280. data/lib/gems/rspec-1.1.11/spec/spec/example/nested_example_group_spec.rb +71 -0
  281. data/lib/gems/rspec-1.1.11/spec/spec/example/pending_module_spec.rb +145 -0
  282. data/lib/gems/rspec-1.1.11/spec/spec/example/predicate_matcher_spec.rb +21 -0
  283. data/lib/gems/rspec-1.1.11/spec/spec/example/shared_example_group_spec.rb +281 -0
  284. data/lib/gems/rspec-1.1.11/spec/spec/example/subclassing_example_group_spec.rb +25 -0
  285. data/lib/gems/rspec-1.1.11/spec/spec/expectations/differs/default_spec.rb +127 -0
  286. data/lib/gems/rspec-1.1.11/spec/spec/expectations/extensions/object_spec.rb +95 -0
  287. data/lib/gems/rspec-1.1.11/spec/spec/expectations/fail_with_spec.rb +71 -0
  288. data/lib/gems/rspec-1.1.11/spec/spec/extensions/main_spec.rb +71 -0
  289. data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/resources/spec_that_fails.rb +10 -0
  290. data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/resources/spec_that_passes.rb +10 -0
  291. data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/resources/spec_with_errors.rb +10 -0
  292. data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +13 -0
  293. data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +10 -0
  294. data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +10 -0
  295. data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +10 -0
  296. data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +38 -0
  297. data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/spec_spec.rb +52 -0
  298. data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/test_unit_spec_helper.rb +14 -0
  299. data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/testcase_spec.rb +49 -0
  300. data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +9 -0
  301. data/lib/gems/rspec-1.1.11/spec/spec/matchers/be_close_spec.rb +39 -0
  302. data/lib/gems/rspec-1.1.11/spec/spec/matchers/be_spec.rb +248 -0
  303. data/lib/gems/rspec-1.1.11/spec/spec/matchers/change_spec.rb +329 -0
  304. data/lib/gems/rspec-1.1.11/spec/spec/matchers/description_generation_spec.rb +153 -0
  305. data/lib/gems/rspec-1.1.11/spec/spec/matchers/eql_spec.rb +28 -0
  306. data/lib/gems/rspec-1.1.11/spec/spec/matchers/equal_spec.rb +28 -0
  307. data/lib/gems/rspec-1.1.11/spec/spec/matchers/exist_spec.rb +57 -0
  308. data/lib/gems/rspec-1.1.11/spec/spec/matchers/handler_spec.rb +150 -0
  309. data/lib/gems/rspec-1.1.11/spec/spec/matchers/has_spec.rb +63 -0
  310. data/lib/gems/rspec-1.1.11/spec/spec/matchers/have_spec.rb +394 -0
  311. data/lib/gems/rspec-1.1.11/spec/spec/matchers/include_spec.rb +64 -0
  312. data/lib/gems/rspec-1.1.11/spec/spec/matchers/match_spec.rb +37 -0
  313. data/lib/gems/rspec-1.1.11/spec/spec/matchers/matcher_methods_spec.rb +78 -0
  314. data/lib/gems/rspec-1.1.11/spec/spec/matchers/mock_constraint_matchers_spec.rb +24 -0
  315. data/lib/gems/rspec-1.1.11/spec/spec/matchers/operator_matcher_spec.rb +191 -0
  316. data/lib/gems/rspec-1.1.11/spec/spec/matchers/raise_error_spec.rb +315 -0
  317. data/lib/gems/rspec-1.1.11/spec/spec/matchers/respond_to_spec.rb +54 -0
  318. data/lib/gems/rspec-1.1.11/spec/spec/matchers/satisfy_spec.rb +36 -0
  319. data/lib/gems/rspec-1.1.11/spec/spec/matchers/simple_matcher_spec.rb +93 -0
  320. data/lib/gems/rspec-1.1.11/spec/spec/matchers/throw_symbol_spec.rb +54 -0
  321. data/lib/gems/rspec-1.1.11/spec/spec/mocks/any_number_of_times_spec.rb +36 -0
  322. data/lib/gems/rspec-1.1.11/spec/spec/mocks/argument_expectation_spec.rb +23 -0
  323. data/lib/gems/rspec-1.1.11/spec/spec/mocks/at_least_spec.rb +97 -0
  324. data/lib/gems/rspec-1.1.11/spec/spec/mocks/at_most_spec.rb +93 -0
  325. data/lib/gems/rspec-1.1.11/spec/spec/mocks/bug_report_10260_spec.rb +8 -0
  326. data/lib/gems/rspec-1.1.11/spec/spec/mocks/bug_report_10263_spec.rb +24 -0
  327. data/lib/gems/rspec-1.1.11/spec/spec/mocks/bug_report_11545_spec.rb +33 -0
  328. data/lib/gems/rspec-1.1.11/spec/spec/mocks/bug_report_15719_spec.rb +30 -0
  329. data/lib/gems/rspec-1.1.11/spec/spec/mocks/bug_report_496.rb +17 -0
  330. data/lib/gems/rspec-1.1.11/spec/spec/mocks/bug_report_7611_spec.rb +19 -0
  331. data/lib/gems/rspec-1.1.11/spec/spec/mocks/bug_report_7805_spec.rb +22 -0
  332. data/lib/gems/rspec-1.1.11/spec/spec/mocks/bug_report_8165_spec.rb +31 -0
  333. data/lib/gems/rspec-1.1.11/spec/spec/mocks/bug_report_8302_spec.rb +26 -0
  334. data/lib/gems/rspec-1.1.11/spec/spec/mocks/failing_mock_argument_constraints_spec.rb +95 -0
  335. data/lib/gems/rspec-1.1.11/spec/spec/mocks/hash_including_matcher_spec.rb +53 -0
  336. data/lib/gems/rspec-1.1.11/spec/spec/mocks/mock_ordering_spec.rb +84 -0
  337. data/lib/gems/rspec-1.1.11/spec/spec/mocks/mock_space_spec.rb +54 -0
  338. data/lib/gems/rspec-1.1.11/spec/spec/mocks/mock_spec.rb +555 -0
  339. data/lib/gems/rspec-1.1.11/spec/spec/mocks/multiple_return_value_spec.rb +113 -0
  340. data/lib/gems/rspec-1.1.11/spec/spec/mocks/nil_expectation_warning_spec.rb +53 -0
  341. data/lib/gems/rspec-1.1.11/spec/spec/mocks/null_object_mock_spec.rb +54 -0
  342. data/lib/gems/rspec-1.1.11/spec/spec/mocks/once_counts_spec.rb +53 -0
  343. data/lib/gems/rspec-1.1.11/spec/spec/mocks/options_hash_spec.rb +35 -0
  344. data/lib/gems/rspec-1.1.11/spec/spec/mocks/partial_mock_spec.rb +149 -0
  345. data/lib/gems/rspec-1.1.11/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +66 -0
  346. data/lib/gems/rspec-1.1.11/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +130 -0
  347. data/lib/gems/rspec-1.1.11/spec/spec/mocks/precise_counts_spec.rb +52 -0
  348. data/lib/gems/rspec-1.1.11/spec/spec/mocks/record_messages_spec.rb +26 -0
  349. data/lib/gems/rspec-1.1.11/spec/spec/mocks/stub_spec.rb +188 -0
  350. data/lib/gems/rspec-1.1.11/spec/spec/mocks/twice_counts_spec.rb +67 -0
  351. data/lib/gems/rspec-1.1.11/spec/spec/package/bin_spec_spec.rb +22 -0
  352. data/lib/gems/rspec-1.1.11/spec/spec/runner/class_and_argument_parser_spec.rb +23 -0
  353. data/lib/gems/rspec-1.1.11/spec/spec/runner/command_line_spec.rb +141 -0
  354. data/lib/gems/rspec-1.1.11/spec/spec/runner/drb_command_line_spec.rb +97 -0
  355. data/lib/gems/rspec-1.1.11/spec/spec/runner/empty_file.txt +0 -0
  356. data/lib/gems/rspec-1.1.11/spec/spec/runner/examples.txt +2 -0
  357. data/lib/gems/rspec-1.1.11/spec/spec/runner/failed.txt +3 -0
  358. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/base_formatter_spec.rb +112 -0
  359. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +45 -0
  360. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +33 -0
  361. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/html_formatted-1.8.4.html +365 -0
  362. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/html_formatted-1.8.5-jruby.html +387 -0
  363. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/html_formatted-1.8.5.html +371 -0
  364. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +381 -0
  365. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/html_formatted-1.8.6.html +370 -0
  366. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/html_formatter_spec.rb +61 -0
  367. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/nested_text_formatter_spec.rb +318 -0
  368. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/profile_formatter_spec.rb +65 -0
  369. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +155 -0
  370. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/snippet_extractor_spec.rb +18 -0
  371. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/spec_mate_formatter_spec.rb +103 -0
  372. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/specdoc_formatter_spec.rb +159 -0
  373. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/story/html_formatter_spec.rb +135 -0
  374. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/story/plain_text_formatter_spec.rb +600 -0
  375. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/story/progress_bar_formatter_spec.rb +82 -0
  376. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/text_mate_formatted-1.8.4.html +365 -0
  377. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +370 -0
  378. data/lib/gems/rspec-1.1.11/spec/spec/runner/heckle_runner_spec.rb +78 -0
  379. data/lib/gems/rspec-1.1.11/spec/spec/runner/heckler_spec.rb +13 -0
  380. data/lib/gems/rspec-1.1.11/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +45 -0
  381. data/lib/gems/rspec-1.1.11/spec/spec/runner/option_parser_spec.rb +421 -0
  382. data/lib/gems/rspec-1.1.11/spec/spec/runner/options_spec.rb +450 -0
  383. data/lib/gems/rspec-1.1.11/spec/spec/runner/output_one_time_fixture.rb +7 -0
  384. data/lib/gems/rspec-1.1.11/spec/spec/runner/output_one_time_fixture_runner.rb +8 -0
  385. data/lib/gems/rspec-1.1.11/spec/spec/runner/output_one_time_spec.rb +16 -0
  386. data/lib/gems/rspec-1.1.11/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +62 -0
  387. data/lib/gems/rspec-1.1.11/spec/spec/runner/reporter_spec.rb +238 -0
  388. data/lib/gems/rspec-1.1.11/spec/spec/runner/resources/a_bar.rb +0 -0
  389. data/lib/gems/rspec-1.1.11/spec/spec/runner/resources/a_foo.rb +0 -0
  390. data/lib/gems/rspec-1.1.11/spec/spec/runner/resources/a_spec.rb +1 -0
  391. data/lib/gems/rspec-1.1.11/spec/spec/runner/spec.opts +2 -0
  392. data/lib/gems/rspec-1.1.11/spec/spec/runner/spec_drb.opts +1 -0
  393. data/lib/gems/rspec-1.1.11/spec/spec/runner/spec_parser/spec_parser_fixture.rb +70 -0
  394. data/lib/gems/rspec-1.1.11/spec/spec/runner/spec_parser_spec.rb +85 -0
  395. data/lib/gems/rspec-1.1.11/spec/spec/runner/spec_spaced.opts +2 -0
  396. data/lib/gems/rspec-1.1.11/spec/spec/runner_spec.rb +11 -0
  397. data/lib/gems/rspec-1.1.11/spec/spec/spec_classes.rb +133 -0
  398. data/lib/gems/rspec-1.1.11/spec/spec/story/builders.rb +46 -0
  399. data/lib/gems/rspec-1.1.11/spec/spec/story/extensions/main_spec.rb +161 -0
  400. data/lib/gems/rspec-1.1.11/spec/spec/story/extensions_spec.rb +14 -0
  401. data/lib/gems/rspec-1.1.11/spec/spec/story/given_scenario_spec.rb +27 -0
  402. data/lib/gems/rspec-1.1.11/spec/spec/story/runner/plain_text_story_runner_spec.rb +90 -0
  403. data/lib/gems/rspec-1.1.11/spec/spec/story/runner/scenario_collector_spec.rb +27 -0
  404. data/lib/gems/rspec-1.1.11/spec/spec/story/runner/scenario_runner_spec.rb +214 -0
  405. data/lib/gems/rspec-1.1.11/spec/spec/story/runner/story_mediator_spec.rb +143 -0
  406. data/lib/gems/rspec-1.1.11/spec/spec/story/runner/story_parser_spec.rb +401 -0
  407. data/lib/gems/rspec-1.1.11/spec/spec/story/runner/story_runner_spec.rb +294 -0
  408. data/lib/gems/rspec-1.1.11/spec/spec/story/runner_spec.rb +93 -0
  409. data/lib/gems/rspec-1.1.11/spec/spec/story/scenario_spec.rb +18 -0
  410. data/lib/gems/rspec-1.1.11/spec/spec/story/step_group_spec.rb +157 -0
  411. data/lib/gems/rspec-1.1.11/spec/spec/story/step_mother_spec.rb +84 -0
  412. data/lib/gems/rspec-1.1.11/spec/spec/story/step_spec.rb +272 -0
  413. data/lib/gems/rspec-1.1.11/spec/spec/story/story_helper.rb +2 -0
  414. data/lib/gems/rspec-1.1.11/spec/spec/story/story_spec.rb +84 -0
  415. data/lib/gems/rspec-1.1.11/spec/spec/story/world_spec.rb +423 -0
  416. data/lib/gems/rspec-1.1.11/spec/spec_helper.rb +77 -0
  417. data/lib/gems/rspec-1.1.11/stories/all.rb +5 -0
  418. data/lib/gems/rspec-1.1.11/stories/configuration/before_blocks.story +21 -0
  419. data/lib/gems/rspec-1.1.11/stories/configuration/stories.rb +7 -0
  420. data/lib/gems/rspec-1.1.11/stories/example_groups/autogenerated_docstrings +45 -0
  421. data/lib/gems/rspec-1.1.11/stories/example_groups/example_group_with_should_methods +17 -0
  422. data/lib/gems/rspec-1.1.11/stories/example_groups/nested_groups +17 -0
  423. data/lib/gems/rspec-1.1.11/stories/example_groups/output +25 -0
  424. data/lib/gems/rspec-1.1.11/stories/example_groups/stories.rb +7 -0
  425. data/lib/gems/rspec-1.1.11/stories/helper.rb +6 -0
  426. data/lib/gems/rspec-1.1.11/stories/interop/examples_and_tests_together +30 -0
  427. data/lib/gems/rspec-1.1.11/stories/interop/stories.rb +7 -0
  428. data/lib/gems/rspec-1.1.11/stories/interop/test_case_with_should_methods +17 -0
  429. data/lib/gems/rspec-1.1.11/stories/mock_framework_integration/stories.rb +7 -0
  430. data/lib/gems/rspec-1.1.11/stories/mock_framework_integration/use_flexmock.story +9 -0
  431. data/lib/gems/rspec-1.1.11/stories/pending_stories/README +3 -0
  432. data/lib/gems/rspec-1.1.11/stories/resources/helpers/cmdline.rb +9 -0
  433. data/lib/gems/rspec-1.1.11/stories/resources/helpers/story_helper.rb +16 -0
  434. data/lib/gems/rspec-1.1.11/stories/resources/matchers/smart_match.rb +37 -0
  435. data/lib/gems/rspec-1.1.11/stories/resources/spec/before_blocks_example.rb +32 -0
  436. data/lib/gems/rspec-1.1.11/stories/resources/spec/example_group_with_should_methods.rb +12 -0
  437. data/lib/gems/rspec-1.1.11/stories/resources/spec/simple_spec.rb +8 -0
  438. data/lib/gems/rspec-1.1.11/stories/resources/spec/spec_with_flexmock.rb +18 -0
  439. data/lib/gems/rspec-1.1.11/stories/resources/steps/running_rspec.rb +50 -0
  440. data/lib/gems/rspec-1.1.11/stories/resources/stories/failing_story.rb +15 -0
  441. data/lib/gems/rspec-1.1.11/stories/resources/test/spec_and_test_together.rb +57 -0
  442. data/lib/gems/rspec-1.1.11/stories/resources/test/test_case_with_should_methods.rb +30 -0
  443. data/lib/gems/rspec-1.1.11/stories/stories/multiline_steps.story +23 -0
  444. data/lib/gems/rspec-1.1.11/stories/stories/steps/multiline_steps.rb +13 -0
  445. data/lib/gems/rspec-1.1.11/stories/stories/stories.rb +6 -0
  446. data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/builder.js +136 -0
  447. data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/controls.js +972 -0
  448. data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/dragdrop.js +976 -0
  449. data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/effects.js +1117 -0
  450. data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/prototype.js +4140 -0
  451. data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/rspec.js +149 -0
  452. data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/scriptaculous.js +58 -0
  453. data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/slider.js +276 -0
  454. data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/sound.js +55 -0
  455. data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/unittest.js +568 -0
  456. data/lib/gems/rspec-1.1.11/story_server/prototype/lib/server.rb +24 -0
  457. data/lib/gems/rspec-1.1.11/story_server/prototype/stories.html +176 -0
  458. data/lib/gems/rspec-1.1.11/story_server/prototype/stylesheets/rspec.css +136 -0
  459. data/lib/gems/rspec-1.1.11/story_server/prototype/stylesheets/test.css +90 -0
  460. data/lib/mack/boot/configuration.rb +2 -0
  461. data/lib/mack/boot/console.rb +2 -0
  462. data/lib/mack/boot/gems.rb +6 -1
  463. data/lib/mack/boot/logging.rb +1 -1
  464. data/lib/mack/controller/request.rb +2 -55
  465. data/lib/mack/controller/request/date_time_parameter.rb +37 -0
  466. data/lib/mack/controller/request/parameters.rb +31 -0
  467. data/lib/mack/core_extensions/gem_kernel.rb +30 -0
  468. data/lib/mack/core_extensions/kernel.rb +31 -14
  469. data/lib/mack/routing/route_map.rb +19 -18
  470. data/lib/mack/routing/route_object.rb +14 -3
  471. data/lib/mack/routing/routes.rb +4 -0
  472. data/lib/mack/runner.rb +11 -0
  473. data/lib/mack/version.rb +1 -1
  474. data/lib/mack_app.rb +1 -26
  475. data/lib/mack_core.rb +2 -50
  476. data/lib/mack_tasks.rb +1 -32
  477. metadata +669 -90
@@ -0,0 +1,48 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ module Spec
4
+ module Example
5
+ class ExampleGroupSubclass < ExampleGroup
6
+ class << self
7
+ attr_accessor :examples_ran
8
+ end
9
+
10
+ @@class_variable = :class_variable
11
+ CONSTANT = :constant
12
+
13
+ before do
14
+ @instance_variable = :instance_variable
15
+ end
16
+
17
+ after(:all) do
18
+ self.class.examples_ran = true
19
+ end
20
+
21
+ it "should have access to instance variables" do
22
+ @instance_variable.should == :instance_variable
23
+ end
24
+
25
+ it "should have access to class variables" do
26
+ @@class_variable.should == :class_variable
27
+ end
28
+
29
+ it "should have access to constants" do
30
+ CONSTANT.should == :constant
31
+ end
32
+
33
+ it "should have access to methods defined in the Example Group" do
34
+ a_method.should == 22
35
+ end
36
+
37
+ def a_method
38
+ 22
39
+ end
40
+ end
41
+
42
+ describe ExampleGroupSubclass do
43
+ it "should run" do
44
+ ExampleGroupSubclass.examples_ran.should be_true
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,165 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
+
3
+ module Spec
4
+ module Example
5
+ describe ExampleGroupFactory do
6
+ describe "#get" do
7
+ attr_reader :example_group
8
+ before do
9
+ @example_group_class = Class.new(ExampleGroup)
10
+ ExampleGroupFactory.register(:registered_type, @example_group_class)
11
+ end
12
+
13
+ after do
14
+ ExampleGroupFactory.reset
15
+ end
16
+
17
+ it "should return the default ExampleGroup type for nil" do
18
+ ExampleGroupFactory.get(nil).should == ExampleGroup
19
+ end
20
+
21
+ it "should return the default ExampleGroup for an unregistered non-nil value" do
22
+ ExampleGroupFactory.get(:does_not_exist).should == ExampleGroup
23
+ end
24
+
25
+ it "should return custom type if registered" do
26
+ ExampleGroupFactory.get(:registered_type).should == @example_group_class
27
+ end
28
+
29
+ it "should return the actual type when that is what is submitted" do
30
+ ExampleGroupFactory.get(@example_group_class).should == @example_group_class
31
+ end
32
+
33
+ it "should get the custom type after setting the default" do
34
+ @alternate_example_group_class = Class.new(ExampleGroup)
35
+ ExampleGroupFactory.default(@alternate_example_group_class)
36
+ ExampleGroupFactory.get(:registered_type).should == @example_group_class
37
+ end
38
+ end
39
+
40
+ describe "#create_example_group" do
41
+ attr_reader :parent_example_group
42
+ before do
43
+ @parent_example_group = Class.new(ExampleGroup) do
44
+ def initialize(*args, &block)
45
+ ;
46
+ end
47
+ end
48
+ end
49
+
50
+ it "should create a uniquely named class" do
51
+ example_group = Spec::Example::ExampleGroupFactory.create_example_group("example_group") {}
52
+ example_group.name.should =~ /Spec::Example::ExampleGroup::Subclass_\d+/
53
+ end
54
+
55
+ it "should create a Spec::Example::Example subclass by default" do
56
+ example_group = Spec::Example::ExampleGroupFactory.create_example_group("example_group") {}
57
+ example_group.superclass.should == Spec::Example::ExampleGroup
58
+ end
59
+
60
+ describe "with :type => :default" do
61
+ it "should create a Spec::Example::ExampleGroup" do
62
+ example_group = Spec::Example::ExampleGroupFactory.create_example_group(
63
+ "example_group", :type => :default
64
+ ) {}
65
+ example_group.superclass.should == Spec::Example::ExampleGroup
66
+ end
67
+ end
68
+
69
+ describe "with :type => :something_other_than_default" do
70
+ it "should create the specified type" do
71
+ Spec::Example::ExampleGroupFactory.register(:something_other_than_default, parent_example_group)
72
+ non_default_example_group = Spec::Example::ExampleGroupFactory.create_example_group(
73
+ "example_group", :type => :something_other_than_default
74
+ ) {}
75
+ non_default_example_group.superclass.should == parent_example_group
76
+ end
77
+ end
78
+
79
+ it "should create a type indicated by :spec_path" do
80
+ Spec::Example::ExampleGroupFactory.register(:something_other_than_default, parent_example_group)
81
+ custom_example_group = Spec::Example::ExampleGroupFactory.create_example_group(
82
+ "example_group", :spec_path => "./spec/something_other_than_default/some_spec.rb"
83
+ ) {}
84
+ custom_example_group.superclass.should == parent_example_group
85
+ end
86
+
87
+ it "should create a type indicated by :spec_path (with spec_path generated by caller on windows)" do
88
+ Spec::Example::ExampleGroupFactory.register(:something_other_than_default, parent_example_group)
89
+ custom_example_group = Spec::Example::ExampleGroupFactory.create_example_group(
90
+ "example_group",
91
+ :spec_path => "./spec\\something_other_than_default\\some_spec.rb"
92
+ ) {}
93
+ custom_example_group.superclass.should == parent_example_group
94
+ end
95
+
96
+ describe "with :shared => true" do
97
+ def shared_example_group
98
+ @shared_example_group ||= Spec::Example::ExampleGroupFactory.create_example_group(
99
+ "name", :spec_path => '/blah/spec/models/blah.rb', :type => :controller, :shared => true
100
+ ) {}
101
+ end
102
+
103
+ it "should create and register a Spec::Example::SharedExampleGroup" do
104
+ shared_example_group.should be_an_instance_of(Spec::Example::SharedExampleGroup)
105
+ SharedExampleGroup.shared_example_groups.should include(shared_example_group)
106
+ end
107
+ end
108
+
109
+ it "should favor the :type over the :spec_path" do
110
+ Spec::Example::ExampleGroupFactory.register(:something_other_than_default, parent_example_group)
111
+ custom_example_group = Spec::Example::ExampleGroupFactory.create_example_group(
112
+ "name", :spec_path => '/blah/spec/models/blah.rb', :type => :something_other_than_default
113
+ ) {}
114
+ custom_example_group.superclass.should == parent_example_group
115
+ end
116
+
117
+ it "should register ExampleGroup by default" do
118
+ example_group = Spec::Example::ExampleGroupFactory.create_example_group("The ExampleGroup") do
119
+ end
120
+ Spec::Runner.options.example_groups.should include(example_group)
121
+ end
122
+
123
+ it "should enable unregistering of ExampleGroups" do
124
+ example_group = Spec::Example::ExampleGroupFactory.create_example_group("The ExampleGroup") do
125
+ unregister
126
+ end
127
+ Spec::Runner.options.example_groups.should_not include(example_group)
128
+ end
129
+
130
+ after(:each) do
131
+ Spec::Example::ExampleGroupFactory.reset
132
+ end
133
+ end
134
+
135
+ describe "#all_registered?" do
136
+ before(:each) do
137
+ @unregistered_parent = Class.new(ExampleGroup)
138
+ @registered_child = Class.new(@unregistered_parent)
139
+ @unregistered_grandchild = Class.new(@registered_child)
140
+ Spec::Example::ExampleGroupFactory.register :registered_child, @registered_child
141
+ end
142
+
143
+ it "should return true for empty list" do
144
+ Spec::Example::ExampleGroupFactory.all_registered?([]).should be_true
145
+ end
146
+
147
+ it "should return true for a registered example group class" do
148
+ Spec::Example::ExampleGroupFactory.all_registered?([@registered_child]).should be_true
149
+ end
150
+
151
+ it "should return true for an ancestor of a registered example_group_classes" do
152
+ Spec::Example::ExampleGroupFactory.all_registered?([@unregistered_parent]).should be_true
153
+ end
154
+
155
+ it "should return false for a subclass of a registered example_group_class" do
156
+ Spec::Example::ExampleGroupFactory.all_registered?([@unregistered_grandchild]).should be_false
157
+ end
158
+
159
+ after(:each) do
160
+ Spec::Example::ExampleGroupFactory.reset
161
+ end
162
+ end
163
+ end
164
+ end
165
+ end
@@ -0,0 +1,584 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ module Spec
4
+ module Example
5
+ describe 'ExampleGroupMethods' do
6
+ with_sandboxed_options do
7
+ attr_reader :example_group, :result, :reporter
8
+ before(:each) do
9
+ # See http://rspec.lighthouseapp.com/projects/5645-rspec/tickets/525-arity-changed-on-partial-mocks#ticket-525-2
10
+ method_with_three_args = lambda { |arg1, arg2, arg3| }
11
+ options.formatters << mock("formatter", :null_object => true, :example_pending => method_with_three_args)
12
+ options.backtrace_tweaker = mock("backtrace_tweaker", :null_object => true)
13
+ @reporter = FakeReporter.new(@options)
14
+ options.reporter = reporter
15
+ @example_group = Class.new(ExampleGroup) do
16
+ describe("ExampleGroup")
17
+ it "does nothing"
18
+ end
19
+ class << example_group
20
+ public :include
21
+ end
22
+ @result = nil
23
+ end
24
+
25
+ after(:each) do
26
+ ExampleGroup.reset
27
+ end
28
+
29
+ ["describe","context"].each do |method|
30
+ describe "##{method}" do
31
+ describe "when creating an ExampleGroup" do
32
+ attr_reader :child_example_group
33
+ before do
34
+ @child_example_group = @example_group.send method, "Another ExampleGroup" do
35
+ it "should pass" do
36
+ true.should be_true
37
+ end
38
+ end
39
+ end
40
+
41
+ it "should create a subclass of the ExampleGroup when passed a block" do
42
+ child_example_group.superclass.should == @example_group
43
+ @options.example_groups.should include(child_example_group)
44
+ end
45
+
46
+ it "should not inherit examples" do
47
+ child_example_group.examples.length.should == 1
48
+ end
49
+ end
50
+
51
+ describe "when creating a SharedExampleGroup" do
52
+ attr_reader :name, :shared_example_group
53
+ before do
54
+ @name = "A Shared ExampleGroup"
55
+ @shared_example_group = @example_group.send method, name, :shared => true do
56
+ it "should pass" do
57
+ true.should be_true
58
+ end
59
+ end
60
+ end
61
+
62
+ after do
63
+ SharedExampleGroup.shared_example_groups.delete_if do |registered_shared_example_group|
64
+ registered_shared_example_group == shared_example_group
65
+ end
66
+ end
67
+
68
+ it "should create a SharedExampleGroup" do
69
+ SharedExampleGroup.find_shared_example_group(name).should == shared_example_group
70
+ end
71
+ end
72
+
73
+ end
74
+ end
75
+
76
+ describe "#it" do
77
+ it "should should create an example instance" do
78
+ lambda {
79
+ @example_group.it("")
80
+ }.should change { @example_group.examples.length }.by(1)
81
+ end
82
+ end
83
+
84
+ describe "#xit and #xspecify" do
85
+ before(:each) do
86
+ Kernel.stub!(:warn)
87
+ end
88
+
89
+ it "should NOT create an example instance" do
90
+ lambda {
91
+ @example_group.xit("")
92
+ }.should_not change(@example_group.examples, :length)
93
+
94
+ lambda {
95
+ @example_group.xspecify("")
96
+ }.should_not change(@example_group.examples, :length)
97
+ end
98
+
99
+ it "should warn that it is disabled" do
100
+ Kernel.should_receive(:warn).with("Example disabled: foo").twice
101
+ @example_group.xit("foo")
102
+ @example_group.xspecify("foo")
103
+ end
104
+ end
105
+
106
+ describe "#examples" do
107
+ it "should have Examples" do
108
+ example_group = Class.new(ExampleGroup) do
109
+ describe('example')
110
+ it "should pass" do
111
+ 1.should == 1
112
+ end
113
+ end
114
+ example_group.examples.length.should == 1
115
+ example_group.examples.first.description.should == "should pass"
116
+ end
117
+
118
+ it "should not include methods that begin with test (only when TU interop is loaded)" do
119
+ example_group = Class.new(ExampleGroup) do
120
+ describe('example')
121
+ def test_any_args(*args)
122
+ true.should be_true
123
+ end
124
+ def test_something
125
+ 1.should == 1
126
+ end
127
+ def test
128
+ raise "This is not a real test"
129
+ end
130
+ def testify
131
+ raise "This is not a real test"
132
+ end
133
+ def should_something
134
+ # forces the run
135
+ end
136
+ end
137
+ example_group.examples.length.should == 1
138
+ example_group.run.should be_true
139
+ end
140
+
141
+ it "should include methods that begin with should and has an arity of 0 in suite" do
142
+ example_group = Class.new(ExampleGroup) do
143
+ describe('example')
144
+ def shouldCamelCase
145
+ true.should be_true
146
+ end
147
+ def should_any_args(*args)
148
+ true.should be_true
149
+ end
150
+ def should_something
151
+ 1.should == 1
152
+ end
153
+ def should_not_something
154
+ 1.should_not == 2
155
+ end
156
+ def should
157
+ raise "This is not a real example"
158
+ end
159
+ def should_not
160
+ raise "This is not a real example"
161
+ end
162
+ end
163
+ example_group = example_group.dup
164
+ example_group.examples.length.should == 4
165
+ descriptions = example_group.examples.collect {|example| example.description}.sort
166
+ descriptions.should include("shouldCamelCase")
167
+ descriptions.should include("should_any_args")
168
+ descriptions.should include("should_something")
169
+ descriptions.should include("should_not_something")
170
+ descriptions.should_not include("should")
171
+ descriptions.should_not include("should_not")
172
+ end
173
+
174
+ it "should not include methods that begin with test_ and has an arity > 0 in suite" do
175
+ example_group = Class.new(ExampleGroup) do
176
+ describe('example')
177
+ def test_invalid(foo)
178
+ 1.should == 1
179
+ end
180
+ def testInvalidCamelCase(foo)
181
+ 1.should == 1
182
+ end
183
+ end
184
+ example_group.examples.length.should == 0
185
+ end
186
+
187
+ it "should not include methods that begin with should_ and has an arity > 0 in suite" do
188
+ example_group = Class.new(ExampleGroup) do
189
+ describe('example')
190
+ def should_invalid(foo)
191
+ 1.should == 2
192
+ end
193
+ def shouldInvalidCamelCase(foo)
194
+ 1.should == 3
195
+ end
196
+ def should_not_invalid(foo)
197
+ 1.should == 4
198
+ end
199
+ def should_valid
200
+ 1.should == 1
201
+ end
202
+ end
203
+ example_group.examples.length.should == 1
204
+ example_group.run.should be_true
205
+ end
206
+
207
+ it "should run should_methods" do
208
+ example_group = Class.new(ExampleGroup) do
209
+ def should_valid
210
+ 1.should == 2
211
+ end
212
+ end
213
+ example_group.examples.length.should == 1
214
+ example_group.run.should be_false
215
+ end
216
+ end
217
+
218
+ describe "#set_description" do
219
+ attr_reader :example_group
220
+ before do
221
+ class << example_group
222
+ public :set_description
223
+ end
224
+ end
225
+
226
+ describe "#set_description(String)" do
227
+ before(:each) do
228
+ example_group.set_description("abc")
229
+ end
230
+
231
+ specify ".description should return the String passed into .set_description" do
232
+ example_group.description.should == "abc"
233
+ end
234
+
235
+ specify ".described_type should provide nil as its type" do
236
+ example_group.described_type.should be_nil
237
+ end
238
+ end
239
+
240
+ describe "#set_description(Type)" do
241
+ before(:each) do
242
+ example_group.set_description(ExampleGroup)
243
+ end
244
+
245
+ specify ".description should return a String representation of that type (fully qualified) as its name" do
246
+ example_group.description.should == "Spec::Example::ExampleGroup"
247
+ end
248
+
249
+ specify ".described_type should return the passed in type" do
250
+ example_group.described_type.should == Spec::Example::ExampleGroup
251
+ end
252
+ end
253
+
254
+ describe "#set_description(String, Type)" do
255
+ before(:each) do
256
+ example_group.set_description("behaving", ExampleGroup)
257
+ end
258
+
259
+ specify ".description should return String then space then Type" do
260
+ example_group.description.should == "behaving Spec::Example::ExampleGroup"
261
+ end
262
+
263
+ specify ".described_type should return the passed in type" do
264
+ example_group.described_type.should == Spec::Example::ExampleGroup
265
+ end
266
+ end
267
+
268
+ describe "#set_description(Type, String not starting with a space)" do
269
+ before(:each) do
270
+ example_group.set_description(ExampleGroup, "behaving")
271
+ end
272
+
273
+ specify ".description should return the Type then space then String" do
274
+ example_group.description.should == "Spec::Example::ExampleGroup behaving"
275
+ end
276
+ end
277
+
278
+ describe "#set_description(Type, String starting with .)" do
279
+ before(:each) do
280
+ example_group.set_description(ExampleGroup, ".behaving")
281
+ end
282
+
283
+ specify ".description should return the Type then String" do
284
+ example_group.description.should == "Spec::Example::ExampleGroup.behaving"
285
+ end
286
+ end
287
+
288
+ describe "#set_description(Type, String containing .)" do
289
+ before(:each) do
290
+ example_group.set_description(ExampleGroup, "calling a.b")
291
+ end
292
+
293
+ specify ".description should return the Type then space then String" do
294
+ example_group.description.should == "Spec::Example::ExampleGroup calling a.b"
295
+ end
296
+ end
297
+
298
+ describe "#set_description(Type, String starting with .)" do
299
+ before(:each) do
300
+ example_group.set_description(ExampleGroup, ".behaving")
301
+ end
302
+
303
+ specify "should return the Type then String" do
304
+ example_group.description.should == "Spec::Example::ExampleGroup.behaving"
305
+ end
306
+ end
307
+
308
+ describe "#set_description(Type, String containing .)" do
309
+ before(:each) do
310
+ example_group.set_description(ExampleGroup, "is #1")
311
+ end
312
+
313
+ specify ".description should return the Type then space then String" do
314
+ example_group.description.should == "Spec::Example::ExampleGroup is #1"
315
+ end
316
+ end
317
+
318
+ describe "#set_description(String, Type, String)" do
319
+ before(:each) do
320
+ example_group.set_description("A", Hash, "with one entry")
321
+ end
322
+
323
+ specify ".description should return the first String then space then Type then second String" do
324
+ example_group.description.should == "A Hash with one entry"
325
+ end
326
+ end
327
+
328
+ describe "#set_description(Hash representing options)" do
329
+ before(:each) do
330
+ example_group.set_description(:a => "b", :spec_path => "blah")
331
+ end
332
+
333
+ it ".spec_path should expand the passed in :spec_path option passed into the constructor" do
334
+ example_group.spec_path.should == File.expand_path("blah")
335
+ end
336
+
337
+ it ".description_options should return all the options passed in" do
338
+ example_group.description_options.should == {:a => "b", :spec_path => "blah"}
339
+ end
340
+
341
+ end
342
+ end
343
+
344
+ describe "#description" do
345
+ it "should return the same description instance for each call" do
346
+ example_group.description.should eql(example_group.description)
347
+ end
348
+
349
+ it "should not add a space when description_text begins with #" do
350
+ child_example_group = Class.new(example_group) do
351
+ describe("#foobar", "Does something")
352
+ end
353
+ child_example_group.description.should == "ExampleGroup#foobar Does something"
354
+ end
355
+
356
+ it "should not add a space when description_text begins with ." do
357
+ child_example_group = Class.new(example_group) do
358
+ describe(".foobar", "Does something")
359
+ end
360
+ child_example_group.description.should == "ExampleGroup.foobar Does something"
361
+ end
362
+
363
+ it "should return the class name if nil" do
364
+ example_group.set_description(nil)
365
+ example_group.description.should =~ /Class:/
366
+ end
367
+
368
+ it "should return the class name if nil" do
369
+ example_group.set_description("")
370
+ example_group.description.should =~ /Class:/
371
+ end
372
+ end
373
+
374
+ describe "#description_parts" do
375
+ it "should return an Array of the current class description args" do
376
+ example_group.description_parts.should == [example_group.description]
377
+ end
378
+
379
+ it "should return an Array of the description args from each class in the hierarchy" do
380
+ child_example_group = Class.new(example_group)
381
+ child_example_group.describe("Child", ExampleGroup)
382
+ child_example_group.description.should_not be_empty
383
+
384
+ grand_child_example_group = Class.new(child_example_group)
385
+ grand_child_example_group.describe("GrandChild", ExampleGroup)
386
+ grand_child_example_group.description.should_not be_empty
387
+
388
+ grand_child_example_group.description_parts.should == [
389
+ "ExampleGroup",
390
+ "Child",
391
+ Spec::Example::ExampleGroup,
392
+ "GrandChild",
393
+ Spec::Example::ExampleGroup
394
+ ]
395
+ end
396
+ end
397
+
398
+ describe "#described_type" do
399
+ it "should return passed in type" do
400
+ child_example_group = Class.new(example_group) do
401
+ describe Object
402
+ end
403
+ child_example_group.described_type.should == Object
404
+ end
405
+
406
+ it "should return #described_type of superclass when no passed in type" do
407
+ parent_example_group = Class.new(ExampleGroup) do
408
+ describe Object, "#foobar"
409
+ end
410
+ child_example_group = Class.new(parent_example_group) do
411
+ describe "not a type"
412
+ end
413
+ child_example_group.described_type.should == Object
414
+ end
415
+ end
416
+
417
+ describe "#remove_after" do
418
+ it "should unregister a given after(:each) block" do
419
+ after_all_ran = false
420
+ @example_group.it("example") {}
421
+ proc = Proc.new { after_all_ran = true }
422
+ ExampleGroup.after(:each, &proc)
423
+ @example_group.run
424
+ after_all_ran.should be_true
425
+
426
+ after_all_ran = false
427
+ ExampleGroup.remove_after(:each, &proc)
428
+ @example_group.run
429
+ after_all_ran.should be_false
430
+ end
431
+ end
432
+
433
+ describe "#include" do
434
+ it "should have accessible class methods from included module" do
435
+ mod1_method_called = false
436
+ mod1 = Module.new do
437
+ extend Spec::MetaClass
438
+ class_methods = Module.new do
439
+ define_method :mod1_method do
440
+ mod1_method_called = true
441
+ end
442
+ end
443
+
444
+ metaclass.class_eval do
445
+ define_method(:included) do |receiver|
446
+ receiver.extend class_methods
447
+ end
448
+ end
449
+ end
450
+
451
+ mod2_method_called = false
452
+ mod2 = Module.new do
453
+ extend Spec::MetaClass
454
+ class_methods = Module.new do
455
+ define_method :mod2_method do
456
+ mod2_method_called = true
457
+ end
458
+ end
459
+
460
+ metaclass.class_eval do
461
+ define_method(:included) do |receiver|
462
+ receiver.extend class_methods
463
+ end
464
+ end
465
+ end
466
+
467
+ @example_group.include mod1, mod2
468
+
469
+ @example_group.mod1_method
470
+ @example_group.mod2_method
471
+ mod1_method_called.should be_true
472
+ mod2_method_called.should be_true
473
+ end
474
+ end
475
+
476
+ describe "#number_of_examples" do
477
+ it "should count number of specs" do
478
+ proc do
479
+ @example_group.it("one") {}
480
+ @example_group.it("two") {}
481
+ @example_group.it("three") {}
482
+ @example_group.it("four") {}
483
+ end.should change {@example_group.number_of_examples}.by(4)
484
+ end
485
+ end
486
+
487
+ describe "#class_eval" do
488
+ it "should allow constants to be defined" do
489
+ example_group = Class.new(ExampleGroup) do
490
+ describe('example')
491
+ FOO = 1
492
+ it "should reference FOO" do
493
+ FOO.should == 1
494
+ end
495
+ end
496
+ example_group.run
497
+ Object.const_defined?(:FOO).should == false
498
+ end
499
+ end
500
+
501
+ describe '#register' do
502
+ it "should add ExampleGroup to set of ExampleGroups to be run" do
503
+ options.example_groups.delete(example_group)
504
+ options.example_groups.should_not include(example_group)
505
+
506
+ example_group.register {}
507
+ options.example_groups.should include(example_group)
508
+ end
509
+ end
510
+
511
+ describe '#unregister' do
512
+ before do
513
+ options.example_groups.should include(example_group)
514
+ end
515
+
516
+ it "should remove ExampleGroup from set of ExampleGroups to be run" do
517
+ example_group.unregister
518
+ options.example_groups.should_not include(example_group)
519
+ end
520
+ end
521
+
522
+ describe "#registration_backtrace" do
523
+ it "returns the backtrace of where the ExampleGroup was registered" do
524
+ example_group = Class.new(ExampleGroup)
525
+ example_group.registration_backtrace.join("\n").should include("#{__FILE__}:#{__LINE__-1}")
526
+ end
527
+ end
528
+
529
+ describe "#run" do
530
+ it "should add_example_group if there are any examples to run" do
531
+ example_group = Class.new(ExampleGroup) do
532
+ it "should do something" do end
533
+ end
534
+ reporter.should_receive(:add_example_group)
535
+ example_group.run
536
+ end
537
+
538
+ it "should NOT add_example_group if there are no examples to run" do
539
+ example_group = Class.new(ExampleGroup) do end
540
+ reporter.should_not_receive(:add_example_group)
541
+ example_group.run
542
+ end
543
+ end
544
+
545
+ describe "#matcher_class=" do
546
+ it "should call new and matches? on the class used for matching examples" do
547
+ example_group = Class.new(ExampleGroup) do
548
+ it "should do something" do end
549
+ class << self
550
+ def specified_examples
551
+ ["something"]
552
+ end
553
+ def to_s
554
+ "TestMatcher"
555
+ end
556
+ end
557
+ end
558
+
559
+ matcher = mock("matcher")
560
+ matcher.should_receive(:matches?).with(["something"]).any_number_of_times
561
+
562
+ matcher_class = Class.new
563
+ matcher_class.should_receive(:new).with("TestMatcher", "should do something").twice.and_return(matcher)
564
+
565
+ begin
566
+ ExampleGroupMethods.matcher_class = matcher_class
567
+
568
+ example_group.run
569
+ ensure
570
+ ExampleGroupMethods.matcher_class = ExampleMatcher
571
+ end
572
+ end
573
+ end
574
+
575
+ describe "#options" do
576
+ it "should expose the options hash" do
577
+ group = describe("group", :this => 'hash') {}
578
+ group.options[:this].should == 'hash'
579
+ end
580
+ end
581
+ end
582
+ end
583
+ end
584
+ end