gsterndale-warrant 0.0.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (434) hide show
  1. data/README.textile +93 -0
  2. data/VERSION.yml +1 -1
  3. data/lib/warrant/app/controllers/application_controller.rb +25 -0
  4. data/lib/warrant/app/models/warrantable.rb +112 -0
  5. data/lib/warrant/lib/extensions/active_record.rb +21 -0
  6. data/lib/warrant/lib/warrant.rb +7 -0
  7. data/lib/warrant/test/test_helper.rb +1 -14
  8. data/lib/warrant.rb +5 -1
  9. data/test/rails_root/Capfile +3 -0
  10. data/test/rails_root/Rakefile +10 -0
  11. data/test/rails_root/app/controllers/application.rb +8 -0
  12. data/test/rails_root/app/helpers/application_helper.rb +5 -0
  13. data/test/rails_root/app/models/post.rb +23 -0
  14. data/test/rails_root/app/models/user.rb +5 -0
  15. data/test/rails_root/app/views/layouts/_flashes.erb +5 -0
  16. data/test/rails_root/app/views/layouts/application.html.erb +14 -0
  17. data/test/rails_root/config/boot.rb +109 -0
  18. data/test/rails_root/config/database.yml +13 -0
  19. data/test/rails_root/config/environment.rb +36 -0
  20. data/test/rails_root/config/environments/development.rb +19 -0
  21. data/test/rails_root/config/environments/test.rb +32 -0
  22. data/test/rails_root/config/initializers/inflections.rb +10 -0
  23. data/test/rails_root/config/initializers/mime_types.rb +5 -0
  24. data/test/rails_root/config/initializers/requires.rb +13 -0
  25. data/test/rails_root/config/initializers/time_formats.rb +4 -0
  26. data/test/rails_root/config/routes.rb +6 -0
  27. data/test/rails_root/db/migrate/20090123181754_create_users.rb +11 -0
  28. data/test/rails_root/db/migrate/20090123181755_create_posts.rb +15 -0
  29. data/test/rails_root/doc/README_FOR_APP +2 -0
  30. data/test/rails_root/doc/README_FOR_TEMPLATE +15 -0
  31. data/test/rails_root/lib/extensions/active_record.rb +5 -0
  32. data/test/rails_root/lib/tasks/bootstrap.rake +16 -0
  33. data/test/rails_root/lib/tasks/capistrano.rake +96 -0
  34. data/test/rails_root/lib/tasks/git_tasks.rake +129 -0
  35. data/test/rails_root/public/404.html +30 -0
  36. data/test/rails_root/public/422.html +30 -0
  37. data/test/rails_root/public/500.html +30 -0
  38. data/test/rails_root/public/dispatch.rb +10 -0
  39. data/test/rails_root/public/favicon.ico +0 -0
  40. data/test/rails_root/public/images/rails.png +0 -0
  41. data/test/rails_root/public/javascripts/application.js +2 -0
  42. data/test/rails_root/public/javascripts/builder.js +136 -0
  43. data/test/rails_root/public/javascripts/controls.js +963 -0
  44. data/test/rails_root/public/javascripts/dragdrop.js +972 -0
  45. data/test/rails_root/public/javascripts/effects.js +1120 -0
  46. data/test/rails_root/public/javascripts/prototype.js +4225 -0
  47. data/test/rails_root/public/javascripts/scriptaculous.js +58 -0
  48. data/test/rails_root/public/javascripts/slider.js +277 -0
  49. data/test/rails_root/public/javascripts/sound.js +60 -0
  50. data/test/rails_root/public/robots.txt +1 -0
  51. data/test/rails_root/script/about +3 -0
  52. data/test/rails_root/script/breakpointer +3 -0
  53. data/test/rails_root/script/console +3 -0
  54. data/test/rails_root/script/create_project.rb +52 -0
  55. data/test/rails_root/script/dbconsole +3 -0
  56. data/test/rails_root/script/destroy +3 -0
  57. data/test/rails_root/script/generate +3 -0
  58. data/test/rails_root/script/performance/benchmarker +3 -0
  59. data/test/rails_root/script/performance/profiler +3 -0
  60. data/test/rails_root/script/performance/request +3 -0
  61. data/test/rails_root/script/plugin +3 -0
  62. data/test/rails_root/script/process/inspector +3 -0
  63. data/test/rails_root/script/process/reaper +3 -0
  64. data/test/rails_root/script/process/spawner +3 -0
  65. data/test/rails_root/script/runner +3 -0
  66. data/test/rails_root/script/server +3 -0
  67. data/test/rails_root/test/factories/warrant.rb +15 -0
  68. data/test/rails_root/test/functional/application_controller_test.rb +33 -0
  69. data/test/rails_root/test/test_helper.rb +24 -0
  70. data/test/rails_root/test/unit/post_test.rb +235 -0
  71. data/test/rails_root/vendor/gems/RedCloth-3.0.4/bin/redcloth +3 -0
  72. data/test/rails_root/vendor/gems/RedCloth-3.0.4/doc/CHANGELOG +160 -0
  73. data/test/rails_root/vendor/gems/RedCloth-3.0.4/doc/COPYING +25 -0
  74. data/test/rails_root/vendor/gems/RedCloth-3.0.4/doc/README +106 -0
  75. data/test/rails_root/vendor/gems/RedCloth-3.0.4/doc/REFERENCE +216 -0
  76. data/test/rails_root/vendor/gems/RedCloth-3.0.4/doc/make.rb +359 -0
  77. data/test/rails_root/vendor/gems/RedCloth-3.0.4/lib/redcloth.rb +1130 -0
  78. data/test/rails_root/vendor/gems/RedCloth-3.0.4/run-tests.rb +28 -0
  79. data/test/rails_root/vendor/gems/RedCloth-3.0.4/setup.rb +1376 -0
  80. data/test/rails_root/vendor/gems/RedCloth-3.0.4/tests/code.yml +105 -0
  81. data/test/rails_root/vendor/gems/RedCloth-3.0.4/tests/hard_breaks.yml +26 -0
  82. data/test/rails_root/vendor/gems/RedCloth-3.0.4/tests/images.yml +171 -0
  83. data/test/rails_root/vendor/gems/RedCloth-3.0.4/tests/instiki.yml +39 -0
  84. data/test/rails_root/vendor/gems/RedCloth-3.0.4/tests/links.yml +155 -0
  85. data/test/rails_root/vendor/gems/RedCloth-3.0.4/tests/lists.yml +77 -0
  86. data/test/rails_root/vendor/gems/RedCloth-3.0.4/tests/markdown.yml +218 -0
  87. data/test/rails_root/vendor/gems/RedCloth-3.0.4/tests/poignant.yml +64 -0
  88. data/test/rails_root/vendor/gems/RedCloth-3.0.4/tests/table.yml +198 -0
  89. data/test/rails_root/vendor/gems/RedCloth-3.0.4/tests/textism.yml +406 -0
  90. data/test/rails_root/vendor/gems/mocha-0.9.4/COPYING +3 -0
  91. data/test/rails_root/vendor/gems/mocha-0.9.4/MIT-LICENSE +7 -0
  92. data/test/rails_root/vendor/gems/mocha-0.9.4/README +37 -0
  93. data/test/rails_root/vendor/gems/mocha-0.9.4/RELEASE +263 -0
  94. data/test/rails_root/vendor/gems/mocha-0.9.4/Rakefile +199 -0
  95. data/test/rails_root/vendor/gems/mocha-0.9.4/examples/misc.rb +44 -0
  96. data/test/rails_root/vendor/gems/mocha-0.9.4/examples/mocha.rb +26 -0
  97. data/test/rails_root/vendor/gems/mocha-0.9.4/examples/stubba.rb +65 -0
  98. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/any_instance_method.rb +54 -0
  99. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/argument_iterator.rb +21 -0
  100. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/backtrace_filter.rb +17 -0
  101. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/cardinality.rb +95 -0
  102. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/central.rb +27 -0
  103. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/change_state_side_effect.rb +19 -0
  104. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/class_method.rb +86 -0
  105. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/configuration.rb +60 -0
  106. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/deprecation.rb +22 -0
  107. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/exception_raiser.rb +17 -0
  108. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/expectation.rb +451 -0
  109. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/expectation_error.rb +15 -0
  110. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/expectation_list.rb +50 -0
  111. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/in_state_ordering_constraint.rb +19 -0
  112. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/inspect.rb +67 -0
  113. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/instance_method.rb +16 -0
  114. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/is_a.rb +9 -0
  115. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/logger.rb +15 -0
  116. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/metaclass.rb +13 -0
  117. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/method_matcher.rb +21 -0
  118. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/mini_test_adapter.rb +50 -0
  119. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/mock.rb +200 -0
  120. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/mockery.rb +181 -0
  121. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/module_method.rb +16 -0
  122. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/multiple_yields.rb +20 -0
  123. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/names.rb +53 -0
  124. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/no_yields.rb +11 -0
  125. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/object.rb +187 -0
  126. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/parameter_matchers/all_of.rb +42 -0
  127. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/parameter_matchers/any_of.rb +47 -0
  128. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/parameter_matchers/any_parameters.rb +40 -0
  129. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/parameter_matchers/anything.rb +33 -0
  130. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/parameter_matchers/base.rb +15 -0
  131. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/parameter_matchers/equals.rb +42 -0
  132. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/parameter_matchers/has_entries.rb +45 -0
  133. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/parameter_matchers/has_entry.rb +56 -0
  134. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/parameter_matchers/has_key.rb +42 -0
  135. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/parameter_matchers/has_value.rb +42 -0
  136. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/parameter_matchers/includes.rb +40 -0
  137. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/parameter_matchers/instance_of.rb +42 -0
  138. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/parameter_matchers/is_a.rb +42 -0
  139. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/parameter_matchers/kind_of.rb +42 -0
  140. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/parameter_matchers/not.rb +42 -0
  141. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/parameter_matchers/object.rb +15 -0
  142. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/parameter_matchers/optionally.rb +55 -0
  143. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/parameter_matchers/regexp_matches.rb +43 -0
  144. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/parameter_matchers/responds_with.rb +43 -0
  145. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/parameter_matchers/yaml_equivalent.rb +43 -0
  146. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/parameter_matchers.rb +27 -0
  147. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/parameters_matcher.rb +37 -0
  148. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/pretty_parameters.rb +28 -0
  149. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/return_values.rb +31 -0
  150. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/sequence.rb +42 -0
  151. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/single_return_value.rb +17 -0
  152. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/single_yield.rb +18 -0
  153. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/standalone.rb +166 -0
  154. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/state_machine.rb +91 -0
  155. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/stubbing_error.rb +16 -0
  156. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/test_case_adapter.rb +103 -0
  157. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/unexpected_invocation.rb +18 -0
  158. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha/yield_parameters.rb +31 -0
  159. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha.rb +47 -0
  160. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/mocha_standalone.rb +2 -0
  161. data/test/rails_root/vendor/gems/mocha-0.9.4/lib/stubba.rb +4 -0
  162. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/acceptance_test_helper.rb +38 -0
  163. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/bug_18914_test.rb +43 -0
  164. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/bug_21465_test.rb +34 -0
  165. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/bug_21563_test.rb +25 -0
  166. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/expected_invocation_count_test.rb +196 -0
  167. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/failure_messages_test.rb +64 -0
  168. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/minitest_test.rb +130 -0
  169. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/mocha_example_test.rb +98 -0
  170. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/mocha_test_result_test.rb +84 -0
  171. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/mock_test.rb +100 -0
  172. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/mock_with_initializer_block_test.rb +51 -0
  173. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/mocked_methods_dispatch_test.rb +78 -0
  174. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/optional_parameters_test.rb +70 -0
  175. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/parameter_matcher_test.rb +209 -0
  176. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/partial_mocks_test.rb +47 -0
  177. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/return_value_test.rb +52 -0
  178. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/sequence_test.rb +186 -0
  179. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/standalone_test.rb +139 -0
  180. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/states_test.rb +70 -0
  181. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/stub_any_instance_method_test.rb +195 -0
  182. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/stub_class_method_test.rb +203 -0
  183. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/stub_everything_test.rb +56 -0
  184. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/stub_instance_method_test.rb +203 -0
  185. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/stub_module_method_test.rb +163 -0
  186. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/stub_test.rb +52 -0
  187. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/stubba_example_test.rb +102 -0
  188. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/stubba_test.rb +15 -0
  189. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/stubba_test_result_test.rb +66 -0
  190. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/stubbing_error_backtrace_test.rb +64 -0
  191. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/stubbing_method_unnecessarily_test.rb +65 -0
  192. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/stubbing_non_existent_any_instance_method_test.rb +130 -0
  193. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/stubbing_non_existent_class_method_test.rb +157 -0
  194. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/stubbing_non_existent_instance_method_test.rb +147 -0
  195. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/stubbing_non_public_any_instance_method_test.rb +130 -0
  196. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/stubbing_non_public_class_method_test.rb +163 -0
  197. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/stubbing_non_public_instance_method_test.rb +143 -0
  198. data/test/rails_root/vendor/gems/mocha-0.9.4/test/acceptance/stubbing_on_non_mock_object_test.rb +64 -0
  199. data/test/rails_root/vendor/gems/mocha-0.9.4/test/deprecation_disabler.rb +15 -0
  200. data/test/rails_root/vendor/gems/mocha-0.9.4/test/execution_point.rb +36 -0
  201. data/test/rails_root/vendor/gems/mocha-0.9.4/test/method_definer.rb +24 -0
  202. data/test/rails_root/vendor/gems/mocha-0.9.4/test/simple_counter.rb +13 -0
  203. data/test/rails_root/vendor/gems/mocha-0.9.4/test/test_helper.rb +11 -0
  204. data/test/rails_root/vendor/gems/mocha-0.9.4/test/test_runner.rb +33 -0
  205. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/any_instance_method_test.rb +126 -0
  206. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/array_inspect_test.rb +16 -0
  207. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/backtrace_filter_test.rb +19 -0
  208. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/cardinality_test.rb +56 -0
  209. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/central_test.rb +65 -0
  210. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/change_state_side_effect_test.rb +41 -0
  211. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/class_method_test.rb +237 -0
  212. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/date_time_inspect_test.rb +21 -0
  213. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/exception_raiser_test.rb +42 -0
  214. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/expectation_list_test.rb +57 -0
  215. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/expectation_test.rb +459 -0
  216. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/hash_inspect_test.rb +16 -0
  217. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/in_state_ordering_constraint_test.rb +43 -0
  218. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/metaclass_test.rb +22 -0
  219. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/method_matcher_test.rb +23 -0
  220. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/mock_test.rb +295 -0
  221. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/mockery_test.rb +149 -0
  222. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/multiple_yields_test.rb +18 -0
  223. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/no_yields_test.rb +18 -0
  224. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/object_inspect_test.rb +37 -0
  225. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/object_test.rb +82 -0
  226. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/parameter_matchers/all_of_test.rb +26 -0
  227. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/parameter_matchers/any_of_test.rb +26 -0
  228. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/parameter_matchers/anything_test.rb +21 -0
  229. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/parameter_matchers/equals_test.rb +25 -0
  230. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/parameter_matchers/has_entries_test.rb +51 -0
  231. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/parameter_matchers/has_entry_test.rb +62 -0
  232. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/parameter_matchers/has_key_test.rb +36 -0
  233. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/parameter_matchers/has_value_test.rb +37 -0
  234. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/parameter_matchers/includes_test.rb +25 -0
  235. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/parameter_matchers/instance_of_test.rb +25 -0
  236. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/parameter_matchers/is_a_test.rb +25 -0
  237. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/parameter_matchers/kind_of_test.rb +25 -0
  238. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/parameter_matchers/not_test.rb +26 -0
  239. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/parameter_matchers/regexp_matches_test.rb +25 -0
  240. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/parameter_matchers/responds_with_test.rb +25 -0
  241. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/parameter_matchers/stub_matcher.rb +27 -0
  242. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/parameter_matchers/yaml_equivalent_test.rb +25 -0
  243. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/parameters_matcher_test.rb +121 -0
  244. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/return_values_test.rb +63 -0
  245. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/sequence_test.rb +104 -0
  246. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/single_return_value_test.rb +14 -0
  247. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/single_yield_test.rb +18 -0
  248. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/state_machine_test.rb +98 -0
  249. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/string_inspect_test.rb +11 -0
  250. data/test/rails_root/vendor/gems/mocha-0.9.4/test/unit/yield_parameters_test.rb +93 -0
  251. data/test/rails_root/vendor/gems/quietbacktrace-0.1.1/History.txt +50 -0
  252. data/test/rails_root/vendor/gems/quietbacktrace-0.1.1/Manifest.txt +9 -0
  253. data/test/rails_root/vendor/gems/quietbacktrace-0.1.1/README.txt +103 -0
  254. data/test/rails_root/vendor/gems/quietbacktrace-0.1.1/Rakefile +21 -0
  255. data/test/rails_root/vendor/gems/quietbacktrace-0.1.1/init.rb +1 -0
  256. data/test/rails_root/vendor/gems/quietbacktrace-0.1.1/lib/aliasing.rb +89 -0
  257. data/test/rails_root/vendor/gems/quietbacktrace-0.1.1/lib/attribute_accessors.rb +131 -0
  258. data/test/rails_root/vendor/gems/quietbacktrace-0.1.1/lib/quietbacktrace.rb +154 -0
  259. data/test/rails_root/vendor/gems/quietbacktrace-0.1.1/test/quiet_backtrace_test.rb +144 -0
  260. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/LICENSE +21 -0
  261. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/README.textile +204 -0
  262. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/Rakefile +54 -0
  263. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/TODO.textile +8 -0
  264. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/generators/clearance/USAGE +1 -0
  265. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/generators/clearance/clearance_generator.rb +92 -0
  266. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/generators/clearance/lib/insert_commands.rb +103 -0
  267. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/generators/clearance/lib/rake_commands.rb +22 -0
  268. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/generators/clearance/templates/README +54 -0
  269. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/generators/clearance/templates/app/controllers/application.rb +5 -0
  270. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/generators/clearance/templates/app/controllers/confirmations_controller.rb +3 -0
  271. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/generators/clearance/templates/app/controllers/passwords_controller.rb +3 -0
  272. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/generators/clearance/templates/app/controllers/sessions_controller.rb +3 -0
  273. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/generators/clearance/templates/app/controllers/users_controller.rb +3 -0
  274. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/generators/clearance/templates/app/models/clearance_mailer.rb +5 -0
  275. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/generators/clearance/templates/app/models/user.rb +3 -0
  276. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/generators/clearance/templates/app/views/clearance_mailer/change_password.html.erb +10 -0
  277. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/generators/clearance/templates/app/views/clearance_mailer/confirmation.html.erb +1 -0
  278. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/generators/clearance/templates/app/views/passwords/edit.html.erb +25 -0
  279. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/generators/clearance/templates/app/views/passwords/new.html.erb +15 -0
  280. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/generators/clearance/templates/app/views/sessions/new.html.erb +28 -0
  281. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/generators/clearance/templates/app/views/users/_form.html.erb +13 -0
  282. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/generators/clearance/templates/app/views/users/edit.html.erb +6 -0
  283. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/generators/clearance/templates/app/views/users/new.html.erb +6 -0
  284. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/generators/clearance/templates/db/migrate/create_users_with_clearance_columns.rb +21 -0
  285. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/generators/clearance/templates/db/migrate/update_users_with_clearance_columns.rb +42 -0
  286. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/generators/clearance/templates/test/factories/clearance.rb +16 -0
  287. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/generators/clearance/templates/test/functional/confirmations_controller_test.rb +5 -0
  288. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/generators/clearance/templates/test/functional/passwords_controller_test.rb +5 -0
  289. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/generators/clearance/templates/test/functional/sessions_controller_test.rb +5 -0
  290. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/generators/clearance/templates/test/functional/users_controller_test.rb +5 -0
  291. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/generators/clearance/templates/test/unit/clearance_mailer_test.rb +6 -0
  292. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/generators/clearance/templates/test/unit/user_test.rb +5 -0
  293. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/lib/clearance/app/controllers/application_controller.rb +82 -0
  294. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/lib/clearance/app/controllers/confirmations_controller.rb +42 -0
  295. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/lib/clearance/app/controllers/passwords_controller.rb +68 -0
  296. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/lib/clearance/app/controllers/sessions_controller.rb +68 -0
  297. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/lib/clearance/app/controllers/users_controller.rb +40 -0
  298. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/lib/clearance/app/models/clearance_mailer.rb +29 -0
  299. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/lib/clearance/app/models/user.rb +85 -0
  300. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/lib/clearance/test/functional/confirmations_controller_test.rb +44 -0
  301. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/lib/clearance/test/functional/passwords_controller_test.rb +175 -0
  302. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/lib/clearance/test/functional/sessions_controller_test.rb +194 -0
  303. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/lib/clearance/test/functional/users_controller_test.rb +85 -0
  304. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/lib/clearance/test/test_helper.rb +28 -0
  305. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/lib/clearance/test/unit/clearance_mailer_test.rb +65 -0
  306. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/lib/clearance/test/unit/user_test.rb +163 -0
  307. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/lib/clearance.rb +14 -0
  308. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/rails/init.rb +1 -0
  309. data/test/rails_root/vendor/gems/thoughtbot-clearance-0.4.0/shoulda_macros/clearance.rb +173 -0
  310. data/test/rails_root/vendor/gems/thoughtbot-factory_girl-1.1.5/CONTRIBUTION_GUIDELINES.rdoc +10 -0
  311. data/test/rails_root/vendor/gems/thoughtbot-factory_girl-1.1.5/Changelog +29 -0
  312. data/test/rails_root/vendor/gems/thoughtbot-factory_girl-1.1.5/LICENSE +19 -0
  313. data/test/rails_root/vendor/gems/thoughtbot-factory_girl-1.1.5/README.textile +151 -0
  314. data/test/rails_root/vendor/gems/thoughtbot-factory_girl-1.1.5/Rakefile +76 -0
  315. data/test/rails_root/vendor/gems/thoughtbot-factory_girl-1.1.5/lib/factory_girl/aliases.rb +39 -0
  316. data/test/rails_root/vendor/gems/thoughtbot-factory_girl-1.1.5/lib/factory_girl/attribute.rb +38 -0
  317. data/test/rails_root/vendor/gems/thoughtbot-factory_girl-1.1.5/lib/factory_girl/attribute_proxy.rb +92 -0
  318. data/test/rails_root/vendor/gems/thoughtbot-factory_girl-1.1.5/lib/factory_girl/factory.rb +280 -0
  319. data/test/rails_root/vendor/gems/thoughtbot-factory_girl-1.1.5/lib/factory_girl/sequence.rb +58 -0
  320. data/test/rails_root/vendor/gems/thoughtbot-factory_girl-1.1.5/lib/factory_girl.rb +27 -0
  321. data/test/rails_root/vendor/gems/thoughtbot-factory_girl-1.1.5/test/aliases_test.rb +29 -0
  322. data/test/rails_root/vendor/gems/thoughtbot-factory_girl-1.1.5/test/attribute_proxy_test.rb +121 -0
  323. data/test/rails_root/vendor/gems/thoughtbot-factory_girl-1.1.5/test/attribute_test.rb +70 -0
  324. data/test/rails_root/vendor/gems/thoughtbot-factory_girl-1.1.5/test/factory_test.rb +494 -0
  325. data/test/rails_root/vendor/gems/thoughtbot-factory_girl-1.1.5/test/integration_test.rb +147 -0
  326. data/test/rails_root/vendor/gems/thoughtbot-factory_girl-1.1.5/test/models.rb +42 -0
  327. data/test/rails_root/vendor/gems/thoughtbot-factory_girl-1.1.5/test/sequence_test.rb +76 -0
  328. data/test/rails_root/vendor/gems/thoughtbot-factory_girl-1.1.5/test/test_helper.rb +10 -0
  329. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/CONTRIBUTION_GUIDELINES.rdoc +12 -0
  330. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/MIT-LICENSE +22 -0
  331. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/README.rdoc +119 -0
  332. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/Rakefile +70 -0
  333. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/bin/convert_to_should_syntax +42 -0
  334. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/lib/shoulda/action_mailer/assertions.rb +39 -0
  335. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/lib/shoulda/action_mailer.rb +10 -0
  336. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/lib/shoulda/active_record/assertions.rb +88 -0
  337. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/lib/shoulda/active_record/macros.rb +715 -0
  338. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/lib/shoulda/active_record.rb +12 -0
  339. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/lib/shoulda/assertions.rb +49 -0
  340. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/lib/shoulda/context.rb +306 -0
  341. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/lib/shoulda/controller/formats/html.rb +201 -0
  342. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/lib/shoulda/controller/formats/xml.rb +170 -0
  343. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/lib/shoulda/controller/helpers.rb +64 -0
  344. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/lib/shoulda/controller/macros.rb +316 -0
  345. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/lib/shoulda/controller/resource_options.rb +236 -0
  346. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/lib/shoulda/controller.rb +30 -0
  347. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/lib/shoulda/helpers.rb +10 -0
  348. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/lib/shoulda/macros.rb +74 -0
  349. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/lib/shoulda/private_helpers.rb +22 -0
  350. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/lib/shoulda/proc_extensions.rb +14 -0
  351. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/lib/shoulda/rails.rb +19 -0
  352. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/lib/shoulda/tasks/list_tests.rake +24 -0
  353. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/lib/shoulda/tasks/yaml_to_shoulda.rake +28 -0
  354. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/lib/shoulda/tasks.rb +3 -0
  355. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/lib/shoulda.rb +17 -0
  356. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/rails/init.rb +1 -0
  357. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/README +36 -0
  358. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/fail_macros.rb +34 -0
  359. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/fixtures/addresses.yml +3 -0
  360. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/fixtures/friendships.yml +0 -0
  361. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/fixtures/posts.yml +5 -0
  362. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/fixtures/products.yml +0 -0
  363. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/fixtures/taggings.yml +0 -0
  364. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/fixtures/tags.yml +9 -0
  365. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/fixtures/users.yml +6 -0
  366. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/functional/posts_controller_test.rb +105 -0
  367. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/functional/users_controller_test.rb +38 -0
  368. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/other/context_test.rb +145 -0
  369. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/other/convert_to_should_syntax_test.rb +63 -0
  370. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/other/helpers_test.rb +183 -0
  371. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/other/private_helpers_test.rb +34 -0
  372. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/other/should_test.rb +266 -0
  373. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/app/controllers/application.rb +25 -0
  374. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/app/controllers/posts_controller.rb +85 -0
  375. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/app/controllers/users_controller.rb +84 -0
  376. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/app/helpers/application_helper.rb +3 -0
  377. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/app/helpers/posts_helper.rb +2 -0
  378. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/app/helpers/users_helper.rb +2 -0
  379. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/app/models/address.rb +7 -0
  380. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/app/models/dog.rb +5 -0
  381. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/app/models/flea.rb +3 -0
  382. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/app/models/friendship.rb +4 -0
  383. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/app/models/post.rb +12 -0
  384. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/app/models/product.rb +12 -0
  385. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/app/models/tag.rb +8 -0
  386. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/app/models/tagging.rb +4 -0
  387. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/app/models/user.rb +28 -0
  388. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/app/views/layouts/posts.rhtml +17 -0
  389. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/app/views/layouts/users.rhtml +17 -0
  390. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/app/views/layouts/wide.html.erb +1 -0
  391. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/app/views/posts/edit.rhtml +27 -0
  392. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/app/views/posts/index.rhtml +25 -0
  393. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/app/views/posts/new.rhtml +26 -0
  394. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/app/views/posts/show.rhtml +18 -0
  395. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/app/views/users/edit.rhtml +22 -0
  396. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/app/views/users/index.rhtml +22 -0
  397. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/app/views/users/new.rhtml +21 -0
  398. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/app/views/users/show.rhtml +13 -0
  399. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/config/boot.rb +109 -0
  400. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/config/database.yml +4 -0
  401. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/config/environment.rb +14 -0
  402. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/config/environments/sqlite3.rb +0 -0
  403. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/config/initializers/new_rails_defaults.rb +15 -0
  404. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/config/initializers/shoulda.rb +8 -0
  405. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/config/routes.rb +6 -0
  406. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/db/migrate/001_create_users.rb +18 -0
  407. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/db/migrate/002_create_posts.rb +13 -0
  408. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/db/migrate/003_create_taggings.rb +12 -0
  409. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/db/migrate/004_create_tags.rb +11 -0
  410. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/db/migrate/005_create_dogs.rb +12 -0
  411. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/db/migrate/006_create_addresses.rb +14 -0
  412. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/db/migrate/007_create_fleas.rb +11 -0
  413. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/db/migrate/008_create_dogs_fleas.rb +12 -0
  414. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/db/migrate/009_create_products.rb +17 -0
  415. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/db/migrate/010_create_friendships.rb +14 -0
  416. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/db/schema.rb +0 -0
  417. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/public/404.html +30 -0
  418. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/public/422.html +30 -0
  419. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/public/500.html +30 -0
  420. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/script/console +3 -0
  421. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/rails_root/script/generate +3 -0
  422. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/test_helper.rb +33 -0
  423. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/unit/address_test.rb +10 -0
  424. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/unit/dog_test.rb +7 -0
  425. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/unit/flea_test.rb +6 -0
  426. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/unit/friendship_test.rb +6 -0
  427. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/unit/post_test.rb +15 -0
  428. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/unit/product_test.rb +27 -0
  429. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/unit/tag_test.rb +14 -0
  430. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/unit/tagging_test.rb +6 -0
  431. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.6/test/unit/user_test.rb +52 -0
  432. metadata +552 -7
  433. data/test/test_helper.rb +0 -10
  434. data/test/warrant_test.rb +0 -7
data/README.textile ADDED
@@ -0,0 +1,93 @@
1
+ h1. Warrant
2
+
3
+ Simple ActiveRecord authorization and attribute obfuscation scheme.
4
+
5
+ h2. Gem installation (Rails 2.1+)
6
+
7
+ In config/environment.rb:
8
+
9
+ config.gem 'mocha',
10
+ :version => '>= 0.9.4'
11
+ config.gem 'quietbacktrace',
12
+ :version => '>= 0.1.1'
13
+ config.gem 'thoughtbot-factory_girl',
14
+ :lib => 'factory_girl',
15
+ :source => 'http://gems.github.com',
16
+ :version => '>= 1.1.5'
17
+ config.gem 'thoughtbot-shoulda',
18
+ :lib => 'shoulda',
19
+ :source => 'http://gems.github.com',
20
+ :version => '>= 2.0.6'
21
+ config.gem 'Warrant',
22
+ :lib => 'Warrant',
23
+ :source => 'http://gems.github.com'
24
+
25
+ Then:
26
+
27
+ rake gems:install
28
+ rake gems:unpack
29
+
30
+ h2. Usage: models which require authorization
31
+
32
+ Warrant works by mixing behavior into models. To protect your models with authorization add:
33
+
34
+ class Post < ActiveRecord::Base
35
+ include Warrant::App::Models::Warrantable
36
+
37
+ Warrant makes some assumptions about your model. By default:
38
+
39
+ * instances of your Warrantable model can be created and found
40
+ * instances of your Warrantable model cannot be updated or destroyed unless that model is related to the current_user
41
+
42
+ You can easily override the default settings by redefining self.create?, self.find?, self.update? and self.destroy? in your model. Warrant also provides instance methods for create?, find?, update? and destroy? for you to redefine as needed.
43
+
44
+ h2. Usage: authorization based on the current_user
45
+
46
+ You may want to authorize various methods and attributes based on who is using your application. By mixing behavior into your application controller Warrant makes this easy:
47
+
48
+ class ApplicationController < ActionController::Base
49
+ include Warrant::App::Controllers::ApplicationController
50
+
51
+ Warrant assumes you have a current_user method already defined in your application controller. For great, RESTful authentication, check out "Clearance":http://github.com/thoughtbot/clearance.
52
+
53
+ For your convenience Warrant will save your current_user on all of your ActiveRecord classes in a current_user class attribute, also accessible as an instance method.
54
+
55
+ h2. Usage: MyClass.create?, MyClass.find?, MyClass.update?, MyClass.destroy?
56
+
57
+ TODO
58
+
59
+ h2. Usage: my_instance.create?, my_instance.find?, my_instance.update?, my_instance.destroy?
60
+
61
+ TODO
62
+
63
+ h2. Usage: MyClass.current_user, my_instance.current_user
64
+
65
+ TODO
66
+
67
+ h2. Usage: obscuring attributes
68
+
69
+ Warrant allows you to obscure the value of your model's attributes. To protect your model's attributes add:
70
+
71
+ class Post < ActiveRecord::Base
72
+ include Warrant::App::Models::Warrantable
73
+ obscure :title
74
+ obscure :title, :if => :not_cool?
75
+ obscure :title, :with => 'shhhhh', :if => :not_cool?
76
+ obscure :title, :with => :sekret, :unless => :cool?
77
+ def cool?
78
+ false
79
+ end
80
+ def not_cool?
81
+ true
82
+ end
83
+ def sekret
84
+ "that's classified"
85
+ end
86
+
87
+ h2. Tests
88
+
89
+ The tests use "Mocha":http://mocha.rubyforge.org, "Shoulda":http://thoughtbot.com/projects/shoulda and "Factory Girl":http://thoughtbot.com/projects/factory_girl.
90
+
91
+ h2. Usage:
92
+
93
+ TODO
data/VERSION.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
2
  :patch: 0
3
3
  :major: 0
4
- :minor: 0
4
+ :minor: 2
@@ -0,0 +1,25 @@
1
+ module Warrant
2
+ module App
3
+ module Controllers
4
+ module ApplicationController
5
+
6
+ def self.included(controller)
7
+ controller.class_eval do
8
+
9
+ around_filter :use_current_user_for_activerecord
10
+
11
+ protected
12
+
13
+ def use_current_user_for_activerecord
14
+ ActiveRecord::Base.current_user = current_user
15
+ yield
16
+ ActiveRecord::Base.current_user = nil
17
+ end
18
+
19
+ end
20
+ end
21
+
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,112 @@
1
+ module Warrant
2
+ module App
3
+ module Models
4
+ module Warrantable
5
+
6
+ def self.included(model)
7
+
8
+ model.extend(ClassMethods)
9
+
10
+ model.class_eval do
11
+
12
+ class << self
13
+ alias_method :find_without_warrant, :find unless method_defined?(:find_without_warrant)
14
+ alias_method :find, :find_with_warrant
15
+ # alias_method_chain :find, :warrant
16
+ end
17
+
18
+ # after_find taxes performance
19
+ before_create :warrant!, :unless => lambda { self.create? }
20
+ before_update :warrant!, :unless => lambda { self.update? }
21
+ before_destroy :warrant!, :unless => lambda { self.destroy? }
22
+
23
+ def create?
24
+ self.class.create?
25
+ end
26
+
27
+ def find?
28
+ self.class.find?
29
+ end
30
+ alias_method :read?, :find?
31
+
32
+ def update?
33
+ self.class.update? || self.related_to_current_user?
34
+ end
35
+
36
+ def destroy?
37
+ self.class.destroy? || self.related_to_current_user?
38
+ end
39
+
40
+ # TODO memoize ???
41
+ def related_to_current_user?
42
+ return false unless self.current_user
43
+ self.current_user == self ||
44
+ self.respond_to?('user') && self.current_user == self.user ||
45
+ self.respond_to?('users') && self.users.include?(self.current_user)
46
+ end
47
+
48
+ def warrant!
49
+ raise Warrant::AuthorizationError
50
+ end
51
+
52
+ end
53
+ end
54
+
55
+ module ClassMethods
56
+
57
+ def find_with_warrant(*args)
58
+ found = find_without_warrant(*args)
59
+ found = case
60
+ when found.is_a?(Array) ; found.delete_if {|r| !r.find? }
61
+ when !found.find? ; found.warrant!
62
+ else found
63
+ end
64
+ end
65
+
66
+ def create?
67
+ true
68
+ end
69
+
70
+ def find?
71
+ true
72
+ end
73
+ alias_method :read?, :find?
74
+ # TODO alias as find?
75
+
76
+ def update?
77
+ false
78
+ end
79
+
80
+ def destroy?
81
+ false
82
+ end
83
+
84
+ # obscure :title, :with => 'shhhhh', :if => :not_cool?
85
+ # obscure :title, :with => :sekret, :unless => :cool?
86
+ # obscure :title, :unless => :cool?
87
+ def obscure(attribute, opts={})
88
+ opts[:with] ||= nil
89
+ opts.delete(:unless) if opts.key?(:if) # only one conditional allowed
90
+
91
+ # TODO error unless attribute exists
92
+ # raise Warrant::AuthorizationError unless send(:instance_variable_get, :@attributes).include?(attribute.to_s)
93
+
94
+ define_method(attribute.to_sym) do
95
+ if ( opts.key?(:if) && send(opts[:if]) ) || # :if is specified and evaluates true
96
+ ( opts.key?(:unless) && !send(opts[:unless]) ) || # :unless is specified and evaluates false
97
+ ( !opts.key?(:if) && !opts.key?(:unless) ) # no conditional is specified
98
+
99
+ opts[:with].is_a?(Symbol) ? send(opts[:with]) : opts[:with]
100
+ else
101
+ # return value of instance variable
102
+ send(:instance_variable_get, :@attributes)[attribute.to_s]
103
+ end
104
+ end
105
+ end
106
+
107
+ end
108
+
109
+ end
110
+ end
111
+ end
112
+ end
@@ -0,0 +1,21 @@
1
+ module Warrant
2
+ module Lib
3
+ module Extensions
4
+ module ActiveRecord
5
+
6
+ def self.included(extension)
7
+ extension.class_eval do
8
+
9
+ cattr_accessor :current_user
10
+
11
+ def current_user
12
+ self.class.current_user
13
+ end
14
+
15
+ end
16
+ end
17
+
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,7 @@
1
+ module Warrant #:nodoc:
2
+
3
+ # Raised when restricted method is access without authorization
4
+ class AuthorizationError < StandardError
5
+ end
6
+
7
+ end
@@ -5,20 +5,7 @@ module Warrant
5
5
  def self.included(test_helper)
6
6
  test_helper.class_eval do
7
7
 
8
- # def sign_in_as(user = nil)
9
- # unless user
10
- # user = Factory(:registered_user)
11
- # user.confirm_email!
12
- # end
13
- # @request.session[:user_id] = user.id
14
- # @request.session[:salt] = user.salt
15
- # return user
16
- # end
17
- #
18
- # def sign_out
19
- # @request.session[:user_id] = nil
20
- # @request.session[:salt] = nil
21
- # end
8
+ # TODO
22
9
 
23
10
  end
24
11
  end
data/lib/warrant.rb CHANGED
@@ -1 +1,5 @@
1
- require 'warrant/app/controllers/application_controller'
1
+ require 'warrant/app/controllers/application_controller'
2
+ require 'warrant/app/models/warrantable'
3
+ require 'warrant/lib/extensions/active_record'
4
+ require 'warrant/lib/warrant'
5
+ require 'warrant/test/test_helper'
@@ -0,0 +1,3 @@
1
+ load 'deploy' if respond_to?(:namespace) # cap2 differentiator
2
+ Dir['vendor/plugins/*/recipes/*.rb'].each { |plugin| load(plugin) }
3
+ load 'config/deploy'
@@ -0,0 +1,10 @@
1
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
2
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
+
4
+ require(File.join(File.dirname(__FILE__), 'config', 'boot'))
5
+
6
+ require 'rake'
7
+ require 'rake/testtask'
8
+ require 'rake/rdoctask'
9
+
10
+ require 'tasks/rails'
@@ -0,0 +1,8 @@
1
+ class ApplicationController < ActionController::Base
2
+ helper :all
3
+ protect_from_forgery
4
+ include Warrant::App::Controllers::ApplicationController
5
+
6
+ attr_accessor :current_user
7
+
8
+ end
@@ -0,0 +1,5 @@
1
+ module ApplicationHelper
2
+ def body_class
3
+ "#{controller.controller_name} #{controller.controller_name}-#{controller.action_name}"
4
+ end
5
+ end
@@ -0,0 +1,23 @@
1
+ class Post < ActiveRecord::Base
2
+
3
+ belongs_to :user
4
+ include Warrant::App::Models::Warrantable
5
+ obscure :title
6
+ obscure :body, :if => :should_obscure_body?
7
+ obscure :keyword, :unless => :should_not_obscure_keyword?
8
+ obscure :spam, :with => :obscure_spam_with
9
+
10
+ def should_not_obscure_keyword?
11
+ false
12
+ end
13
+
14
+ def should_obscure_body?
15
+ true
16
+ end
17
+
18
+ def obscure_spam_with
19
+ 'Nothing to see here'
20
+ end
21
+
22
+
23
+ end
@@ -0,0 +1,5 @@
1
+ class User < ActiveRecord::Base
2
+
3
+ # include Warrant::App::Models::Warrantable
4
+
5
+ end
@@ -0,0 +1,5 @@
1
+ <div id="flash">
2
+ <% flash.each do |key, value| -%>
3
+ <div id="flash_<%= key %>"><%=h value %></div>
4
+ <% end %>
5
+ </div>
@@ -0,0 +1,14 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
6
+ <title>Warrant</title>
7
+ <%= stylesheet_link_tag 'screen', :media => 'all' %>
8
+ <%= javascript_include_tag :defaults %>
9
+ </head>
10
+ <body class="<%= body_class %>">
11
+ <%= render :partial => 'layouts/flashes' %>
12
+ <%= yield %>
13
+ </body>
14
+ </html>
@@ -0,0 +1,109 @@
1
+ # Don't change this file!
2
+ # Configure your app in config/environment.rb and config/environments/*.rb
3
+
4
+ RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT)
5
+
6
+ module Rails
7
+ class << self
8
+ def boot!
9
+ unless booted?
10
+ preinitialize
11
+ pick_boot.run
12
+ end
13
+ end
14
+
15
+ def booted?
16
+ defined? Rails::Initializer
17
+ end
18
+
19
+ def pick_boot
20
+ (vendor_rails? ? VendorBoot : GemBoot).new
21
+ end
22
+
23
+ def vendor_rails?
24
+ File.exist?("#{RAILS_ROOT}/vendor/rails")
25
+ end
26
+
27
+ def preinitialize
28
+ load(preinitializer_path) if File.exist?(preinitializer_path)
29
+ end
30
+
31
+ def preinitializer_path
32
+ "#{RAILS_ROOT}/config/preinitializer.rb"
33
+ end
34
+ end
35
+
36
+ class Boot
37
+ def run
38
+ load_initializer
39
+ Rails::Initializer.run(:set_load_path)
40
+ end
41
+ end
42
+
43
+ class VendorBoot < Boot
44
+ def load_initializer
45
+ require "#{RAILS_ROOT}/vendor/rails/railties/lib/initializer"
46
+ Rails::Initializer.run(:install_gem_spec_stubs)
47
+ end
48
+ end
49
+
50
+ class GemBoot < Boot
51
+ def load_initializer
52
+ self.class.load_rubygems
53
+ load_rails_gem
54
+ require 'initializer'
55
+ end
56
+
57
+ def load_rails_gem
58
+ if version = self.class.gem_version
59
+ gem 'rails', version
60
+ else
61
+ gem 'rails'
62
+ end
63
+ rescue Gem::LoadError => load_error
64
+ $stderr.puts %(Missing the Rails #{version} gem. Please `gem install -v=#{version} rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.)
65
+ exit 1
66
+ end
67
+
68
+ class << self
69
+ def rubygems_version
70
+ Gem::RubyGemsVersion if defined? Gem::RubyGemsVersion
71
+ end
72
+
73
+ def gem_version
74
+ if defined? RAILS_GEM_VERSION
75
+ RAILS_GEM_VERSION
76
+ elsif ENV.include?('RAILS_GEM_VERSION')
77
+ ENV['RAILS_GEM_VERSION']
78
+ else
79
+ parse_gem_version(read_environment_rb)
80
+ end
81
+ end
82
+
83
+ def load_rubygems
84
+ require 'rubygems'
85
+ min_version = '1.1.1'
86
+ unless rubygems_version >= min_version
87
+ $stderr.puts %Q(Rails requires RubyGems >= #{min_version} (you have #{rubygems_version}). Please `gem update --system` and try again.)
88
+ exit 1
89
+ end
90
+
91
+ rescue LoadError
92
+ $stderr.puts %Q(Rails requires RubyGems >= #{min_version}. Please install RubyGems and try again: http://rubygems.rubyforge.org)
93
+ exit 1
94
+ end
95
+
96
+ def parse_gem_version(text)
97
+ $1 if text =~ /^[^#]*RAILS_GEM_VERSION\s*=\s*["']([!~<>=]*\s*[\d.]+)["']/
98
+ end
99
+
100
+ private
101
+ def read_environment_rb
102
+ File.read("#{RAILS_ROOT}/config/environment.rb")
103
+ end
104
+ end
105
+ end
106
+ end
107
+
108
+ # All that for this:
109
+ Rails.boot!
@@ -0,0 +1,13 @@
1
+ development:
2
+ adapter: sqlite3
3
+ database: ":memory:"
4
+ timeout: 5000
5
+
6
+ # Warning: The database defined as "test" will be erased and
7
+ # re-generated from your development database when you run "rake".
8
+ # Do not set this db to the same as development or production.
9
+ test:
10
+ adapter: sqlite3
11
+ database: ":memory:"
12
+ timeout: 5000
13
+
@@ -0,0 +1,36 @@
1
+ require File.join(File.dirname(__FILE__), 'boot')
2
+ require 'md5' # Need this up here to generate the session[:secret] value down there
3
+
4
+ Rails::Initializer.run do |config|
5
+ config.load_paths += Dir.glob(File.join(RAILS_ROOT, 'vendor', 'gems', '*', 'lib'))
6
+ config.time_zone = 'Eastern Time (US & Canada)'
7
+ config.action_controller.session = {
8
+ :session_key => "_warrant_session",
9
+ :secret => ['warrant', 'random', 'words', 'here'].map {|k| Digest::MD5.hexdigest(k) }.join
10
+ }
11
+ config.gem 'mocha',
12
+ :version => '>= 0.9.4'
13
+ config.gem 'quietbacktrace',
14
+ :version => '>= 0.1.1'
15
+ config.gem 'thoughtbot-factory_girl',
16
+ :lib => 'factory_girl',
17
+ :source => 'http://gems.github.com',
18
+ :version => '>= 1.1.5'
19
+ config.gem 'thoughtbot-shoulda',
20
+ :lib => 'shoulda',
21
+ :source => 'http://gems.github.com',
22
+ :version => '>= 2.0.6'
23
+ config.gem "thoughtbot-clearance",
24
+ :lib => 'clearance',
25
+ :source => 'http://gems.github.com',
26
+ :version => '>= 0.4.0'
27
+
28
+ # This simulates loading the warrant gem, but without relying on vendor/gems
29
+ warrant_path = File.join(File.dirname(__FILE__), *%w(.. .. ..))
30
+ warrant_lib_path = File.join(warrant_path, "lib")
31
+ $LOAD_PATH.unshift(warrant_lib_path)
32
+ load File.join(warrant_path, 'rails', 'init.rb')
33
+
34
+ end
35
+
36
+ DO_NOT_REPLY = "donotreply@example.com"
@@ -0,0 +1,19 @@
1
+ # Settings specified here will take precedence over those in config/environment.rb
2
+
3
+ # In the development environment your application's code is reloaded on
4
+ # every request. This slows down response time but is perfect for development
5
+ # since you don't have to restart the webserver when you make code changes.
6
+ config.cache_classes = false
7
+
8
+ # Log error messages when you accidentally call methods on nil.
9
+ config.whiny_nils = true
10
+
11
+ # Show full error reports and disable caching
12
+ config.action_controller.consider_all_requests_local = true
13
+ config.action_controller.perform_caching = false
14
+ config.action_view.debug_rjs = true
15
+
16
+ # Don't care if the mailer can't send
17
+ config.action_mailer.raise_delivery_errors = false
18
+
19
+ HOST = "localhost"
@@ -0,0 +1,32 @@
1
+ # Settings specified here will take precedence over those in config/environment.rb
2
+
3
+ # The test environment is used exclusively to run your application's
4
+ # test suite. You never need to work with it otherwise. Remember that
5
+ # your test database is "scratch space" for the test suite and is wiped
6
+ # and recreated between test runs. Don't rely on the data there!
7
+ config.cache_classes = true
8
+
9
+ # Log error messages when you accidentally call methods on nil.
10
+ config.whiny_nils = true
11
+
12
+ # Show full error reports and disable caching
13
+ config.action_controller.consider_all_requests_local = true
14
+ config.action_controller.perform_caching = false
15
+
16
+ # Disable request forgery protection in test environment
17
+ config.action_controller.allow_forgery_protection = false
18
+
19
+ # Tell ActionMailer not to deliver emails to the real world.
20
+ # The :test delivery method accumulates sent emails in the
21
+ # ActionMailer::Base.deliveries array.
22
+ config.action_mailer.delivery_method = :test
23
+
24
+ HOST = "localhost"
25
+
26
+ config.gem 'ZenTest',
27
+ :lib => "test/rails"
28
+
29
+ require 'quietbacktrace'
30
+ require 'factory_girl'
31
+ require 'mocha'
32
+ # begin require 'redgreen'; rescue LoadError; end
@@ -0,0 +1,10 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Add new inflection rules using the following format
4
+ # (all these examples are active by default):
5
+ # Inflector.inflections do |inflect|
6
+ # inflect.plural /^(ox)$/i, '\1en'
7
+ # inflect.singular /^(ox)en/i, '\1'
8
+ # inflect.irregular 'person', 'people'
9
+ # inflect.uncountable %w( fish sheep )
10
+ # end
@@ -0,0 +1,5 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Add new mime types for use in respond_to blocks:
4
+ # Mime::Type.register "text/richtext", :rtf
5
+ # Mime::Type.register_alias "text/html", :iphone
@@ -0,0 +1,13 @@
1
+ Dir[File.join(RAILS_ROOT, 'lib', 'extensions', '*.rb')].each do |f|
2
+ require f
3
+ end
4
+
5
+ Dir[File.join(RAILS_ROOT, 'lib', '*.rb')].each do |f|
6
+ require f
7
+ end
8
+
9
+ # Rails 2 doesn't like mocks
10
+
11
+ Dir[File.join(RAILS_ROOT, 'test', 'mocks', RAILS_ENV, '*.rb')].each do |f|
12
+ require f
13
+ end
@@ -0,0 +1,4 @@
1
+ # Example time formats
2
+ { :short_date => "%x", :long_date => "%a, %b %d, %Y" }.each do |k, v|
3
+ ActiveSupport::CoreExtensions::Time::Conversions::DATE_FORMATS.update(k => v)
4
+ end
@@ -0,0 +1,6 @@
1
+ ActionController::Routing::Routes.draw do |map|
2
+
3
+ map.connect ':controller/:action/:id'
4
+ map.connect ':controller/:action/:id.:format'
5
+
6
+ end
@@ -0,0 +1,11 @@
1
+ class CreateUsers < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :users do |t|
4
+ t.string :name
5
+ end
6
+ end
7
+
8
+ def self.down
9
+ drop_table :users
10
+ end
11
+ end
@@ -0,0 +1,15 @@
1
+ class CreatePosts < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :posts do |t|
4
+ t.string :title
5
+ t.text :body
6
+ t.string :keyword
7
+ t.string :spam
8
+ t.references :user
9
+ end
10
+ end
11
+
12
+ def self.down
13
+ drop_table :posts
14
+ end
15
+ end