mack 0.8.2 → 0.8.3

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 (602) hide show
  1. data/CHANGELOG +17 -1
  2. data/bin/env_handler.rb +1 -1
  3. data/bin/mack +2 -2
  4. data/bin/mackery-server +1 -1
  5. data/lib/gems.rb +6 -1
  6. data/lib/gems/builder-2.1.2/lib/blankslate.rb +2 -2
  7. data/lib/gems/builder-2.1.2/lib/builder/xchar.rb +3 -3
  8. data/lib/gems/builder-2.1.2/lib/builder/xmlbase.rb +9 -9
  9. data/lib/gems/builder-2.1.2/lib/builder/xmlmarkup.rb +15 -15
  10. data/lib/gems/configatron-2.2.2/lib/configatron.rb +9 -0
  11. data/lib/gems/{configatron-2.1.5 → configatron-2.2.2}/lib/configatron/configatron.rb +8 -6
  12. data/lib/gems/configatron-2.2.2/lib/configatron/core_ext/class.rb +26 -0
  13. data/lib/gems/{configatron-2.1.5/lib/configatron → configatron-2.2.2/lib/configatron/core_ext}/kernel.rb +0 -0
  14. data/lib/gems/configatron-2.2.2/lib/configatron/core_ext/object.rb +9 -0
  15. data/lib/gems/configatron-2.2.2/lib/configatron/core_ext/string.rb +84 -0
  16. data/lib/gems/configatron-2.2.2/lib/configatron/errors.rb +13 -0
  17. data/lib/gems/{configatron-2.1.5 → configatron-2.2.2}/lib/configatron/store.rb +37 -6
  18. data/lib/gems/cucumber-0.1.15/lib/autotest/cucumber.rb +6 -0
  19. data/lib/gems/cucumber-0.1.15/lib/autotest/cucumber_mixin.rb +130 -0
  20. data/lib/gems/cucumber-0.1.15/lib/autotest/cucumber_rails.rb +6 -0
  21. data/lib/gems/cucumber-0.1.15/lib/autotest/cucumber_rails_rspec.rb +6 -0
  22. data/lib/gems/cucumber-0.1.15/lib/autotest/cucumber_rspec.rb +6 -0
  23. data/lib/gems/cucumber-0.1.15/lib/autotest/discover.rb +9 -0
  24. data/lib/gems/cucumber-0.1.15/lib/cucumber.rb +19 -0
  25. data/lib/gems/cucumber-0.1.15/lib/cucumber/broadcaster.rb +20 -0
  26. data/lib/gems/cucumber-0.1.15/lib/cucumber/cli.rb +360 -0
  27. data/lib/gems/cucumber-0.1.15/lib/cucumber/core_ext/exception.rb +20 -0
  28. data/lib/gems/cucumber-0.1.15/lib/cucumber/core_ext/proc.rb +69 -0
  29. data/lib/gems/cucumber-0.1.15/lib/cucumber/core_ext/string.rb +29 -0
  30. data/lib/gems/cucumber-0.1.15/lib/cucumber/executor.rb +205 -0
  31. data/lib/gems/cucumber-0.1.15/lib/cucumber/formatters.rb +1 -0
  32. data/lib/gems/cucumber-0.1.15/lib/cucumber/formatters/ansicolor.rb +105 -0
  33. data/lib/gems/cucumber-0.1.15/lib/cucumber/formatters/autotest_formatter.rb +23 -0
  34. data/lib/gems/{rspec-1.1.11/story_server/prototype/stylesheets/rspec.css → cucumber-0.1.15/lib/cucumber/formatters/cucumber.css} +33 -37
  35. data/lib/gems/cucumber-0.1.15/lib/cucumber/formatters/cucumber.js +11 -0
  36. data/lib/gems/cucumber-0.1.15/lib/cucumber/formatters/html_formatter.rb +151 -0
  37. data/lib/gems/cucumber-0.1.15/lib/cucumber/formatters/jquery.js +32 -0
  38. data/lib/gems/cucumber-0.1.15/lib/cucumber/formatters/pretty_formatter.rb +285 -0
  39. data/lib/gems/cucumber-0.1.15/lib/cucumber/formatters/profile_formatter.rb +92 -0
  40. data/lib/gems/cucumber-0.1.15/lib/cucumber/formatters/progress_formatter.rb +61 -0
  41. data/lib/gems/cucumber-0.1.15/lib/cucumber/formatters/unicode.rb +35 -0
  42. data/lib/gems/cucumber-0.1.15/lib/cucumber/languages.yml +271 -0
  43. data/lib/gems/cucumber-0.1.15/lib/cucumber/model.rb +1 -0
  44. data/lib/gems/cucumber-0.1.15/lib/cucumber/model/table.rb +28 -0
  45. data/lib/gems/cucumber-0.1.15/lib/cucumber/platform.rb +32 -0
  46. data/lib/gems/cucumber-0.1.15/lib/cucumber/rails/rspec.rb +12 -0
  47. data/lib/gems/cucumber-0.1.15/lib/cucumber/rails/world.rb +73 -0
  48. data/lib/gems/cucumber-0.1.15/lib/cucumber/rake/task.rb +101 -0
  49. data/lib/gems/cucumber-0.1.15/lib/cucumber/step_methods.rb +49 -0
  50. data/lib/gems/cucumber-0.1.15/lib/cucumber/step_mother.rb +98 -0
  51. data/lib/gems/cucumber-0.1.15/lib/cucumber/tree.rb +16 -0
  52. data/lib/gems/cucumber-0.1.15/lib/cucumber/tree/feature.rb +89 -0
  53. data/lib/gems/cucumber-0.1.15/lib/cucumber/tree/features.rb +21 -0
  54. data/lib/gems/cucumber-0.1.15/lib/cucumber/tree/given_scenario.rb +13 -0
  55. data/lib/gems/cucumber-0.1.15/lib/cucumber/tree/scenario.rb +236 -0
  56. data/lib/gems/cucumber-0.1.15/lib/cucumber/tree/step.rb +173 -0
  57. data/lib/gems/cucumber-0.1.15/lib/cucumber/tree/table.rb +26 -0
  58. data/lib/gems/cucumber-0.1.15/lib/cucumber/tree/top_down_visitor.rb +23 -0
  59. data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature.treetop.erb +254 -0
  60. data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_ar.rb +1951 -0
  61. data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_cy.rb +1951 -0
  62. data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_da.rb +1951 -0
  63. data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_de.rb +1951 -0
  64. data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_en-lol.rb +1951 -0
  65. data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_en-tx.rb +1951 -0
  66. data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_en.rb +1951 -0
  67. data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_es.rb +1951 -0
  68. data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_et.rb +1951 -0
  69. data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_fr.rb +1951 -0
  70. data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_id.rb +1951 -0
  71. data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_it.rb +1951 -0
  72. data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_ja.rb +1951 -0
  73. data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_ko.rb +1951 -0
  74. data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_lt.rb +1951 -0
  75. data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_nl.rb +1951 -0
  76. data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_no.rb +1951 -0
  77. data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_parser.rb +36 -0
  78. data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_pl.rb +1951 -0
  79. data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_pt.rb +1951 -0
  80. data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_ro.rb +1951 -0
  81. data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_ro2.rb +1951 -0
  82. data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_ru.rb +1951 -0
  83. data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_se.rb +1951 -0
  84. data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_zh-CN.rb +1951 -0
  85. data/lib/gems/cucumber-0.1.15/lib/cucumber/version.rb +10 -0
  86. data/lib/gems/cucumber-0.1.15/lib/cucumber/world.rb +1 -0
  87. data/lib/gems/cucumber-0.1.15/lib/cucumber/world/pending.rb +22 -0
  88. data/lib/gems/diff-lcs-1.1.2/lib/diff/lcs.rb +1105 -0
  89. data/lib/gems/diff-lcs-1.1.2/lib/diff/lcs/array.rb +21 -0
  90. data/lib/gems/diff-lcs-1.1.2/lib/diff/lcs/block.rb +51 -0
  91. data/lib/gems/diff-lcs-1.1.2/lib/diff/lcs/callbacks.rb +322 -0
  92. data/lib/gems/diff-lcs-1.1.2/lib/diff/lcs/change.rb +169 -0
  93. data/lib/gems/diff-lcs-1.1.2/lib/diff/lcs/hunk.rb +257 -0
  94. data/lib/gems/diff-lcs-1.1.2/lib/diff/lcs/ldiff.rb +226 -0
  95. data/lib/gems/diff-lcs-1.1.2/lib/diff/lcs/string.rb +19 -0
  96. data/lib/gems/polyglot-0.2.3/lib/polyglot.rb +62 -0
  97. data/lib/gems/polyglot-0.2.3/lib/polyglot/version.rb +9 -0
  98. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack.rb +7 -2
  99. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/adapter/camping.rb +1 -1
  100. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/auth/abstract/handler.rb +0 -0
  101. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/auth/abstract/request.rb +0 -0
  102. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/auth/basic.rb +0 -0
  103. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/auth/digest/md5.rb +0 -0
  104. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/auth/digest/nonce.rb +0 -0
  105. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/auth/digest/params.rb +0 -0
  106. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/auth/digest/request.rb +0 -0
  107. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/auth/openid.rb +4 -3
  108. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/builder.rb +12 -1
  109. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/cascade.rb +0 -0
  110. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/commonlogger.rb +0 -0
  111. data/lib/gems/rack-0.9.1/lib/rack/conditionalget.rb +43 -0
  112. data/lib/gems/rack-0.9.1/lib/rack/content_length.rb +25 -0
  113. data/lib/gems/rack-0.9.1/lib/rack/deflater.rb +87 -0
  114. data/lib/gems/rack-0.9.1/lib/rack/directory.rb +150 -0
  115. data/lib/gems/rack-0.9.1/lib/rack/file.rb +85 -0
  116. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/handler.rb +4 -0
  117. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/handler/cgi.rb +0 -0
  118. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/handler/evented_mongrel.rb +1 -1
  119. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/handler/fastcgi.rb +2 -0
  120. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/handler/lsws.rb +0 -0
  121. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/handler/mongrel.rb +6 -2
  122. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/handler/scgi.rb +0 -0
  123. data/lib/gems/rack-0.9.1/lib/rack/handler/swiftiplied_mongrel.rb +8 -0
  124. data/lib/gems/rack-0.9.1/lib/rack/handler/thin.rb +15 -0
  125. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/handler/webrick.rb +8 -4
  126. data/lib/gems/rack-0.9.1/lib/rack/head.rb +19 -0
  127. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/lint.rb +74 -10
  128. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/lobster.rb +13 -13
  129. data/lib/gems/rack-0.9.1/lib/rack/methodoverride.rb +27 -0
  130. data/lib/gems/rack-0.9.1/lib/rack/mime.rb +204 -0
  131. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/mock.rb +0 -0
  132. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/recursive.rb +0 -0
  133. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/reloader.rb +0 -0
  134. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/request.rb +10 -1
  135. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/response.rb +7 -2
  136. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/session/abstract/id.rb +14 -1
  137. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/session/cookie.rb +19 -1
  138. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/session/memcache.rb +1 -1
  139. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/session/pool.rb +1 -1
  140. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/showexceptions.rb +5 -1
  141. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/showstatus.rb +3 -2
  142. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/static.rb +0 -0
  143. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/urlmap.rb +1 -1
  144. data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/utils.rb +42 -13
  145. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/bin/autospec +0 -0
  146. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/bin/spec +0 -0
  147. data/lib/gems/{rspec-1.1.11/plugins → rspec-1.1.12/lib/adapters}/mock_frameworks/flexmock.rb +1 -1
  148. data/lib/gems/{rspec-1.1.11/plugins → rspec-1.1.12/lib/adapters}/mock_frameworks/mocha.rb +1 -1
  149. data/lib/gems/{rspec-1.1.11/plugins → rspec-1.1.12/lib/adapters}/mock_frameworks/rr.rb +1 -1
  150. data/lib/gems/{rspec-1.1.11/plugins → rspec-1.1.12/lib/adapters}/mock_frameworks/rspec.rb +2 -2
  151. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/autotest/discover.rb +0 -0
  152. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/autotest/rspec.rb +4 -3
  153. data/lib/gems/rspec-1.1.12/lib/spec.rb +7 -0
  154. data/lib/gems/rspec-1.1.12/lib/spec/dsl.rb +1 -0
  155. data/lib/gems/{rspec-1.1.11/lib/spec/extensions → rspec-1.1.12/lib/spec/dsl}/main.rb +10 -10
  156. data/lib/gems/rspec-1.1.12/lib/spec/example.rb +186 -0
  157. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/example/before_and_after_hooks.rb +30 -24
  158. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/example/errors.rb +0 -0
  159. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/example/example_group.rb +1 -0
  160. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/example/example_group_factory.rb +26 -9
  161. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/example/example_group_methods.rb +138 -113
  162. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/example/example_matcher.rb +0 -0
  163. data/lib/gems/rspec-1.1.12/lib/spec/example/example_methods.rb +168 -0
  164. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/example/module_reopening_fix.rb +0 -0
  165. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/example/pending.rb +0 -0
  166. data/lib/gems/rspec-1.1.12/lib/spec/example/shared_example_group.rb +59 -0
  167. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/expectations.rb +22 -18
  168. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/expectations/differs/default.rb +0 -0
  169. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/expectations/errors.rb +0 -0
  170. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/expectations/extensions.rb +0 -0
  171. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/expectations/extensions/object.rb +0 -0
  172. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/expectations/extensions/string_and_symbol.rb +0 -0
  173. data/lib/gems/rspec-1.1.12/lib/spec/expectations/handler.rb +32 -0
  174. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/interop/test.rb +0 -0
  175. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/interop/test/unit/autorunner.rb +0 -0
  176. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/interop/test/unit/testcase.rb +19 -17
  177. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/interop/test/unit/testresult.rb +1 -1
  178. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/interop/test/unit/testsuite_adapter.rb +1 -1
  179. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/interop/test/unit/ui/console/testrunner.rb +0 -0
  180. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/matchers.rb +7 -28
  181. data/lib/gems/rspec-1.1.12/lib/spec/matchers/be.rb +208 -0
  182. data/lib/gems/rspec-1.1.12/lib/spec/matchers/be_close.rb +21 -0
  183. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/matchers/change.rb +0 -0
  184. data/lib/gems/rspec-1.1.12/lib/spec/matchers/eql.rb +25 -0
  185. data/lib/gems/rspec-1.1.12/lib/spec/matchers/equal.rb +25 -0
  186. data/lib/gems/rspec-1.1.12/lib/spec/matchers/errors.rb +5 -0
  187. data/lib/gems/rspec-1.1.12/lib/spec/matchers/exist.rb +16 -0
  188. data/lib/gems/rspec-1.1.12/lib/spec/matchers/generated_descriptions.rb +48 -0
  189. data/lib/gems/rspec-1.1.12/lib/spec/matchers/has.rb +18 -0
  190. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/matchers/have.rb +0 -0
  191. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/matchers/include.rb +12 -9
  192. data/lib/gems/rspec-1.1.12/lib/spec/matchers/match.rb +22 -0
  193. data/lib/gems/rspec-1.1.12/lib/spec/matchers/match_array.rb +79 -0
  194. data/lib/gems/rspec-1.1.12/lib/spec/matchers/method_missing.rb +9 -0
  195. data/lib/gems/rspec-1.1.12/lib/spec/matchers/operator_matcher.rb +70 -0
  196. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/matchers/raise_error.rb +4 -8
  197. data/lib/gems/rspec-1.1.12/lib/spec/matchers/respond_to.rb +71 -0
  198. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/matchers/satisfy.rb +0 -0
  199. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/matchers/simple_matcher.rb +0 -0
  200. data/lib/gems/rspec-1.1.12/lib/spec/matchers/throw_symbol.rb +106 -0
  201. data/lib/gems/rspec-1.1.12/lib/spec/matchers/wrap_expectation.rb +55 -0
  202. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/mocks.rb +0 -0
  203. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/mocks/argument_constraints.rb +77 -5
  204. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/mocks/argument_expectation.rb +0 -0
  205. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/mocks/error_generator.rb +0 -0
  206. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/mocks/errors.rb +0 -0
  207. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/mocks/extensions.rb +0 -0
  208. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/mocks/extensions/object.rb +0 -0
  209. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/mocks/framework.rb +0 -0
  210. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/mocks/message_expectation.rb +7 -7
  211. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/mocks/methods.rb +0 -0
  212. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/mocks/mock.rb +0 -0
  213. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/mocks/order_group.rb +0 -0
  214. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/mocks/proxy.rb +14 -12
  215. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/mocks/space.rb +0 -0
  216. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/mocks/spec_methods.rb +0 -0
  217. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/rake/spectask.rb +4 -6
  218. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/rake/verify_rcov.rb +0 -0
  219. data/lib/gems/rspec-1.1.12/lib/spec/ruby.rb +9 -0
  220. data/lib/gems/rspec-1.1.12/lib/spec/runner.rb +88 -0
  221. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/backtrace_tweaker.rb +5 -3
  222. data/lib/gems/rspec-1.1.12/lib/spec/runner/class_and_arguments_parser.rb +14 -0
  223. data/lib/gems/rspec-1.1.12/lib/spec/runner/command_line.rb +15 -0
  224. data/lib/gems/{rspec-1.1.11/lib/spec/example → rspec-1.1.12/lib/spec/runner}/configuration.rb +46 -47
  225. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/drb_command_line.rb +0 -0
  226. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/example_group_runner.rb +15 -4
  227. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/formatter/base_formatter.rb +0 -0
  228. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/formatter/base_text_formatter.rb +4 -3
  229. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/formatter/failing_example_groups_formatter.rb +0 -0
  230. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/formatter/failing_examples_formatter.rb +0 -0
  231. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/formatter/html_formatter.rb +14 -11
  232. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/formatter/nested_text_formatter.rb +2 -2
  233. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/formatter/profile_formatter.rb +0 -0
  234. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/formatter/progress_bar_formatter.rb +0 -0
  235. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/formatter/snippet_extractor.rb +0 -0
  236. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/formatter/specdoc_formatter.rb +0 -0
  237. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/formatter/story/html_formatter.rb +0 -0
  238. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/formatter/story/plain_text_formatter.rb +0 -0
  239. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/formatter/story/progress_bar_formatter.rb +0 -0
  240. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/formatter/text_mate_formatter.rb +0 -0
  241. data/lib/gems/rspec-1.1.12/lib/spec/runner/heckle_runner.rb +74 -0
  242. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/heckle_runner_unsupported.rb +0 -0
  243. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/option_parser.rb +8 -4
  244. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/options.rb +29 -14
  245. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/reporter.rb +1 -1
  246. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/spec_parser.rb +11 -9
  247. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/story.rb +0 -0
  248. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/story/extensions.rb +0 -0
  249. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/story/extensions/main.rb +0 -0
  250. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/story/extensions/regexp.rb +0 -0
  251. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/story/extensions/string.rb +0 -0
  252. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/story/given_scenario.rb +0 -0
  253. data/lib/gems/rspec-1.1.12/lib/spec/story/runner.rb +57 -0
  254. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/story/runner/plain_text_story_runner.rb +0 -0
  255. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/story/runner/scenario_collector.rb +0 -0
  256. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/story/runner/scenario_runner.rb +0 -0
  257. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/story/runner/story_mediator.rb +0 -0
  258. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/story/runner/story_parser.rb +0 -0
  259. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/story/runner/story_runner.rb +10 -6
  260. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/story/scenario.rb +0 -0
  261. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/story/step.rb +0 -0
  262. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/story/step_group.rb +0 -0
  263. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/story/step_mother.rb +0 -0
  264. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/story/story.rb +0 -0
  265. data/lib/gems/rspec-1.1.12/lib/spec/story/world.rb +124 -0
  266. data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/version.rb +4 -2
  267. data/lib/gems/rubyforge-1.0.1/lib/rubyforge.rb +475 -0
  268. data/lib/gems/rubyforge-1.0.1/lib/rubyforge/client.rb +134 -0
  269. data/lib/gems/rubyforge-1.0.1/lib/rubyforge/cookie_manager.rb +51 -0
  270. data/lib/gems/term-ansicolor-1.0.3/VERSION +1 -0
  271. data/lib/gems/term-ansicolor-1.0.3/lib/term/ansicolor.rb +220 -0
  272. data/lib/gems/{rspec-1.1.11/spec/spec/runner/empty_file.txt → treetop-1.2.4/lib/metagrammar.rb} +0 -0
  273. data/lib/gems/treetop-1.2.4/lib/treetop.rb +11 -0
  274. data/lib/gems/treetop-1.2.4/lib/treetop/bootstrap_gen_1_metagrammar.rb +45 -0
  275. data/lib/gems/treetop-1.2.4/lib/treetop/compiler.rb +6 -0
  276. data/lib/gems/treetop-1.2.4/lib/treetop/compiler/grammar_compiler.rb +40 -0
  277. data/lib/gems/treetop-1.2.4/lib/treetop/compiler/lexical_address_space.rb +17 -0
  278. data/lib/gems/treetop-1.2.4/lib/treetop/compiler/metagrammar.rb +2887 -0
  279. data/lib/gems/treetop-1.2.4/lib/treetop/compiler/metagrammar.treetop +404 -0
  280. data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes.rb +19 -0
  281. data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes/anything_symbol.rb +18 -0
  282. data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes/atomic_expression.rb +14 -0
  283. data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes/character_class.rb +19 -0
  284. data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes/choice.rb +31 -0
  285. data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes/declaration_sequence.rb +24 -0
  286. data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes/grammar.rb +28 -0
  287. data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes/inline_module.rb +27 -0
  288. data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes/nonterminal.rb +13 -0
  289. data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes/optional.rb +19 -0
  290. data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes/parenthesized_expression.rb +9 -0
  291. data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes/parsing_expression.rb +138 -0
  292. data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes/parsing_rule.rb +55 -0
  293. data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes/predicate.rb +45 -0
  294. data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes/repetition.rb +55 -0
  295. data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes/sequence.rb +68 -0
  296. data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes/terminal.rb +20 -0
  297. data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes/transient_prefix.rb +9 -0
  298. data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes/treetop_file.rb +9 -0
  299. data/lib/gems/treetop-1.2.4/lib/treetop/compiler/ruby_builder.rb +113 -0
  300. data/lib/gems/treetop-1.2.4/lib/treetop/ruby_extensions.rb +2 -0
  301. data/lib/gems/treetop-1.2.4/lib/treetop/ruby_extensions/string.rb +42 -0
  302. data/lib/gems/treetop-1.2.4/lib/treetop/runtime.rb +5 -0
  303. data/lib/gems/treetop-1.2.4/lib/treetop/runtime/compiled_parser.rb +87 -0
  304. data/lib/gems/treetop-1.2.4/lib/treetop/runtime/interval_skip_list.rb +4 -0
  305. data/lib/gems/treetop-1.2.4/lib/treetop/runtime/interval_skip_list/head_node.rb +15 -0
  306. data/lib/gems/treetop-1.2.4/lib/treetop/runtime/interval_skip_list/interval_skip_list.rb +200 -0
  307. data/lib/gems/treetop-1.2.4/lib/treetop/runtime/interval_skip_list/node.rb +164 -0
  308. data/lib/gems/treetop-1.2.4/lib/treetop/runtime/syntax_node.rb +72 -0
  309. data/lib/gems/treetop-1.2.4/lib/treetop/runtime/terminal_parse_failure.rb +16 -0
  310. data/lib/gems/treetop-1.2.4/lib/treetop/runtime/terminal_syntax_node.rb +17 -0
  311. data/lib/mack/application.rb +5 -5
  312. data/lib/mack/boot/configuration.rb +3 -1
  313. data/lib/mack/boot/console.rb +2 -2
  314. data/lib/mack/boot/core.rb +3 -3
  315. data/lib/mack/boot/environment.rb +1 -1
  316. data/lib/mack/boot/logging.rb +1 -1
  317. data/lib/mack/boot/logging/filter.rb +1 -1
  318. data/lib/mack/boot/paths.rb +34 -30
  319. data/lib/mack/boot/plugins.rb +2 -2
  320. data/lib/mack/controller/controller.rb +2 -2
  321. data/lib/mack/controller/request.rb +32 -32
  322. data/lib/mack/core_extensions/kernel.rb +1 -1
  323. data/lib/mack/generators/controller_generator/controller_generator.rb +14 -4
  324. data/lib/mack/generators/controller_generator/manifest.yml +7 -7
  325. data/lib/mack/generators/controller_generator/templates/test/controllers/rspec.rb.template +1 -1
  326. data/lib/mack/generators/controller_generator/templates/test/controllers/test_case.rb.template +1 -1
  327. data/lib/mack/generators/controller_helper_generator/manifest.yml +6 -6
  328. data/lib/mack/generators/mack_application_generator/mack_application_generator.rb +2 -2
  329. data/lib/mack/generators/mack_application_generator/manifest.yml +57 -54
  330. data/lib/mack/generators/mack_application_generator/templates/config/configatron/default.rb.template +1 -1
  331. data/lib/mack/generators/mack_application_generator/templates/config/database.yml.template +15 -15
  332. data/lib/mack/generators/mack_application_generator/templates/config/initializers/gems.rb.template +4 -1
  333. data/lib/mack/generators/mack_application_generator/templates/test/controllers/default_controller_spec.rb.template +1 -1
  334. data/lib/mack/generators/mack_application_generator/templates/test/controllers/default_controller_test.rb.template +1 -1
  335. data/lib/mack/generators/mack_application_generator/templates/test/spec_helper.rb.template +3 -3
  336. data/lib/mack/generators/mack_application_generator/templates/test/test_helper.rb.template +3 -3
  337. data/lib/mack/generators/passenger_generator/templates/config.ru.template +1 -1
  338. data/lib/mack/generators/view_helper_generator/manifest.yml +6 -6
  339. data/lib/mack/rendering/engine/builder.rb +1 -1
  340. data/lib/mack/routing/route_map.rb +1 -15
  341. data/lib/mack/routing/urls.rb +16 -2
  342. data/lib/mack/runner_helpers/request_logger.rb +1 -1
  343. data/lib/mack/tasks/mack_update_tasks.rake +5 -5
  344. data/lib/mack/tasks/rake_rules.rake +1 -1
  345. data/lib/mack/tasks/test_tasks.rake +2 -2
  346. data/lib/mack/testing/helpers.rb +24 -24
  347. data/lib/mack/testing/rspec.rb +5 -23
  348. data/lib/mack/testing/test_assertions.rb +0 -1
  349. data/lib/mack/utils/ansi/ansi_color.rb +1 -1
  350. data/lib/mack/version.rb +1 -1
  351. data/lib/mack/view/default_form_builder.rb +9 -0
  352. data/lib/mack/view/form_builder.rb +151 -0
  353. data/lib/mack/view_helpers/form_helpers.rb +7 -6
  354. data/lib/mack_core.rb +3 -3
  355. data/lib/mack_tasks.rb +1 -1
  356. metadata +381 -477
  357. data/lib/gems/builder-2.1.2/lib/builder/css.rb +0 -250
  358. data/lib/gems/configatron-2.1.5/lib/configatron.rb +0 -6
  359. data/lib/gems/configatron-2.1.5/lib/configatron/errors.rb +0 -7
  360. data/lib/gems/lockfile-1.4.3/bin/rlock +0 -360
  361. data/lib/gems/lockfile-1.4.3/bin/rlock-1.4.3 +0 -360
  362. data/lib/gems/logging-0.9.4/data/bad_logging_1.rb +0 -13
  363. data/lib/gems/logging-0.9.4/data/bad_logging_2.rb +0 -21
  364. data/lib/gems/logging-0.9.4/data/logging.rb +0 -42
  365. data/lib/gems/logging-0.9.4/data/logging.yaml +0 -63
  366. data/lib/gems/logging-0.9.4/data/simple_logging.rb +0 -13
  367. data/lib/gems/rack-0.4.0/bin/rackup +0 -172
  368. data/lib/gems/rack-0.4.0/lib/rack/deflater.rb +0 -63
  369. data/lib/gems/rack-0.4.0/lib/rack/directory.rb +0 -158
  370. data/lib/gems/rack-0.4.0/lib/rack/file.rb +0 -116
  371. data/lib/gems/rcov-0.8.1.2.0/ext/rcovrt/callsite.c +0 -242
  372. data/lib/gems/rcov-0.8.1.2.0/ext/rcovrt/extconf.rb +0 -11
  373. data/lib/gems/rcov-0.8.1.2.0/ext/rcovrt/rcovrt.c +0 -329
  374. data/lib/gems/rspec-1.1.11/lib/spec.rb +0 -32
  375. data/lib/gems/rspec-1.1.11/lib/spec/adapters.rb +0 -1
  376. data/lib/gems/rspec-1.1.11/lib/spec/adapters/ruby_engine.rb +0 -26
  377. data/lib/gems/rspec-1.1.11/lib/spec/adapters/ruby_engine/mri.rb +0 -8
  378. data/lib/gems/rspec-1.1.11/lib/spec/adapters/ruby_engine/rubinius.rb +0 -8
  379. data/lib/gems/rspec-1.1.11/lib/spec/example.rb +0 -12
  380. data/lib/gems/rspec-1.1.11/lib/spec/example/example_methods.rb +0 -105
  381. data/lib/gems/rspec-1.1.11/lib/spec/example/shared_example_group.rb +0 -52
  382. data/lib/gems/rspec-1.1.11/lib/spec/expectations/handler.rb +0 -52
  383. data/lib/gems/rspec-1.1.11/lib/spec/extensions.rb +0 -4
  384. data/lib/gems/rspec-1.1.11/lib/spec/extensions/class.rb +0 -24
  385. data/lib/gems/rspec-1.1.11/lib/spec/extensions/metaclass.rb +0 -7
  386. data/lib/gems/rspec-1.1.11/lib/spec/extensions/object.rb +0 -6
  387. data/lib/gems/rspec-1.1.11/lib/spec/matchers/be.rb +0 -221
  388. data/lib/gems/rspec-1.1.11/lib/spec/matchers/be_close.rb +0 -37
  389. data/lib/gems/rspec-1.1.11/lib/spec/matchers/eql.rb +0 -43
  390. data/lib/gems/rspec-1.1.11/lib/spec/matchers/equal.rb +0 -43
  391. data/lib/gems/rspec-1.1.11/lib/spec/matchers/exist.rb +0 -22
  392. data/lib/gems/rspec-1.1.11/lib/spec/matchers/has.rb +0 -34
  393. data/lib/gems/rspec-1.1.11/lib/spec/matchers/match.rb +0 -41
  394. data/lib/gems/rspec-1.1.11/lib/spec/matchers/operator_matcher.rb +0 -79
  395. data/lib/gems/rspec-1.1.11/lib/spec/matchers/respond_to.rb +0 -46
  396. data/lib/gems/rspec-1.1.11/lib/spec/matchers/throw_symbol.rb +0 -74
  397. data/lib/gems/rspec-1.1.11/lib/spec/runner.rb +0 -213
  398. data/lib/gems/rspec-1.1.11/lib/spec/runner/class_and_arguments_parser.rb +0 -16
  399. data/lib/gems/rspec-1.1.11/lib/spec/runner/command_line.rb +0 -17
  400. data/lib/gems/rspec-1.1.11/lib/spec/runner/heckle_runner.rb +0 -72
  401. data/lib/gems/rspec-1.1.11/lib/spec/story/runner.rb +0 -59
  402. data/lib/gems/rspec-1.1.11/lib/spec/story/world.rb +0 -128
  403. data/lib/gems/rspec-1.1.11/rake_tasks/examples.rake +0 -7
  404. data/lib/gems/rspec-1.1.11/rake_tasks/examples_with_rcov.rake +0 -9
  405. data/lib/gems/rspec-1.1.11/rake_tasks/failing_examples_with_html.rake +0 -9
  406. data/lib/gems/rspec-1.1.11/rake_tasks/verify_rcov.rake +0 -7
  407. data/lib/gems/rspec-1.1.11/spec/README.jruby +0 -15
  408. data/lib/gems/rspec-1.1.11/spec/autotest/autotest_helper.rb +0 -6
  409. data/lib/gems/rspec-1.1.11/spec/autotest/autotest_matchers.rb +0 -47
  410. data/lib/gems/rspec-1.1.11/spec/autotest/discover_spec.rb +0 -19
  411. data/lib/gems/rspec-1.1.11/spec/autotest/rspec_spec.rb +0 -150
  412. data/lib/gems/rspec-1.1.11/spec/rspec_suite.rb +0 -6
  413. data/lib/gems/rspec-1.1.11/spec/ruby_forker.rb +0 -13
  414. data/lib/gems/rspec-1.1.11/spec/spec.opts +0 -6
  415. data/lib/gems/rspec-1.1.11/spec/spec/adapters/ruby_engine_spec.rb +0 -16
  416. data/lib/gems/rspec-1.1.11/spec/spec/example/configuration_spec.rb +0 -296
  417. data/lib/gems/rspec-1.1.11/spec/spec/example/example_group_class_definition_spec.rb +0 -48
  418. data/lib/gems/rspec-1.1.11/spec/spec/example/example_group_factory_spec.rb +0 -165
  419. data/lib/gems/rspec-1.1.11/spec/spec/example/example_group_methods_spec.rb +0 -584
  420. data/lib/gems/rspec-1.1.11/spec/spec/example/example_group_spec.rb +0 -683
  421. data/lib/gems/rspec-1.1.11/spec/spec/example/example_matcher_spec.rb +0 -96
  422. data/lib/gems/rspec-1.1.11/spec/spec/example/example_methods_spec.rb +0 -169
  423. data/lib/gems/rspec-1.1.11/spec/spec/example/example_runner_spec.rb +0 -194
  424. data/lib/gems/rspec-1.1.11/spec/spec/example/nested_example_group_spec.rb +0 -71
  425. data/lib/gems/rspec-1.1.11/spec/spec/example/pending_module_spec.rb +0 -145
  426. data/lib/gems/rspec-1.1.11/spec/spec/example/predicate_matcher_spec.rb +0 -21
  427. data/lib/gems/rspec-1.1.11/spec/spec/example/shared_example_group_spec.rb +0 -281
  428. data/lib/gems/rspec-1.1.11/spec/spec/example/subclassing_example_group_spec.rb +0 -25
  429. data/lib/gems/rspec-1.1.11/spec/spec/expectations/differs/default_spec.rb +0 -127
  430. data/lib/gems/rspec-1.1.11/spec/spec/expectations/extensions/object_spec.rb +0 -95
  431. data/lib/gems/rspec-1.1.11/spec/spec/expectations/fail_with_spec.rb +0 -71
  432. data/lib/gems/rspec-1.1.11/spec/spec/extensions/main_spec.rb +0 -71
  433. data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/resources/spec_that_fails.rb +0 -10
  434. data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/resources/spec_that_passes.rb +0 -10
  435. data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/resources/spec_with_errors.rb +0 -10
  436. data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +0 -13
  437. data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +0 -10
  438. data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +0 -10
  439. data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +0 -10
  440. data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +0 -38
  441. data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/spec_spec.rb +0 -52
  442. data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/test_unit_spec_helper.rb +0 -14
  443. data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/testcase_spec.rb +0 -49
  444. data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +0 -9
  445. data/lib/gems/rspec-1.1.11/spec/spec/matchers/be_close_spec.rb +0 -39
  446. data/lib/gems/rspec-1.1.11/spec/spec/matchers/be_spec.rb +0 -248
  447. data/lib/gems/rspec-1.1.11/spec/spec/matchers/change_spec.rb +0 -329
  448. data/lib/gems/rspec-1.1.11/spec/spec/matchers/description_generation_spec.rb +0 -153
  449. data/lib/gems/rspec-1.1.11/spec/spec/matchers/eql_spec.rb +0 -28
  450. data/lib/gems/rspec-1.1.11/spec/spec/matchers/equal_spec.rb +0 -28
  451. data/lib/gems/rspec-1.1.11/spec/spec/matchers/exist_spec.rb +0 -57
  452. data/lib/gems/rspec-1.1.11/spec/spec/matchers/handler_spec.rb +0 -150
  453. data/lib/gems/rspec-1.1.11/spec/spec/matchers/has_spec.rb +0 -63
  454. data/lib/gems/rspec-1.1.11/spec/spec/matchers/have_spec.rb +0 -394
  455. data/lib/gems/rspec-1.1.11/spec/spec/matchers/include_spec.rb +0 -64
  456. data/lib/gems/rspec-1.1.11/spec/spec/matchers/match_spec.rb +0 -37
  457. data/lib/gems/rspec-1.1.11/spec/spec/matchers/matcher_methods_spec.rb +0 -78
  458. data/lib/gems/rspec-1.1.11/spec/spec/matchers/mock_constraint_matchers_spec.rb +0 -24
  459. data/lib/gems/rspec-1.1.11/spec/spec/matchers/operator_matcher_spec.rb +0 -191
  460. data/lib/gems/rspec-1.1.11/spec/spec/matchers/raise_error_spec.rb +0 -315
  461. data/lib/gems/rspec-1.1.11/spec/spec/matchers/respond_to_spec.rb +0 -54
  462. data/lib/gems/rspec-1.1.11/spec/spec/matchers/satisfy_spec.rb +0 -36
  463. data/lib/gems/rspec-1.1.11/spec/spec/matchers/simple_matcher_spec.rb +0 -93
  464. data/lib/gems/rspec-1.1.11/spec/spec/matchers/throw_symbol_spec.rb +0 -54
  465. data/lib/gems/rspec-1.1.11/spec/spec/mocks/any_number_of_times_spec.rb +0 -36
  466. data/lib/gems/rspec-1.1.11/spec/spec/mocks/argument_expectation_spec.rb +0 -23
  467. data/lib/gems/rspec-1.1.11/spec/spec/mocks/at_least_spec.rb +0 -97
  468. data/lib/gems/rspec-1.1.11/spec/spec/mocks/at_most_spec.rb +0 -93
  469. data/lib/gems/rspec-1.1.11/spec/spec/mocks/bug_report_10260_spec.rb +0 -8
  470. data/lib/gems/rspec-1.1.11/spec/spec/mocks/bug_report_10263_spec.rb +0 -24
  471. data/lib/gems/rspec-1.1.11/spec/spec/mocks/bug_report_11545_spec.rb +0 -33
  472. data/lib/gems/rspec-1.1.11/spec/spec/mocks/bug_report_15719_spec.rb +0 -30
  473. data/lib/gems/rspec-1.1.11/spec/spec/mocks/bug_report_496.rb +0 -17
  474. data/lib/gems/rspec-1.1.11/spec/spec/mocks/bug_report_7611_spec.rb +0 -19
  475. data/lib/gems/rspec-1.1.11/spec/spec/mocks/bug_report_7805_spec.rb +0 -22
  476. data/lib/gems/rspec-1.1.11/spec/spec/mocks/bug_report_8165_spec.rb +0 -31
  477. data/lib/gems/rspec-1.1.11/spec/spec/mocks/bug_report_8302_spec.rb +0 -26
  478. data/lib/gems/rspec-1.1.11/spec/spec/mocks/failing_mock_argument_constraints_spec.rb +0 -95
  479. data/lib/gems/rspec-1.1.11/spec/spec/mocks/hash_including_matcher_spec.rb +0 -53
  480. data/lib/gems/rspec-1.1.11/spec/spec/mocks/mock_ordering_spec.rb +0 -84
  481. data/lib/gems/rspec-1.1.11/spec/spec/mocks/mock_space_spec.rb +0 -54
  482. data/lib/gems/rspec-1.1.11/spec/spec/mocks/mock_spec.rb +0 -555
  483. data/lib/gems/rspec-1.1.11/spec/spec/mocks/multiple_return_value_spec.rb +0 -113
  484. data/lib/gems/rspec-1.1.11/spec/spec/mocks/nil_expectation_warning_spec.rb +0 -53
  485. data/lib/gems/rspec-1.1.11/spec/spec/mocks/null_object_mock_spec.rb +0 -54
  486. data/lib/gems/rspec-1.1.11/spec/spec/mocks/once_counts_spec.rb +0 -53
  487. data/lib/gems/rspec-1.1.11/spec/spec/mocks/options_hash_spec.rb +0 -35
  488. data/lib/gems/rspec-1.1.11/spec/spec/mocks/partial_mock_spec.rb +0 -149
  489. data/lib/gems/rspec-1.1.11/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +0 -66
  490. data/lib/gems/rspec-1.1.11/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +0 -130
  491. data/lib/gems/rspec-1.1.11/spec/spec/mocks/precise_counts_spec.rb +0 -52
  492. data/lib/gems/rspec-1.1.11/spec/spec/mocks/record_messages_spec.rb +0 -26
  493. data/lib/gems/rspec-1.1.11/spec/spec/mocks/stub_spec.rb +0 -188
  494. data/lib/gems/rspec-1.1.11/spec/spec/mocks/twice_counts_spec.rb +0 -67
  495. data/lib/gems/rspec-1.1.11/spec/spec/package/bin_spec_spec.rb +0 -22
  496. data/lib/gems/rspec-1.1.11/spec/spec/runner/class_and_argument_parser_spec.rb +0 -23
  497. data/lib/gems/rspec-1.1.11/spec/spec/runner/command_line_spec.rb +0 -141
  498. data/lib/gems/rspec-1.1.11/spec/spec/runner/drb_command_line_spec.rb +0 -97
  499. data/lib/gems/rspec-1.1.11/spec/spec/runner/examples.txt +0 -2
  500. data/lib/gems/rspec-1.1.11/spec/spec/runner/failed.txt +0 -3
  501. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/base_formatter_spec.rb +0 -112
  502. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +0 -45
  503. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +0 -33
  504. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/html_formatted-1.8.4.html +0 -365
  505. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/html_formatted-1.8.5-jruby.html +0 -387
  506. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/html_formatted-1.8.5.html +0 -371
  507. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +0 -381
  508. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/html_formatted-1.8.6.html +0 -370
  509. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/html_formatter_spec.rb +0 -61
  510. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/nested_text_formatter_spec.rb +0 -318
  511. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/profile_formatter_spec.rb +0 -65
  512. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +0 -155
  513. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/snippet_extractor_spec.rb +0 -18
  514. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/spec_mate_formatter_spec.rb +0 -103
  515. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/specdoc_formatter_spec.rb +0 -159
  516. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/story/html_formatter_spec.rb +0 -135
  517. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/story/plain_text_formatter_spec.rb +0 -600
  518. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/story/progress_bar_formatter_spec.rb +0 -82
  519. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/text_mate_formatted-1.8.4.html +0 -365
  520. data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +0 -370
  521. data/lib/gems/rspec-1.1.11/spec/spec/runner/heckle_runner_spec.rb +0 -78
  522. data/lib/gems/rspec-1.1.11/spec/spec/runner/heckler_spec.rb +0 -13
  523. data/lib/gems/rspec-1.1.11/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +0 -45
  524. data/lib/gems/rspec-1.1.11/spec/spec/runner/option_parser_spec.rb +0 -421
  525. data/lib/gems/rspec-1.1.11/spec/spec/runner/options_spec.rb +0 -450
  526. data/lib/gems/rspec-1.1.11/spec/spec/runner/output_one_time_fixture.rb +0 -7
  527. data/lib/gems/rspec-1.1.11/spec/spec/runner/output_one_time_fixture_runner.rb +0 -8
  528. data/lib/gems/rspec-1.1.11/spec/spec/runner/output_one_time_spec.rb +0 -16
  529. data/lib/gems/rspec-1.1.11/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +0 -62
  530. data/lib/gems/rspec-1.1.11/spec/spec/runner/reporter_spec.rb +0 -238
  531. data/lib/gems/rspec-1.1.11/spec/spec/runner/resources/a_bar.rb +0 -0
  532. data/lib/gems/rspec-1.1.11/spec/spec/runner/resources/a_foo.rb +0 -0
  533. data/lib/gems/rspec-1.1.11/spec/spec/runner/resources/a_spec.rb +0 -1
  534. data/lib/gems/rspec-1.1.11/spec/spec/runner/spec.opts +0 -2
  535. data/lib/gems/rspec-1.1.11/spec/spec/runner/spec_drb.opts +0 -1
  536. data/lib/gems/rspec-1.1.11/spec/spec/runner/spec_parser/spec_parser_fixture.rb +0 -70
  537. data/lib/gems/rspec-1.1.11/spec/spec/runner/spec_parser_spec.rb +0 -85
  538. data/lib/gems/rspec-1.1.11/spec/spec/runner/spec_spaced.opts +0 -2
  539. data/lib/gems/rspec-1.1.11/spec/spec/runner_spec.rb +0 -11
  540. data/lib/gems/rspec-1.1.11/spec/spec/spec_classes.rb +0 -133
  541. data/lib/gems/rspec-1.1.11/spec/spec/story/builders.rb +0 -46
  542. data/lib/gems/rspec-1.1.11/spec/spec/story/extensions/main_spec.rb +0 -161
  543. data/lib/gems/rspec-1.1.11/spec/spec/story/extensions_spec.rb +0 -14
  544. data/lib/gems/rspec-1.1.11/spec/spec/story/given_scenario_spec.rb +0 -27
  545. data/lib/gems/rspec-1.1.11/spec/spec/story/runner/plain_text_story_runner_spec.rb +0 -90
  546. data/lib/gems/rspec-1.1.11/spec/spec/story/runner/scenario_collector_spec.rb +0 -27
  547. data/lib/gems/rspec-1.1.11/spec/spec/story/runner/scenario_runner_spec.rb +0 -214
  548. data/lib/gems/rspec-1.1.11/spec/spec/story/runner/story_mediator_spec.rb +0 -143
  549. data/lib/gems/rspec-1.1.11/spec/spec/story/runner/story_parser_spec.rb +0 -401
  550. data/lib/gems/rspec-1.1.11/spec/spec/story/runner/story_runner_spec.rb +0 -294
  551. data/lib/gems/rspec-1.1.11/spec/spec/story/runner_spec.rb +0 -93
  552. data/lib/gems/rspec-1.1.11/spec/spec/story/scenario_spec.rb +0 -18
  553. data/lib/gems/rspec-1.1.11/spec/spec/story/step_group_spec.rb +0 -157
  554. data/lib/gems/rspec-1.1.11/spec/spec/story/step_mother_spec.rb +0 -84
  555. data/lib/gems/rspec-1.1.11/spec/spec/story/step_spec.rb +0 -272
  556. data/lib/gems/rspec-1.1.11/spec/spec/story/story_helper.rb +0 -2
  557. data/lib/gems/rspec-1.1.11/spec/spec/story/story_spec.rb +0 -84
  558. data/lib/gems/rspec-1.1.11/spec/spec/story/world_spec.rb +0 -423
  559. data/lib/gems/rspec-1.1.11/spec/spec_helper.rb +0 -77
  560. data/lib/gems/rspec-1.1.11/stories/all.rb +0 -5
  561. data/lib/gems/rspec-1.1.11/stories/configuration/before_blocks.story +0 -21
  562. data/lib/gems/rspec-1.1.11/stories/configuration/stories.rb +0 -7
  563. data/lib/gems/rspec-1.1.11/stories/example_groups/autogenerated_docstrings +0 -45
  564. data/lib/gems/rspec-1.1.11/stories/example_groups/example_group_with_should_methods +0 -17
  565. data/lib/gems/rspec-1.1.11/stories/example_groups/nested_groups +0 -17
  566. data/lib/gems/rspec-1.1.11/stories/example_groups/output +0 -25
  567. data/lib/gems/rspec-1.1.11/stories/example_groups/stories.rb +0 -7
  568. data/lib/gems/rspec-1.1.11/stories/helper.rb +0 -6
  569. data/lib/gems/rspec-1.1.11/stories/interop/examples_and_tests_together +0 -30
  570. data/lib/gems/rspec-1.1.11/stories/interop/stories.rb +0 -7
  571. data/lib/gems/rspec-1.1.11/stories/interop/test_case_with_should_methods +0 -17
  572. data/lib/gems/rspec-1.1.11/stories/mock_framework_integration/stories.rb +0 -7
  573. data/lib/gems/rspec-1.1.11/stories/mock_framework_integration/use_flexmock.story +0 -9
  574. data/lib/gems/rspec-1.1.11/stories/pending_stories/README +0 -3
  575. data/lib/gems/rspec-1.1.11/stories/resources/helpers/cmdline.rb +0 -9
  576. data/lib/gems/rspec-1.1.11/stories/resources/helpers/story_helper.rb +0 -16
  577. data/lib/gems/rspec-1.1.11/stories/resources/matchers/smart_match.rb +0 -37
  578. data/lib/gems/rspec-1.1.11/stories/resources/spec/before_blocks_example.rb +0 -32
  579. data/lib/gems/rspec-1.1.11/stories/resources/spec/example_group_with_should_methods.rb +0 -12
  580. data/lib/gems/rspec-1.1.11/stories/resources/spec/simple_spec.rb +0 -8
  581. data/lib/gems/rspec-1.1.11/stories/resources/spec/spec_with_flexmock.rb +0 -18
  582. data/lib/gems/rspec-1.1.11/stories/resources/steps/running_rspec.rb +0 -50
  583. data/lib/gems/rspec-1.1.11/stories/resources/stories/failing_story.rb +0 -15
  584. data/lib/gems/rspec-1.1.11/stories/resources/test/spec_and_test_together.rb +0 -57
  585. data/lib/gems/rspec-1.1.11/stories/resources/test/test_case_with_should_methods.rb +0 -30
  586. data/lib/gems/rspec-1.1.11/stories/stories/multiline_steps.story +0 -23
  587. data/lib/gems/rspec-1.1.11/stories/stories/steps/multiline_steps.rb +0 -13
  588. data/lib/gems/rspec-1.1.11/stories/stories/stories.rb +0 -6
  589. data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/builder.js +0 -136
  590. data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/controls.js +0 -972
  591. data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/dragdrop.js +0 -976
  592. data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/effects.js +0 -1117
  593. data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/prototype.js +0 -4140
  594. data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/rspec.js +0 -149
  595. data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/scriptaculous.js +0 -58
  596. data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/slider.js +0 -276
  597. data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/sound.js +0 -55
  598. data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/unittest.js +0 -568
  599. data/lib/gems/rspec-1.1.11/story_server/prototype/lib/server.rb +0 -24
  600. data/lib/gems/rspec-1.1.11/story_server/prototype/stories.html +0 -176
  601. data/lib/gems/rspec-1.1.11/story_server/prototype/stylesheets/test.css +0 -90
  602. data/lib/mack/testing/test_case.rb +0 -52
@@ -0,0 +1,85 @@
1
+ require 'time'
2
+ require 'rack/mime'
3
+
4
+ module Rack
5
+ # Rack::File serves files below the +root+ given, according to the
6
+ # path info of the Rack request.
7
+ #
8
+ # Handlers can detect if bodies are a Rack::File, and use mechanisms
9
+ # like sendfile on the +path+.
10
+
11
+ class File
12
+ attr_accessor :root
13
+ attr_accessor :path
14
+
15
+ def initialize(root)
16
+ @root = root
17
+ end
18
+
19
+ def call(env)
20
+ dup._call(env)
21
+ end
22
+
23
+ F = ::File
24
+
25
+ def _call(env)
26
+ @path_info = Utils.unescape(env["PATH_INFO"])
27
+ return forbidden if @path_info.include? ".."
28
+
29
+ @path = F.join(@root, @path_info)
30
+
31
+ begin
32
+ if F.file?(@path) && F.readable?(@path)
33
+ serving
34
+ else
35
+ raise Errno::EPERM
36
+ end
37
+ rescue SystemCallError
38
+ not_found
39
+ end
40
+ end
41
+
42
+ def forbidden
43
+ body = "Forbidden\n"
44
+ [403, {"Content-Type" => "text/plain",
45
+ "Content-Length" => body.size.to_s},
46
+ [body]]
47
+ end
48
+
49
+ # NOTE:
50
+ # We check via File::size? whether this file provides size info
51
+ # via stat (e.g. /proc files often don't), otherwise we have to
52
+ # figure it out by reading the whole file into memory. And while
53
+ # we're at it we also use this as body then.
54
+
55
+ def serving
56
+ if size = F.size?(@path)
57
+ body = self
58
+ else
59
+ body = [F.read(@path)]
60
+ size = body.first.size
61
+ end
62
+
63
+ [200, {
64
+ "Last-Modified" => F.mtime(@path).httpdate,
65
+ "Content-Type" => Mime.mime_type(F.extname(@path), 'text/plain'),
66
+ "Content-Length" => size.to_s
67
+ }, body]
68
+ end
69
+
70
+ def not_found
71
+ body = "File not found: #{@path_info}\n"
72
+ [404, {"Content-Type" => "text/plain",
73
+ "Content-Length" => body.size.to_s},
74
+ [body]]
75
+ end
76
+
77
+ def each
78
+ F.open(@path, "rb") { |file|
79
+ while part = file.read(8192)
80
+ yield part
81
+ end
82
+ }
83
+ end
84
+ end
85
+ end
@@ -29,16 +29,20 @@ module Rack
29
29
  autoload :FastCGI, "rack/handler/fastcgi"
30
30
  autoload :Mongrel, "rack/handler/mongrel"
31
31
  autoload :EventedMongrel, "rack/handler/evented_mongrel"
32
+ autoload :SwiftipliedMongrel, "rack/handler/swiftiplied_mongrel"
32
33
  autoload :WEBrick, "rack/handler/webrick"
33
34
  autoload :LSWS, "rack/handler/lsws"
34
35
  autoload :SCGI, "rack/handler/scgi"
36
+ autoload :Thin, "rack/handler/thin"
35
37
 
36
38
  register 'cgi', 'Rack::Handler::CGI'
37
39
  register 'fastcgi', 'Rack::Handler::FastCGI'
38
40
  register 'mongrel', 'Rack::Handler::Mongrel'
39
41
  register 'emongrel', 'Rack::Handler::EventedMongrel'
42
+ register 'smongrel', 'Rack::Handler::SwiftipliedMongrel'
40
43
  register 'webrick', 'Rack::Handler::WEBrick'
41
44
  register 'lsws', 'Rack::Handler::LSWS'
42
45
  register 'scgi', 'Rack::Handler::SCGI'
46
+ register 'thin', 'Rack::Handler::Thin'
43
47
  end
44
48
  end
@@ -2,7 +2,7 @@ require 'swiftcore/evented_mongrel'
2
2
 
3
3
  module Rack
4
4
  module Handler
5
- class EventedMongrel < Mongrel
5
+ class EventedMongrel < Handler::Mongrel
6
6
  end
7
7
  end
8
8
  end
@@ -51,6 +51,8 @@ module Rack
51
51
  env["HTTP_VERSION"] ||= env["SERVER_PROTOCOL"]
52
52
  env["REQUEST_PATH"] ||= "/"
53
53
  env.delete "PATH_INFO" if env["PATH_INFO"] == ""
54
+ env.delete "CONTENT_TYPE" if env["CONTENT_TYPE"] == ""
55
+ env.delete "CONTENT_LENGTH" if env["CONTENT_LENGTH"] == ""
54
56
 
55
57
  status, headers, body = app.call(env)
56
58
  begin
@@ -60,15 +60,19 @@ module Rack
60
60
 
61
61
  begin
62
62
  response.status = status.to_i
63
+ response.send_status(nil)
64
+
63
65
  headers.each { |k, vs|
64
66
  vs.each { |v|
65
67
  response.header[k] = v
66
68
  }
67
69
  }
70
+ response.send_header
71
+
68
72
  body.each { |part|
69
- response.body << part
73
+ response.write part
74
+ response.socket.flush
70
75
  }
71
- response.finished
72
76
  ensure
73
77
  body.close if body.respond_to? :close
74
78
  end
@@ -0,0 +1,8 @@
1
+ require 'swiftcore/swiftiplied_mongrel'
2
+
3
+ module Rack
4
+ module Handler
5
+ class SwiftipliedMongrel < Handler::Mongrel
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,15 @@
1
+ require "thin"
2
+
3
+ module Rack
4
+ module Handler
5
+ class Thin
6
+ def self.run(app, options={})
7
+ server = ::Thin::Server.new(options[:Host] || '0.0.0.0',
8
+ options[:Port] || 8080,
9
+ app)
10
+ yield server if block_given?
11
+ server.start
12
+ end
13
+ end
14
+ end
15
+ end
@@ -3,7 +3,7 @@ require 'stringio'
3
3
 
4
4
  module Rack
5
5
  module Handler
6
- class WEBrick < WEBrick::HTTPServlet::AbstractServlet
6
+ class WEBrick < ::WEBrick::HTTPServlet::AbstractServlet
7
7
  def self.run(app, options={})
8
8
  server = ::WEBrick::HTTPServer.new(options)
9
9
  server.mount "/", Rack::Handler::WEBrick, app
@@ -41,9 +41,13 @@ module Rack
41
41
  begin
42
42
  res.status = status.to_i
43
43
  headers.each { |k, vs|
44
- vs.each { |v|
45
- res[k] = v
46
- }
44
+ if k.downcase == "set-cookie"
45
+ res.cookies.concat vs.to_a
46
+ else
47
+ vs.each { |v|
48
+ res[k] = v
49
+ }
50
+ end
47
51
  }
48
52
  body.each { |part|
49
53
  res.body << part
@@ -0,0 +1,19 @@
1
+ module Rack
2
+
3
+ class Head
4
+ def initialize(app)
5
+ @app = app
6
+ end
7
+
8
+ def call(env)
9
+ status, headers, body = @app.call(env)
10
+
11
+ if env["REQUEST_METHOD"] == "HEAD"
12
+ [status, headers, []]
13
+ else
14
+ [status, headers, body]
15
+ end
16
+ end
17
+ end
18
+
19
+ end
@@ -29,8 +29,8 @@ module Rack
29
29
 
30
30
  ## A Rack application is an Ruby object (not a class) that
31
31
  ## responds to +call+.
32
- def call(env=nil)
33
- dup._call(env)
32
+ def call(env=nil)
33
+ dup._call(env)
34
34
  end
35
35
 
36
36
  def _call(env)
@@ -49,6 +49,7 @@ module Rack
49
49
  check_headers headers
50
50
  ## and the *body*.
51
51
  check_content_type status, headers
52
+ check_content_length status, headers, env
52
53
  [status, headers, self]
53
54
  end
54
55
 
@@ -162,11 +163,9 @@ module Rack
162
163
  ## * There must be a valid error stream in <tt>rack.errors</tt>.
163
164
  check_error env["rack.errors"]
164
165
 
165
- ## * The <tt>REQUEST_METHOD</tt> must be one of +GET+, +POST+, +PUT+,
166
- ## +DELETE+, +HEAD+, +OPTIONS+, +TRACE+.
166
+ ## * The <tt>REQUEST_METHOD</tt> must be a valid token.
167
167
  assert("REQUEST_METHOD unknown: #{env["REQUEST_METHOD"]}") {
168
- %w[GET POST PUT DELETE
169
- HEAD OPTIONS TRACE].include?(env["REQUEST_METHOD"])
168
+ env["REQUEST_METHOD"] =~ /\A[0-9A-Za-z!\#$%&'*+.^_`|~-]+\z/
170
169
  }
171
170
 
172
171
  ## * The <tt>SCRIPT_NAME</tt>, if non-empty, must start with <tt>/</tt>
@@ -215,6 +214,14 @@ module Rack
215
214
  @input = input
216
215
  end
217
216
 
217
+ def size
218
+ @input.size
219
+ end
220
+
221
+ def rewind
222
+ @input.rewind
223
+ end
224
+
218
225
  ## * +gets+ must be called without arguments and return a string,
219
226
  ## or +nil+ on EOF.
220
227
  def gets(*args)
@@ -350,18 +357,75 @@ module Rack
350
357
  def check_content_type(status, headers)
351
358
  headers.each { |key, value|
352
359
  ## There must be a <tt>Content-Type</tt>, except when the
353
- ## +Status+ is 204 or 304, in which case there must be none
360
+ ## +Status+ is 1xx, 204 or 304, in which case there must be none
354
361
  ## given.
355
362
  if key.downcase == "content-type"
356
- assert("Content-Type header found in #{status} response, not allowed"){
357
- not [204, 304].include? status.to_i
363
+ assert("Content-Type header found in #{status} response, not allowed") {
364
+ not Rack::Utils::STATUS_WITH_NO_ENTITY_BODY.include? status.to_i
358
365
  }
359
366
  return
360
367
  end
361
368
  }
362
369
  assert("No Content-Type header found") {
363
- [204, 304].include? status.to_i
370
+ Rack::Utils::STATUS_WITH_NO_ENTITY_BODY.include? status.to_i
371
+ }
372
+ end
373
+
374
+ ## === The Content-Length
375
+ def check_content_length(status, headers, env)
376
+ chunked_response = false
377
+ headers.each { |key, value|
378
+ if key.downcase == 'transfer-encoding'
379
+ chunked_response = value.downcase != 'identity'
380
+ end
381
+ }
382
+
383
+ headers.each { |key, value|
384
+ if key.downcase == 'content-length'
385
+ ## There must be a <tt>Content-Length</tt>, except when the
386
+ ## +Status+ is 1xx, 204 or 304, in which case there must be none
387
+ ## given.
388
+ assert("Content-Length header found in #{status} response, not allowed") {
389
+ not Rack::Utils::STATUS_WITH_NO_ENTITY_BODY.include? status.to_i
390
+ }
391
+
392
+ assert('Content-Length header should not be used if body is chunked') {
393
+ not chunked_response
394
+ }
395
+
396
+ bytes = 0
397
+ string_body = true
398
+
399
+ @body.each { |part|
400
+ unless part.kind_of?(String)
401
+ string_body = false
402
+ break
403
+ end
404
+
405
+ bytes += (part.respond_to?(:bytesize) ? part.bytesize : part.size)
406
+ }
407
+
408
+ if env["REQUEST_METHOD"] == "HEAD"
409
+ assert("Response body was given for HEAD request, but should be empty") {
410
+ bytes == 0
411
+ }
412
+ else
413
+ if string_body
414
+ assert("Content-Length header was #{value}, but should be #{bytes}") {
415
+ value == bytes.to_s
416
+ }
417
+ end
418
+ end
419
+
420
+ return
421
+ end
364
422
  }
423
+
424
+ if [ String, Array ].include?(@body.class) && !chunked_response
425
+ assert('No Content-Length header found') {
426
+ Rack::Utils::STATUS_WITH_NO_ENTITY_BODY.include? status.to_i
427
+ }
428
+ end
365
429
  end
366
430
 
367
431
  ## === The Body
@@ -22,11 +22,11 @@ module Rack
22
22
  href = "?flip"
23
23
  end
24
24
 
25
- [200, {"Content-Type" => "text/html"},
26
- ["<title>Lobstericious!</title>",
27
- "<pre>", lobster, "</pre>",
28
- "<a href='#{href}'>flip!</a>"]
29
- ]
25
+ content = ["<title>Lobstericious!</title>",
26
+ "<pre>", lobster, "</pre>",
27
+ "<a href='#{href}'>flip!</a>"]
28
+ length = content.inject(0) { |a,e| a+e.size }.to_s
29
+ [200, {"Content-Type" => "text/html", "Content-Length" => length}, content]
30
30
  }
31
31
 
32
32
  def call(env)
@@ -43,14 +43,14 @@ module Rack
43
43
  href = "?flip=left"
44
44
  end
45
45
 
46
- Response.new.finish do |res|
47
- res.write "<title>Lobstericious!</title>"
48
- res.write "<pre>"
49
- res.write lobster
50
- res.write "</pre>"
51
- res.write "<p><a href='#{href}'>flip!</a></p>"
52
- res.write "<p><a href='?flip=crash'>crash!</a></p>"
53
- end
46
+ res = Response.new
47
+ res.write "<title>Lobstericious!</title>"
48
+ res.write "<pre>"
49
+ res.write lobster
50
+ res.write "</pre>"
51
+ res.write "<p><a href='#{href}'>flip!</a></p>"
52
+ res.write "<p><a href='?flip=crash'>crash!</a></p>"
53
+ res.finish
54
54
  end
55
55
 
56
56
  end
@@ -0,0 +1,27 @@
1
+ module Rack
2
+ class MethodOverride
3
+ HTTP_METHODS = %w(GET HEAD PUT POST DELETE OPTIONS)
4
+
5
+ METHOD_OVERRIDE_PARAM_KEY = "_method".freeze
6
+ HTTP_METHOD_OVERRIDE_HEADER = "HTTP_X_HTTP_METHOD_OVERRIDE".freeze
7
+
8
+ def initialize(app)
9
+ @app = app
10
+ end
11
+
12
+ def call(env)
13
+ if env["REQUEST_METHOD"] == "POST"
14
+ req = Request.new(env)
15
+ method = req.POST[METHOD_OVERRIDE_PARAM_KEY] ||
16
+ env[HTTP_METHOD_OVERRIDE_HEADER]
17
+ method = method.to_s.upcase
18
+ if HTTP_METHODS.include?(method)
19
+ env["rack.methodoverride.original_method"] = env["REQUEST_METHOD"]
20
+ env["REQUEST_METHOD"] = method
21
+ end
22
+ end
23
+
24
+ @app.call(env)
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,204 @@
1
+ module Rack
2
+ module Mime
3
+ # Returns String with mime type if found, otherwise use +fallback+.
4
+ # +ext+ should be filename extension in the '.ext' format that
5
+ # File.extname(file) returns.
6
+ # +fallback+ may be any object
7
+ #
8
+ # Also see the documentation for MIME_TYPES
9
+ #
10
+ # Usage:
11
+ # Rack::Utils.mime_type('.foo')
12
+ #
13
+ # This is a shortcut for:
14
+ # Rack::Utils::MIME_TYPES.fetch('.foo', 'application/octet-stream')
15
+
16
+ def mime_type(ext, fallback='application/octet-stream')
17
+ MIME_TYPES.fetch(ext, fallback)
18
+ end
19
+ module_function :mime_type
20
+
21
+ # List of most common mime-types, selected various sources
22
+ # according to their usefulness in a webserving scope for Ruby
23
+ # users.
24
+ #
25
+ # To amend this list with your local mime.types list you can use:
26
+ #
27
+ # require 'webrick/httputils'
28
+ # list = WEBrick::HTTPUtils.load_mime_types('/etc/mime.types')
29
+ # Rack::Utils::MIME_TYPES.merge!(list)
30
+ #
31
+ # To add the list mongrel provides, use:
32
+ #
33
+ # require 'mongrel/handlers'
34
+ # Rack::Utils::MIME_TYPES.merge!(Mongrel::DirHandler::MIME_TYPES)
35
+
36
+ MIME_TYPES = {
37
+ ".3gp" => "video/3gpp",
38
+ ".a" => "application/octet-stream",
39
+ ".ai" => "application/postscript",
40
+ ".aif" => "audio/x-aiff",
41
+ ".aiff" => "audio/x-aiff",
42
+ ".asc" => "application/pgp-signature",
43
+ ".asf" => "video/x-ms-asf",
44
+ ".asm" => "text/x-asm",
45
+ ".asx" => "video/x-ms-asf",
46
+ ".atom" => "application/atom+xml",
47
+ ".au" => "audio/basic",
48
+ ".avi" => "video/x-msvideo",
49
+ ".bat" => "application/x-msdownload",
50
+ ".bin" => "application/octet-stream",
51
+ ".bmp" => "image/bmp",
52
+ ".bz2" => "application/x-bzip2",
53
+ ".c" => "text/x-c",
54
+ ".cab" => "application/vnd.ms-cab-compressed",
55
+ ".cc" => "text/x-c",
56
+ ".chm" => "application/vnd.ms-htmlhelp",
57
+ ".class" => "application/octet-stream",
58
+ ".com" => "application/x-msdownload",
59
+ ".conf" => "text/plain",
60
+ ".cpp" => "text/x-c",
61
+ ".crt" => "application/x-x509-ca-cert",
62
+ ".css" => "text/css",
63
+ ".csv" => "text/csv",
64
+ ".cxx" => "text/x-c",
65
+ ".deb" => "application/x-debian-package",
66
+ ".der" => "application/x-x509-ca-cert",
67
+ ".diff" => "text/x-diff",
68
+ ".djv" => "image/vnd.djvu",
69
+ ".djvu" => "image/vnd.djvu",
70
+ ".dll" => "application/x-msdownload",
71
+ ".dmg" => "application/octet-stream",
72
+ ".doc" => "application/msword",
73
+ ".dot" => "application/msword",
74
+ ".dtd" => "application/xml-dtd",
75
+ ".dvi" => "application/x-dvi",
76
+ ".ear" => "application/java-archive",
77
+ ".eml" => "message/rfc822",
78
+ ".eps" => "application/postscript",
79
+ ".exe" => "application/x-msdownload",
80
+ ".f" => "text/x-fortran",
81
+ ".f77" => "text/x-fortran",
82
+ ".f90" => "text/x-fortran",
83
+ ".flv" => "video/x-flv",
84
+ ".for" => "text/x-fortran",
85
+ ".gem" => "application/octet-stream",
86
+ ".gemspec" => "text/x-script.ruby",
87
+ ".gif" => "image/gif",
88
+ ".gz" => "application/x-gzip",
89
+ ".h" => "text/x-c",
90
+ ".hh" => "text/x-c",
91
+ ".htm" => "text/html",
92
+ ".html" => "text/html",
93
+ ".ico" => "image/vnd.microsoft.icon",
94
+ ".ics" => "text/calendar",
95
+ ".ifb" => "text/calendar",
96
+ ".iso" => "application/octet-stream",
97
+ ".jar" => "application/java-archive",
98
+ ".java" => "text/x-java-source",
99
+ ".jnlp" => "application/x-java-jnlp-file",
100
+ ".jpeg" => "image/jpeg",
101
+ ".jpg" => "image/jpeg",
102
+ ".js" => "application/javascript",
103
+ ".json" => "application/json",
104
+ ".log" => "text/plain",
105
+ ".m3u" => "audio/x-mpegurl",
106
+ ".m4v" => "video/mp4",
107
+ ".man" => "text/troff",
108
+ ".mathml" => "application/mathml+xml",
109
+ ".mbox" => "application/mbox",
110
+ ".mdoc" => "text/troff",
111
+ ".me" => "text/troff",
112
+ ".mid" => "audio/midi",
113
+ ".midi" => "audio/midi",
114
+ ".mime" => "message/rfc822",
115
+ ".mml" => "application/mathml+xml",
116
+ ".mng" => "video/x-mng",
117
+ ".mov" => "video/quicktime",
118
+ ".mp3" => "audio/mpeg",
119
+ ".mp4" => "video/mp4",
120
+ ".mp4v" => "video/mp4",
121
+ ".mpeg" => "video/mpeg",
122
+ ".mpg" => "video/mpeg",
123
+ ".ms" => "text/troff",
124
+ ".msi" => "application/x-msdownload",
125
+ ".odp" => "application/vnd.oasis.opendocument.presentation",
126
+ ".ods" => "application/vnd.oasis.opendocument.spreadsheet",
127
+ ".odt" => "application/vnd.oasis.opendocument.text",
128
+ ".ogg" => "application/ogg",
129
+ ".p" => "text/x-pascal",
130
+ ".pas" => "text/x-pascal",
131
+ ".pbm" => "image/x-portable-bitmap",
132
+ ".pdf" => "application/pdf",
133
+ ".pem" => "application/x-x509-ca-cert",
134
+ ".pgm" => "image/x-portable-graymap",
135
+ ".pgp" => "application/pgp-encrypted",
136
+ ".pkg" => "application/octet-stream",
137
+ ".pl" => "text/x-script.perl",
138
+ ".pm" => "text/x-script.perl-module",
139
+ ".png" => "image/png",
140
+ ".pnm" => "image/x-portable-anymap",
141
+ ".ppm" => "image/x-portable-pixmap",
142
+ ".pps" => "application/vnd.ms-powerpoint",
143
+ ".ppt" => "application/vnd.ms-powerpoint",
144
+ ".ps" => "application/postscript",
145
+ ".psd" => "image/vnd.adobe.photoshop",
146
+ ".py" => "text/x-script.python",
147
+ ".qt" => "video/quicktime",
148
+ ".ra" => "audio/x-pn-realaudio",
149
+ ".rake" => "text/x-script.ruby",
150
+ ".ram" => "audio/x-pn-realaudio",
151
+ ".rar" => "application/x-rar-compressed",
152
+ ".rb" => "text/x-script.ruby",
153
+ ".rdf" => "application/rdf+xml",
154
+ ".roff" => "text/troff",
155
+ ".rpm" => "application/x-redhat-package-manager",
156
+ ".rss" => "application/rss+xml",
157
+ ".rtf" => "application/rtf",
158
+ ".ru" => "text/x-script.ruby",
159
+ ".s" => "text/x-asm",
160
+ ".sgm" => "text/sgml",
161
+ ".sgml" => "text/sgml",
162
+ ".sh" => "application/x-sh",
163
+ ".sig" => "application/pgp-signature",
164
+ ".snd" => "audio/basic",
165
+ ".so" => "application/octet-stream",
166
+ ".svg" => "image/svg+xml",
167
+ ".svgz" => "image/svg+xml",
168
+ ".swf" => "application/x-shockwave-flash",
169
+ ".t" => "text/troff",
170
+ ".tar" => "application/x-tar",
171
+ ".tbz" => "application/x-bzip-compressed-tar",
172
+ ".tcl" => "application/x-tcl",
173
+ ".tex" => "application/x-tex",
174
+ ".texi" => "application/x-texinfo",
175
+ ".texinfo" => "application/x-texinfo",
176
+ ".text" => "text/plain",
177
+ ".tif" => "image/tiff",
178
+ ".tiff" => "image/tiff",
179
+ ".torrent" => "application/x-bittorrent",
180
+ ".tr" => "text/troff",
181
+ ".txt" => "text/plain",
182
+ ".vcf" => "text/x-vcard",
183
+ ".vcs" => "text/x-vcalendar",
184
+ ".vrml" => "model/vrml",
185
+ ".war" => "application/java-archive",
186
+ ".wav" => "audio/x-wav",
187
+ ".wma" => "audio/x-ms-wma",
188
+ ".wmv" => "video/x-ms-wmv",
189
+ ".wmx" => "video/x-ms-wmx",
190
+ ".wrl" => "model/vrml",
191
+ ".wsdl" => "application/wsdl+xml",
192
+ ".xbm" => "image/x-xbitmap",
193
+ ".xhtml" => "application/xhtml+xml",
194
+ ".xls" => "application/vnd.ms-excel",
195
+ ".xml" => "application/xml",
196
+ ".xpm" => "image/x-xpixmap",
197
+ ".xsl" => "application/xml",
198
+ ".xslt" => "application/xslt+xml",
199
+ ".yaml" => "text/yaml",
200
+ ".yml" => "text/yaml",
201
+ ".zip" => "application/zip",
202
+ }
203
+ end
204
+ end