hobo 1.1.0 → 1.3.0.RC

Sign up to get free protection for your applications and to get access to all the features.
Files changed (278) hide show
  1. data/CHANGES.txt +238 -287
  2. data/Rakefile +14 -31
  3. data/VERSION +1 -0
  4. data/{lib/hobo → app/controllers}/dev_controller.rb +6 -6
  5. data/app/controllers/dryml_support_controller.rb +13 -0
  6. data/{rails_generators/hobo_front_controller/templates → app/views/dev}/summary.dryml +7 -10
  7. data/bin/hobo +12 -144
  8. data/config/initializers/inflections.rb +3 -0
  9. data/config/routes.rb +6 -0
  10. data/{doctest → doctests}/hobo/lifecycles.rdoctest +40 -59
  11. data/{doctest → doctests/hobo}/model.rdoctest +33 -40
  12. data/{doctest → doctests/hobo}/multi_model_forms.rdoctest +15 -19
  13. data/{doctest → doctests/hobo}/scopes.rdoctest +27 -41
  14. data/doctests/prepare_testapp.rb +8 -0
  15. data/hobo.gemspec +26 -199
  16. data/lib/generators/hobo/activation_email.rb +11 -0
  17. data/lib/generators/hobo/admin_subsite/admin_subsite_generator.rb +35 -0
  18. data/lib/generators/hobo/admin_subsite/templates/admin.css +20 -0
  19. data/lib/generators/hobo/admin_subsite/templates/admin_tag_injection.erb +10 -0
  20. data/{rails_generators/hobo_admin_site → lib/generators/hobo/admin_subsite}/templates/application.dryml +0 -0
  21. data/{rails_generators/hobo_admin_site/templates/controller.rb → lib/generators/hobo/admin_subsite/templates/controller.rb.erb} +5 -5
  22. data/lib/generators/hobo/admin_subsite/templates/users_index.dryml +7 -0
  23. data/lib/generators/hobo/assets/assets_generator.rb +18 -0
  24. data/{rails_generators/hobo → lib/generators/hobo/assets}/templates/application.css +0 -0
  25. data/lib/generators/hobo/assets/templates/application.dryml.erb +9 -0
  26. data/{rails_generators/hobo → lib/generators/hobo/assets}/templates/dryml-support.js +2 -2
  27. data/lib/generators/hobo/assets/templates/dryml_taglibs_initializer.rb +1 -0
  28. data/lib/generators/hobo/assets/templates/en_injection.yml +19 -0
  29. data/{rails_generators/hobo → lib/generators/hobo/assets}/templates/guest.rb +1 -1
  30. data/lib/generators/hobo/controller.rb +35 -0
  31. data/lib/generators/hobo/controller/controller_generator.rb +6 -0
  32. data/lib/generators/hobo/controller/templates/controller.rb.erb +7 -0
  33. data/{rails_generators/hobo_front_controller → lib/generators/hobo/front_controller}/USAGE +0 -0
  34. data/lib/generators/hobo/front_controller/front_controller_generator.rb +55 -0
  35. data/{rails_generators/hobo_front_controller/templates/controller.rb → lib/generators/hobo/front_controller/templates/controller.rb.erb} +0 -0
  36. data/{rails_generators/hobo_front_controller → lib/generators/hobo/front_controller}/templates/index.dryml +6 -12
  37. data/lib/generators/hobo/i18n/i18n_generator.rb +35 -0
  38. data/lib/generators/hobo/i18n/templates/app.de.yml +30 -0
  39. data/lib/generators/hobo/i18n/templates/app.en.yml +25 -0
  40. data/lib/generators/hobo/i18n/templates/app.es.yml +31 -0
  41. data/lib/generators/hobo/i18n/templates/app.fr.yml +26 -0
  42. data/lib/generators/hobo/i18n/templates/app.it.yml +28 -0
  43. data/lib/generators/hobo/i18n/templates/app.pt-PT.yml +25 -0
  44. data/lib/generators/hobo/i18n/templates/app.ru.yml +24 -0
  45. data/lib/generators/hobo/i18n/templates/hobo.de.yml +204 -0
  46. data/lib/generators/hobo/i18n/templates/hobo.en.yml +195 -0
  47. data/lib/generators/hobo/i18n/templates/hobo.es.yml +202 -0
  48. data/lib/generators/hobo/i18n/templates/hobo.fr.yml +195 -0
  49. data/lib/generators/hobo/i18n/templates/hobo.it.yml +202 -0
  50. data/lib/generators/hobo/i18n/templates/hobo.pt-PT.yml +196 -0
  51. data/lib/generators/hobo/i18n/templates/hobo.ru.yml +200 -0
  52. data/lib/generators/hobo/invite_only.rb +18 -0
  53. data/lib/generators/hobo/model/USAGE +19 -0
  54. data/lib/generators/hobo/model/model_generator.rb +11 -0
  55. data/{rails_generators/hobo_model/templates/model.rb → lib/generators/hobo/model/templates/model_injection.rb.erb} +0 -2
  56. data/{rails_generators/hobo_rapid → lib/generators/hobo/rapid}/USAGE +0 -0
  57. data/lib/generators/hobo/rapid/rapid_generator.rb +24 -0
  58. data/{rails_generators/hobo_rapid → lib/generators/hobo/rapid}/templates/IE7.js +0 -0
  59. data/{rails_generators/hobo_rapid → lib/generators/hobo/rapid}/templates/blank.gif +0 -0
  60. data/{rails_generators/hobo_rapid → lib/generators/hobo/rapid}/templates/hobo-rapid.css +0 -0
  61. data/{rails_generators/hobo_rapid → lib/generators/hobo/rapid}/templates/hobo-rapid.js +65 -65
  62. data/{rails_generators/hobo_rapid → lib/generators/hobo/rapid}/templates/ie7-recalc.js +21 -21
  63. data/{rails_generators/hobo_rapid → lib/generators/hobo/rapid}/templates/lowpro.js +31 -31
  64. data/{rails_generators/hobo_rapid → lib/generators/hobo/rapid}/templates/reset.css +1 -1
  65. data/lib/generators/hobo/rapid/templates/themes/clean-sidemenu/public/images/100-ACD3E6-DBE1E5-H.png +0 -0
  66. data/lib/generators/hobo/rapid/templates/themes/clean-sidemenu/public/images/100-DBE1E5-FCFEF5-H.png +0 -0
  67. data/lib/generators/hobo/rapid/templates/themes/clean-sidemenu/public/images/300-3B5F87-ACD3E6-H.png +0 -0
  68. data/{rails_generators/hobo_rapid/templates/themes/clean → lib/generators/hobo/rapid/templates/themes/clean-sidemenu}/public/images/spinner.gif +0 -0
  69. data/lib/generators/hobo/rapid/templates/themes/clean-sidemenu/public/stylesheets/clean-sidemenu.css +81 -0
  70. data/lib/generators/hobo/rapid/templates/themes/clean-sidemenu/views/clean-sidemenu.dryml +30 -0
  71. data/{rails_generators/hobo_rapid → lib/generators/hobo/rapid}/templates/themes/clean/public/images/101-3B5F87-ACD3E6.png +0 -0
  72. data/{rails_generators/hobo_rapid → lib/generators/hobo/rapid}/templates/themes/clean/public/images/30-3E547A-242E42.png +0 -0
  73. data/{rails_generators/hobo_rapid → lib/generators/hobo/rapid}/templates/themes/clean/public/images/30-DBE1E5-FCFEF5.png +0 -0
  74. data/{rails_generators/hobo_rapid → lib/generators/hobo/rapid}/templates/themes/clean/public/images/300-ACD3E6-fff.png +0 -0
  75. data/{rails_generators/hobo_rapid → lib/generators/hobo/rapid}/templates/themes/clean/public/images/50-ACD3E6-fff.png +0 -0
  76. data/{rails_generators/hobo_rapid → lib/generators/hobo/rapid}/templates/themes/clean/public/images/fieldbg.gif +0 -0
  77. data/{rails_generators/hobo_rapid → lib/generators/hobo/rapid}/templates/themes/clean/public/images/pencil.png +0 -0
  78. data/{rails_generators/hobo_rapid → lib/generators/hobo/rapid}/templates/themes/clean/public/images/small_close.png +0 -0
  79. data/lib/generators/hobo/rapid/templates/themes/clean/public/images/spinner.gif +0 -0
  80. data/{rails_generators/hobo_rapid → lib/generators/hobo/rapid}/templates/themes/clean/public/stylesheets/clean.css +16 -16
  81. data/{rails_generators/hobo_rapid → lib/generators/hobo/rapid}/templates/themes/clean/public/stylesheets/rapid-ui.css +3 -3
  82. data/{rails_generators/hobo_rapid → lib/generators/hobo/rapid}/templates/themes/clean/views/clean.dryml +1 -1
  83. data/lib/generators/hobo/resource/resource_generator.rb +23 -0
  84. data/lib/generators/hobo/routes/USAGE +9 -0
  85. data/lib/generators/hobo/routes/router.rb +115 -0
  86. data/lib/generators/hobo/routes/routes_generator.rb +40 -0
  87. data/lib/generators/hobo/routes/templates/hobo_routes.rb.erb +33 -0
  88. data/lib/generators/hobo/setup_wizard/USAGE +4 -0
  89. data/lib/generators/hobo/setup_wizard/setup_wizard_generator.rb +274 -0
  90. data/lib/generators/hobo/subsite.rb +48 -0
  91. data/lib/generators/hobo/subsite/subsite_generator.rb +16 -0
  92. data/{rails_generators/hobo_subsite → lib/generators/hobo/subsite}/templates/application.dryml +0 -0
  93. data/{rails_generators/hobo_subsite/templates/controller.rb → lib/generators/hobo/subsite/templates/controller.rb.erb} +1 -1
  94. data/lib/generators/hobo/subsite_taglib/subsite_taglib_generator.rb +16 -0
  95. data/{rails_generators/hobo_admin_site/templates/site_taglib.dryml → lib/generators/hobo/subsite_taglib/templates/taglib.dryml.erb} +9 -10
  96. data/lib/generators/hobo/taglib.rb +12 -0
  97. data/lib/generators/hobo/test_framework/test_framework_generator.rb +72 -0
  98. data/lib/generators/hobo/test_options.rb +19 -0
  99. data/{rails_generators/hobo_user_controller → lib/generators/hobo/user_controller}/templates/accept_invitation.dryml +0 -0
  100. data/lib/generators/hobo/user_controller/templates/controller.rb.erb +31 -0
  101. data/lib/generators/hobo/user_controller/user_controller_generator.rb +25 -0
  102. data/lib/generators/hobo/user_mailer/templates/activation.erb +9 -0
  103. data/{rails_generators/hobo_user_model → lib/generators/hobo/user_mailer}/templates/forgot_password.erb +2 -2
  104. data/{rails_generators/hobo_user_model → lib/generators/hobo/user_mailer}/templates/invite.erb +2 -2
  105. data/lib/generators/hobo/user_mailer/templates/mailer.rb.erb +25 -0
  106. data/lib/generators/hobo/user_mailer/user_mailer_generator.rb +33 -0
  107. data/lib/generators/hobo/user_model/USAGE +12 -0
  108. data/{rails_generators/hobo_user_model/templates/model.rb → lib/generators/hobo/user_model/templates/model_injection.rb.erb} +40 -20
  109. data/lib/generators/hobo/user_model/user_model_generator.rb +23 -0
  110. data/lib/generators/hobo/user_resource/user_resource_generator.rb +27 -0
  111. data/lib/hobo.rb +29 -129
  112. data/lib/hobo/controller.rb +37 -47
  113. data/lib/hobo/controller/authentication_support.rb +109 -0
  114. data/lib/hobo/{model_controller.rb → controller/model.rb} +71 -79
  115. data/lib/hobo/{user_controller.rb → controller/user.rb} +59 -49
  116. data/lib/hobo/engine.rb +80 -0
  117. data/lib/hobo/extensions/action_controller/hobo_methods.rb +44 -0
  118. data/lib/hobo/extensions/action_mailer/helper.rb +38 -0
  119. data/lib/{action_view_extensions/helpers → hobo/extensions/action_view}/tag_helper.rb +5 -2
  120. data/lib/hobo/extensions/action_view/translation_helper.rb +25 -0
  121. data/lib/hobo/extensions/active_model/name.rb +16 -0
  122. data/lib/hobo/extensions/active_model/translation.rb +35 -0
  123. data/lib/{active_record/association_collection.rb → hobo/extensions/active_record/associations/collection.rb} +8 -17
  124. data/lib/{active_record/association_proxy.rb → hobo/extensions/active_record/associations/proxy.rb} +6 -7
  125. data/lib/hobo/extensions/active_record/associations/reflection.rb +23 -0
  126. data/lib/hobo/extensions/active_record/associations/scope.rb +35 -0
  127. data/lib/hobo/extensions/active_record/hobo_methods.rb +11 -0
  128. data/lib/hobo/extensions/active_record/permissions.rb +159 -0
  129. data/lib/hobo/extensions/active_record/relation_with_origin.rb +28 -0
  130. data/lib/hobo/extensions/array.rb +27 -0
  131. data/lib/hobo/extensions/enumerable.rb +12 -0
  132. data/lib/hobo/extensions/i18n.rb +17 -0
  133. data/lib/hobo/{hobo_helper.rb → helper.rb} +58 -31
  134. data/lib/hobo/helper/translations.rb +54 -0
  135. data/lib/hobo/helper/translations/normalizer.rb +39 -0
  136. data/lib/hobo/model.rb +61 -95
  137. data/lib/hobo/model/accessible_associations.rb +178 -0
  138. data/lib/hobo/{find_for.rb → model/find_for.rb} +17 -17
  139. data/lib/hobo/model/guest.rb +25 -0
  140. data/lib/hobo/model/include_in_save.rb +55 -0
  141. data/lib/hobo/model/lifecycles.rb +119 -0
  142. data/lib/hobo/model/lifecycles/actions.rb +146 -0
  143. data/lib/hobo/model/lifecycles/creator.rb +74 -0
  144. data/lib/hobo/model/lifecycles/lifecycle.rb +243 -0
  145. data/lib/hobo/model/lifecycles/state.rb +22 -0
  146. data/lib/hobo/model/lifecycles/transition.rb +70 -0
  147. data/lib/hobo/model/permissions.rb +448 -0
  148. data/lib/hobo/model/scopes.rb +38 -0
  149. data/lib/hobo/model/scopes/apply_scopes.rb +21 -0
  150. data/lib/hobo/model/scopes/automatic_scopes.rb +428 -0
  151. data/lib/hobo/model/user_base.rb +184 -0
  152. data/lib/hobo/model/view_hints.rb +123 -0
  153. data/{rapid_generators → lib/hobo/rapid/generators}/rapid/cards.dryml.erb +2 -2
  154. data/{rapid_generators → lib/hobo/rapid/generators}/rapid/forms.dryml.erb +3 -3
  155. data/{rapid_generators → lib/hobo/rapid/generators}/rapid/pages.dryml.erb +38 -51
  156. data/lib/hobo/rapid/helper.rb +166 -0
  157. data/{taglibs → lib/hobo/rapid/taglibs}/rapid.dryml +6 -5
  158. data/{taglibs → lib/hobo/rapid/taglibs}/rapid_core.dryml +286 -118
  159. data/{taglibs → lib/hobo/rapid/taglibs}/rapid_document_tags.dryml +2 -2
  160. data/{taglibs → lib/hobo/rapid/taglibs}/rapid_editing.dryml +45 -45
  161. data/{taglibs → lib/hobo/rapid/taglibs}/rapid_forms.dryml +190 -158
  162. data/{taglibs → lib/hobo/rapid/taglibs}/rapid_generics.dryml +12 -9
  163. data/lib/hobo/rapid/taglibs/rapid_i18n.dryml +107 -0
  164. data/{taglibs → lib/hobo/rapid/taglibs}/rapid_lifecycles.dryml +7 -7
  165. data/{taglibs → lib/hobo/rapid/taglibs}/rapid_navigation.dryml +15 -15
  166. data/{taglibs → lib/hobo/rapid/taglibs}/rapid_pages.dryml +37 -36
  167. data/{taglibs → lib/hobo/rapid/taglibs}/rapid_plus.dryml +107 -43
  168. data/{taglibs → lib/hobo/rapid/taglibs}/rapid_summary.dryml +28 -57
  169. data/{taglibs → lib/hobo/rapid/taglibs}/rapid_support.dryml +9 -9
  170. data/{taglibs → lib/hobo/rapid/taglibs}/rapid_user_pages.dryml +41 -40
  171. data/lib/hobo/routes.rb +31 -0
  172. data/{doctest → test/doctest}/hobo/hobo_helper.rdoctest +11 -11
  173. data/test/irt/generators/admin_subsite.irt +27 -0
  174. data/test/irt/generators/assets.irt +16 -0
  175. data/test/irt/generators/controller.irt +6 -0
  176. data/test/irt/generators/front_controller.irt +30 -0
  177. data/test/irt/generators/helper.rb +31 -0
  178. data/test/irt/generators/model.irt +28 -0
  179. data/test/irt/generators/partials/_account_user_model_tests.rb +21 -0
  180. data/test/irt/generators/partials/_accounts_users_controller_tests.rb +15 -0
  181. data/test/irt/generators/partials/_default_user_model_tests.rb +21 -0
  182. data/test/irt/generators/partials/_default_users_controller_tests.rb +16 -0
  183. data/test/irt/generators/partials/_house_controller_tests.rb +15 -0
  184. data/test/irt/generators/partials/_house_model_tests.rb +18 -0
  185. data/test/irt/generators/partials/_subsite_taglib_admin.rb +4 -0
  186. data/test/irt/generators/partials/_subsite_taglib_admin_invite_only.rb +3 -0
  187. data/test/irt/generators/partials/_subsite_taglib_noopt.rb +4 -0
  188. data/test/irt/generators/partials/_subsite_taglib_variables.rb +27 -0
  189. data/test/irt/generators/partials/_user_mailer_tests.rb +19 -0
  190. data/test/irt/generators/rapid.irt +29 -0
  191. data/test/irt/generators/resource.irt +8 -0
  192. data/test/irt/generators/subsite.irt +52 -0
  193. data/test/irt/generators/subsite_taglib.irt +23 -0
  194. data/test/irt/generators/test_framework.irt +62 -0
  195. data/test/irt/generators/user_controller.irt +10 -0
  196. data/test/irt/generators/user_mailer.irt +20 -0
  197. data/test/irt/generators/user_model.irt +10 -0
  198. data/test/irt/generators/user_resource.irt +14 -0
  199. data/test/irt/readme.txt +7 -0
  200. data/test/permissions/models/models.rb +27 -24
  201. data/test/permissions/test_permissions.rb +104 -104
  202. metadata +239 -217
  203. data/lib/active_record/association_reflection.rb +0 -20
  204. data/lib/active_record/viewhints_validations_interceptor.rb +0 -9
  205. data/lib/hobo/accessible_associations.rb +0 -183
  206. data/lib/hobo/authentication_support.rb +0 -131
  207. data/lib/hobo/generator.rb +0 -26
  208. data/lib/hobo/guest.rb +0 -25
  209. data/lib/hobo/include_in_save.rb +0 -55
  210. data/lib/hobo/lifecycles.rb +0 -137
  211. data/lib/hobo/lifecycles/actions.rb +0 -142
  212. data/lib/hobo/lifecycles/creator.rb +0 -72
  213. data/lib/hobo/lifecycles/lifecycle.rb +0 -249
  214. data/lib/hobo/lifecycles/state.rb +0 -22
  215. data/lib/hobo/lifecycles/transition.rb +0 -70
  216. data/lib/hobo/model_router.rb +0 -290
  217. data/lib/hobo/permissions.rb +0 -451
  218. data/lib/hobo/permissions/associations.rb +0 -175
  219. data/lib/hobo/rapid_helper.rb +0 -157
  220. data/lib/hobo/scopes.rb +0 -43
  221. data/lib/hobo/scopes/apply_scopes.rb +0 -23
  222. data/lib/hobo/scopes/association_proxy_extensions.rb +0 -62
  223. data/lib/hobo/scopes/automatic_scopes.rb +0 -421
  224. data/lib/hobo/scopes/named_scope_extensions.rb +0 -39
  225. data/lib/hobo/tasks/rails.rb +0 -4
  226. data/lib/hobo/translations.rb +0 -93
  227. data/lib/hobo/undefined_access_error.rb +0 -5
  228. data/lib/hobo/user.rb +0 -182
  229. data/lib/hobo/view_hints.rb +0 -115
  230. data/rails/init.rb +0 -10
  231. data/rails_generators/hobo/USAGE +0 -4
  232. data/rails_generators/hobo/hobo_generator.rb +0 -53
  233. data/rails_generators/hobo/templates/application.dryml +0 -1
  234. data/rails_generators/hobo/templates/initializer.rb +0 -2
  235. data/rails_generators/hobo_admin_site/USAGE +0 -16
  236. data/rails_generators/hobo_admin_site/hobo_admin_site_generator.rb +0 -45
  237. data/rails_generators/hobo_admin_site/templates/admin.css +0 -2
  238. data/rails_generators/hobo_admin_site/templates/users_index.dryml +0 -5
  239. data/rails_generators/hobo_front_controller/hobo_front_controller_generator.rb +0 -95
  240. data/rails_generators/hobo_front_controller/templates/functional_test.rb +0 -8
  241. data/rails_generators/hobo_front_controller/templates/helper.rb +0 -2
  242. data/rails_generators/hobo_model/USAGE +0 -25
  243. data/rails_generators/hobo_model/hobo_model_generator.rb +0 -43
  244. data/rails_generators/hobo_model/templates/fixtures.yml +0 -6
  245. data/rails_generators/hobo_model/templates/hints.rb +0 -7
  246. data/rails_generators/hobo_model/templates/unit_test.rb +0 -8
  247. data/rails_generators/hobo_model_controller/USAGE +0 -30
  248. data/rails_generators/hobo_model_controller/hobo_model_controller_generator.rb +0 -46
  249. data/rails_generators/hobo_model_controller/templates/controller.rb +0 -7
  250. data/rails_generators/hobo_model_controller/templates/functional_test.rb +0 -8
  251. data/rails_generators/hobo_model_controller/templates/helper.rb +0 -2
  252. data/rails_generators/hobo_model_resource/USAGE +0 -38
  253. data/rails_generators/hobo_model_resource/hobo_model_resource_generator.rb +0 -73
  254. data/rails_generators/hobo_model_resource/templates/controller.rb +0 -7
  255. data/rails_generators/hobo_model_resource/templates/functional_test.rb +0 -8
  256. data/rails_generators/hobo_model_resource/templates/helper.rb +0 -2
  257. data/rails_generators/hobo_rapid/hobo_rapid_generator.rb +0 -94
  258. data/rails_generators/hobo_subsite/USAGE +0 -16
  259. data/rails_generators/hobo_subsite/hobo_subsite_generator.rb +0 -73
  260. data/rails_generators/hobo_subsite/templates/site_taglib.dryml +0 -13
  261. data/rails_generators/hobo_user_controller/USAGE +0 -34
  262. data/rails_generators/hobo_user_controller/hobo_user_controller_generator.rb +0 -65
  263. data/rails_generators/hobo_user_controller/templates/controller.rb +0 -29
  264. data/rails_generators/hobo_user_controller/templates/functional_test.rb +0 -8
  265. data/rails_generators/hobo_user_controller/templates/helper.rb +0 -2
  266. data/rails_generators/hobo_user_model/USAGE +0 -16
  267. data/rails_generators/hobo_user_model/hobo_user_model_generator.rb +0 -46
  268. data/rails_generators/hobo_user_model/templates/fixtures.yml +0 -19
  269. data/rails_generators/hobo_user_model/templates/mailer.rb +0 -29
  270. data/rails_generators/hobo_user_model/templates/unit_test.rb +0 -8
  271. data/script/destroy +0 -14
  272. data/script/generate +0 -14
  273. data/taglibs/rapid_translations.dryml +0 -36
  274. data/tasks/environments.rake +0 -19
  275. data/tasks/hobo_tasks.rake +0 -58
  276. data/test/generators/test_generator_helper.rb +0 -29
  277. data/test/generators/test_helper.rb +0 -1
  278. data/test/generators/test_hobo_model_controller_generator.rb +0 -56
@@ -0,0 +1,15 @@
1
+ desc "All controller files exists"
2
+ files_exist? %w[ app/controllers/accounts_controller.rb
3
+ app/helpers/accounts_helper.rb
4
+ test/unit/helpers/accounts_helper_test.rb
5
+ test/functional/accounts_controller_test.rb
6
+ ]
7
+ test_value_eql? true
8
+
9
+
10
+ desc "Controller injection matches"
11
+ file_include? 'app/controllers/accounts_controller.rb',
12
+ 'class AccountsController < ApplicationController',
13
+ 'hobo_user_controller',
14
+ 'auto_actions :all, :except => [ :index, :new, :create ]'
15
+ test_value_eql? true
@@ -0,0 +1,21 @@
1
+ desc "All files exists"
2
+ files_exist? %w[ app/models/user.rb
3
+ app/models/user.rb
4
+ test/unit/user_test.rb
5
+ test/fixtures/users.yml
6
+ app/viewhints/user_hints.rb
7
+ ]
8
+ test_value_eql? true
9
+
10
+ desc "User Model injection matches"
11
+ file_include? 'app/models/user.rb',
12
+ 'hobo_user_model',
13
+ 'fields do',
14
+ /name\s+:string/,
15
+ /email_address\s+:email_address/
16
+ test_value_eql? true
17
+
18
+ desc "Hint content matches"
19
+ file_include? 'app/viewhints/user_hints.rb',
20
+ 'class UserHints'
21
+ test_value_eql? true
@@ -0,0 +1,16 @@
1
+ desc "All user controller files exists"
2
+ files_exist? %w[ app/controllers/users_controller.rb
3
+ app/helpers/users_helper.rb
4
+ test/unit/helpers/users_helper_test.rb
5
+ test/functional/users_controller_test.rb
6
+ ]
7
+ test_value_eql? true
8
+
9
+
10
+ desc "User controller injection matches"
11
+ file_include? 'app/controllers/users_controller.rb',
12
+ 'class UsersController < ApplicationController',
13
+ 'hobo_user_controller',
14
+ 'auto_actions :all, :except => [ :index, :new, :create ]'
15
+ test_value_eql? true
16
+
@@ -0,0 +1,15 @@
1
+ desc "All controller files exists"
2
+ files_exist? %w[ app/controllers/houses_controller.rb
3
+ app/helpers/houses_helper.rb
4
+ test/unit/helpers/houses_helper_test.rb
5
+ test/functional/houses_controller_test.rb
6
+ ]
7
+
8
+ test_value_eql? true
9
+
10
+ desc "Controller injection matches"
11
+ file_include? 'app/controllers/houses_controller.rb',
12
+ 'hobo_model_controller',
13
+ 'auto_actions :all'
14
+
15
+ test_value_eql? true
@@ -0,0 +1,18 @@
1
+ desc "All Model files exists"
2
+ files_exist? %w[ app/models/house.rb
3
+ test/unit/house_test.rb
4
+ test/fixtures/houses.yml
5
+ app/viewhints/house_hints.rb ]
6
+ test_value_eql? true
7
+
8
+ desc "Model injection matches"
9
+ file_include? 'app/models/house.rb',
10
+ 'hobo_model',
11
+ 'fields do',
12
+ /alpha\s+\:string/
13
+ test_value_eql? true
14
+
15
+ desc "Hint content matches"
16
+ file_include? 'app/viewhints/house_hints.rb',
17
+ 'class HouseHints'
18
+ test_value_eql? true
@@ -0,0 +1,4 @@
1
+ desc "Taglib admin file matches"
2
+ file_include?( "app/views/taglibs/subs_site.dryml", tags, admin_tag ) &&
3
+ file_exclude?("app/views/taglibs/subs_site.dryml", invite_only)
4
+ test_value_eql? true
@@ -0,0 +1,3 @@
1
+ desc "Taglib admin invite-only file matches with #{user_resource_name}"
2
+ file_include?("app/views/taglibs/subs_site.dryml", tags, admin_tag, invite_only)
3
+ test_value_eql? true
@@ -0,0 +1,4 @@
1
+ desc "Taglib file matches"
2
+ file_include?("app/views/taglibs/subs_site.dryml", tags) &&
3
+ file_exclude?("app/views/taglibs/subs_site.dryml", admin_tag, invite_only)
4
+ test_value_eql? true
@@ -0,0 +1,27 @@
1
+ tags = %(<!-- Tag definitions for the subs subsite -->
2
+
3
+ <include src="rapid" gem="hobo"/>
4
+
5
+ <include src="taglibs/auto/subs/rapid/cards"/>
6
+ <include src="taglibs/auto/subs/rapid/pages"/>
7
+ <include src="taglibs/auto/subs/rapid/forms"/>
8
+
9
+ <set-theme name="clean"/>
10
+ )
11
+
12
+ admin_tag = '<extend tag="page">
13
+ <old-page merge>
14
+ <append-stylesheets:>
15
+ <stylesheet name="subs"/>
16
+ </append-stylesheets:>
17
+ <footer:>
18
+ <a href="#{base_url}/">View Site</a> |
19
+ </footer:>
20
+ </old-page>
21
+ </extend>'
22
+
23
+ invite_only = %(<extend tag="card" for="#{user_resource_name}">
24
+ <old-card merge>
25
+ <append-header:><%= h this.state.titleize %></append-header:>
26
+ </old-card>
27
+ </extend>)
@@ -0,0 +1,19 @@
1
+
2
+ desc "User Mailer files exist"
3
+ files_exist? %w[ app/mailers/user_mailer.rb
4
+ app/views/user_mailer/forgot_password.erb
5
+ test/functional/user_mailer_test.rb
6
+ ]
7
+ test_value_eql? true
8
+
9
+ desc "user_mailer.rb file content"
10
+ file_include? 'app/mailers/user_mailer.rb',
11
+ 'class UserMailer',
12
+ 'def set_variables'
13
+ test_value_eql? true
14
+
15
+ desc "forgot_password.erb file content"
16
+ file_include? 'app/views/user_mailer/forgot_password.erb',
17
+ '<%= @user %>',
18
+ 'If you have forgotten'
19
+ test_value_eql? true
@@ -0,0 +1,29 @@
1
+ require File.expand_path('../helper.rb', __FILE__)
2
+
3
+
4
+ desc "hobo:rapid invoke"
5
+ invoke 'hobo:rapid', %w(-q)
6
+
7
+ files_exist? %w[ public/javascripts/hobo-rapid.js
8
+ public/javascripts/lowpro.js
9
+ public/javascripts/IE7.js
10
+ public/javascripts/ie7-recalc.js
11
+ public/javascripts/blank.gif
12
+ public/stylesheets/reset.css
13
+ public/stylesheets/hobo-rapid.css
14
+ public/hobothemes/clean
15
+ public/hobothemes/clean/images/101-3B5F87-ACD3E6.png
16
+ public/hobothemes/clean/images/30-3E547A-242E42.png
17
+ public/hobothemes/clean/images/30-DBE1E5-FCFEF5.png
18
+ public/hobothemes/clean/images/300-ACD3E6-fff.png
19
+ public/hobothemes/clean/images/50-ACD3E6-fff.png
20
+ public/hobothemes/clean/images/fieldbg.gif
21
+ public/hobothemes/clean/images/pencil.png
22
+ public/hobothemes/clean/images/small_close.png
23
+ public/hobothemes/clean/images/spinner.gif
24
+ public/hobothemes/clean/stylesheets/clean.css
25
+ public/hobothemes/clean/stylesheets/rapid-ui.css
26
+ app/views/taglibs/themes/clean
27
+ app/views/taglibs/themes/clean/clean.dryml
28
+ ]
29
+ test_value_eql? true
@@ -0,0 +1,8 @@
1
+ require File.expand_path('../helper.rb', __FILE__)
2
+
3
+
4
+ invoke 'hobo:resource' , %w(house alpha:string -q)
5
+
6
+ eval_file '../partials/_house_controller_tests.rb'
7
+
8
+ eval_file '../partials/_house_model_tests.rb'
@@ -0,0 +1,52 @@
1
+ require File.expand_path('../helper.rb', __FILE__)
2
+
3
+
4
+ invoke 'hobo:subsite', %w[ subs -q]
5
+ desc "Subsite files exist"
6
+ files_exist? %w[ app/controllers/subs/subs_site_controller.rb
7
+ test/functional/subs_site_controller_test.rb
8
+ app/views/taglibs/subs_site.dryml ]
9
+ test_value_eql? true
10
+
11
+ desc "SiteController matches"
12
+ file_include? "app/controllers/subs/subs_site_controller.rb",
13
+ 'class Subs::SubsSiteController < ApplicationController',
14
+ 'hobo_controller'
15
+ test_value_eql? true
16
+
17
+
18
+ user_resource_name = 'User'
19
+ eval_file '../partials/_subsite_taglib_variables.rb'
20
+ eval_file '../partials/_subsite_taglib_noopt.rb'
21
+
22
+ git_reset_app
23
+
24
+ invoke 'hobo:assets', %w[ -q ]
25
+ invoke 'hobo:subsite', %w[ subs -q --make-front-site]
26
+ desc "Subsite with make-front-site files exist"
27
+ files_exist? %w[ app/views/taglibs/front_site.dryml
28
+ app/views/taglibs/application.dryml
29
+ app/controllers/subs/subs_site_controller.rb
30
+ test/functional/subs_site_controller_test.rb
31
+ app/views/taglibs/subs_site.dryml ]
32
+ test_value_eql? true
33
+
34
+
35
+ git_reset_app
36
+ invoke 'hobo:subsite', %w[ subs -q --admin]
37
+ eval_file '../partials/_subsite_taglib_admin.rb'
38
+
39
+ git_reset_app
40
+ invoke 'hobo:subsite', %w[ subs -q --admin --invite-only]
41
+ eval_file '../partials/_subsite_taglib_admin_invite_only.rb'
42
+
43
+ git_reset_app
44
+ invoke 'hobo:subsite', %w[ subs --user-resource-name=account -q --admin --invite-only]
45
+ user_resource_name = 'Account'
46
+ eval_file '../partials/_subsite_taglib_variables.rb'
47
+ eval_file '../partials/_subsite_taglib_admin_invite_only.rb'
48
+
49
+
50
+
51
+
52
+
@@ -0,0 +1,23 @@
1
+ require File.expand_path('../helper.rb', __FILE__)
2
+
3
+
4
+ user_resource_name = 'User'
5
+ eval_file '../partials/_subsite_taglib_variables.rb'
6
+
7
+ invoke 'hobo:subsite_taglib', %w[ subs -q]
8
+ eval_file '../partials/_subsite_taglib_noopt.rb'
9
+
10
+ git_reset_app
11
+ invoke 'hobo:subsite_taglib', %w[ subs -q --admin]
12
+ eval_file '../partials/_subsite_taglib_admin.rb'
13
+
14
+ git_reset_app
15
+ invoke 'hobo:subsite_taglib', %w[ subs -q --admin --invite-only]
16
+ eval_file '../partials/_subsite_taglib_admin_invite_only.rb'
17
+
18
+ git_reset_app
19
+ invoke 'hobo:subsite_taglib', %w[ subs --user-resource-name=account -q --admin --invite-only]
20
+ user_resource_name = 'Account'
21
+ eval_file '../partials/_subsite_taglib_variables.rb'
22
+ eval_file '../partials/_subsite_taglib_admin_invite_only.rb'
23
+
@@ -0,0 +1,62 @@
1
+ require File.expand_path('../helper.rb', __FILE__)
2
+
3
+
4
+ desc "test_unit: default no-changes'"
5
+ invoke 'hobo:test_framework', %w(test_unit)
6
+ file_exclude? 'config/application.rb',
7
+ 'config.generators do' ,
8
+ 'test_framework :test_unit'
9
+ test_value_eql? true
10
+
11
+ git_reset_app
12
+
13
+ desc "test_unit: don't generate fixtures'"
14
+ invoke 'hobo:test_framework', %w(test_unit --no-fixtures)
15
+ file_include? 'config/application.rb',
16
+ 'config.generators do' ,
17
+ 'test_framework :test_unit, :fixtures => false'
18
+ test_value_eql? true
19
+
20
+ git_reset_app
21
+
22
+ desc "shoulda application.rb injection"
23
+ invoke 'hobo:test_framework', %w(shoulda --no-update -q)
24
+ file_include? 'config/application.rb',
25
+ 'config.generators do' ,
26
+ 'test_framework :shoulda, :fixtures => true'
27
+ test_value_eql? true
28
+
29
+ desc "shoulda Gemfile injection"
30
+ file_include? 'Gemfile', %(gem "shoulda", :group => :test)
31
+ test_value_eql? true
32
+
33
+ git_reset_app
34
+
35
+ desc "rspec application.rb injection"
36
+ invoke 'hobo:test_framework', %w(rspec --no-update -q)
37
+ file_include? 'config/application.rb',
38
+ 'config.generators do' ,
39
+ 'test_framework :rspec, :fixtures => true',
40
+ 'fallbacks[:rspec] = :test_unit'
41
+ test_value_eql? true
42
+
43
+ desc "rspec Gemfile injection"
44
+ file_include? 'Gemfile', %(gem "rspec-rails", ">= 2.0.0.beta.10", :group => :test)
45
+ test_value_eql? true
46
+
47
+ git_reset_app
48
+
49
+ desc "rspec_with_shoulda application.rb injection"
50
+ invoke 'hobo:test_framework', %w(rspec_with_shoulda --no-update -q)
51
+ file_include? 'config/application.rb',
52
+ 'config.generators do' ,
53
+ 'test_framework :rspec, :fixtures => true',
54
+ 'fallbacks[:rspec] = :test_unit'
55
+ test_value_eql? true
56
+
57
+ desc "rspec_with_shoulda Gemfile injection"
58
+ file_include? 'Gemfile', %(gem "rspec-rails", ">= 2.0.0.beta.10", :group => :test),
59
+ %(gem "shoulda", :group => :test)
60
+ test_value_eql? true
61
+
62
+
@@ -0,0 +1,10 @@
1
+ require File.expand_path('../helper.rb', __FILE__)
2
+
3
+
4
+ invoke 'hobo:user_controller', %w[-q]
5
+
6
+ eval_file '../partials/_default_users_controller_tests.rb'
7
+
8
+ invoke 'hobo:user_controller' , %w(accounts -q)
9
+
10
+ eval_file '../partials/_accounts_users_controller_tests.rb'
@@ -0,0 +1,20 @@
1
+ require File.expand_path('../helper.rb', __FILE__)
2
+
3
+
4
+ invoke 'hobo:user_mailer', %w[ user -q ]
5
+
6
+ eval_file '../partials/_user_mailer_tests.rb'
7
+
8
+ ############
9
+
10
+ git_reset_app
11
+
12
+ desc "User Mailer --invite-only files exist"
13
+ invoke 'hobo:user_mailer', %w[ user --invite-only -q ]
14
+
15
+ eval_file '../partials/_user_mailer_tests.rb'
16
+
17
+ desc "user_mailer.rb file content invite"
18
+ file_include? 'app/mailers/user_mailer.rb',
19
+ 'def invite'
20
+ test_value_eql? true
@@ -0,0 +1,10 @@
1
+ require File.expand_path('../helper.rb', __FILE__)
2
+
3
+
4
+ invoke 'hobo:user_model', %w(-q)
5
+
6
+ eval_file '../partials/_default_user_model_tests.rb'
7
+
8
+ invoke 'hobo:user_model', %w(account -q)
9
+
10
+ eval_file '../partials/_account_user_model_tests.rb'
@@ -0,0 +1,14 @@
1
+ require File.expand_path('../helper.rb', __FILE__)
2
+
3
+
4
+ invoke 'hobo:user_resource' , %w(-q)
5
+
6
+ eval_file '../partials/_default_users_controller_tests.rb'
7
+
8
+ eval_file '../partials/_default_user_model_tests.rb'
9
+
10
+ invoke 'hobo:user_resource' , %w(account -q)
11
+
12
+ eval_file '../partials/_accounts_users_controller_tests.rb'
13
+
14
+ eval_file '../partials/_account_user_model_tests.rb'
@@ -0,0 +1,7 @@
1
+ In order to run the tests, you need git and irt installed, then run:
2
+
3
+ $ rake irt_test_all
4
+
5
+ or if you are testing a local repo of hobo, from the hobo repo root:
6
+
7
+ $ rake HOBO_DEV_ROOT=. irt_test_all
@@ -1,53 +1,55 @@
1
1
  HOBO_HOME = "#{File.dirname(__FILE__)}/../../../.."
2
- $:.unshift "#{HOBO_HOME}/hobosupport/lib"
3
- $:.unshift "#{HOBO_HOME}/hobofields/lib"
2
+ $:.unshift "#{HOBO_HOME}/hobo_support/lib"
3
+ $:.unshift "#{HOBO_HOME}/hobo_fields/lib"
4
4
  $:.unshift "#{HOBO_HOME}/hobo/lib"
5
+ $:.unshift "#{HOBO_HOME}/dryml/lib"
5
6
 
6
7
  require 'rubygems'
7
8
  require 'sqlite3'
8
9
  require 'active_record'
10
+ gem 'will_paginate', ">= 3.0.pre"
11
+ require 'will_paginate'
9
12
 
10
13
  module Models
11
-
14
+
12
15
  extend self
13
-
16
+
14
17
  HOME = File.dirname(__FILE__)
15
-
18
+
16
19
  def model(name, &b)
17
20
  klass = Object.const_get(name)
18
21
  klass.hobo_model
19
22
  klass.class_eval(&b)
20
23
  klass.delete_all rescue nil
21
24
  end
22
-
25
+
23
26
  def user_model(name, &b)
24
27
  klass = Object.const_get(name)
25
28
  klass.hobo_user_model
26
29
  klass.class_eval(&b)
27
30
  klass.delete_all rescue nil
28
31
  end
29
-
32
+
30
33
  def create_database_sqlite3
31
34
  ActiveRecord::Base.establish_connection(:adapter => "sqlite3",
32
35
  :database => "/tmp/hobo_permissions_test.sqlite3",
33
36
  :timeout => 5000)
34
37
  end
35
-
38
+
36
39
  def init
37
- Hobo::Model.enable
38
40
  make_models
39
- up, down = HoboFields::MigrationGenerator.run
41
+ up, down = Generators::Hobo::Migration::Migrator.run
40
42
  ActiveRecord::Migration.class_eval(up)
41
43
  end
42
-
44
+
43
45
  def make_models
44
46
 
45
47
  [:Response, :Comment, :Request, :Recipe, :Collaboratorship, :Image, :CodeExample, :User].each do |m|
46
48
  Object.const_set(m, Class.new(ActiveRecord::Base))
47
49
  end
48
-
50
+
49
51
  model :Response do
50
- fields do
52
+ fields do
51
53
  body :string
52
54
  end
53
55
  belongs_to :user
@@ -62,7 +64,7 @@ module Models
62
64
  belongs_to :user
63
65
  belongs_to :recipe
64
66
  end
65
-
67
+
66
68
  model :Request do
67
69
  fields do
68
70
  body :string
@@ -83,19 +85,20 @@ module Models
83
85
  belongs_to :code_example, :dependent => :destroy, :accessible => true
84
86
  has_many :collaboratorships
85
87
  has_many :collaborators, :through => :collaboratorships, :source => :user, :accessible => true
86
-
88
+
87
89
  def create_permitted?; acting_user == user end
88
90
  def update_permitted?; acting_user == user end
89
91
  def destroy_permitted?; acting_user == user end
90
92
  end
91
-
93
+
92
94
  model :Collaboratorship do
95
+ fields {}
93
96
  belongs_to :user
94
97
  belongs_to :recipe
95
98
  def create_permitted?; recipe.user == acting_user end
96
99
  def destroy_permitted?; recipe.user == acting_user end
97
100
  end
98
-
101
+
99
102
  model :Image do
100
103
  fields do
101
104
  name :string
@@ -106,13 +109,13 @@ module Models
106
109
  def update_permitted?; user == acting_user end
107
110
  def destroy_permitted?; user == acting_user end
108
111
  end
109
-
112
+
110
113
  model :CodeExample do
111
114
  fields do
112
115
  filename :string
113
116
  end
114
117
  has_one :recipe
115
- def update_permitted?; recipe.user == acting_user end
118
+ def update_permitted?; recipe.user == acting_user end
116
119
  def create_permitted?; true end
117
120
  end
118
121
 
@@ -125,22 +128,22 @@ module Models
125
128
  has_many :comments
126
129
  has_many :responses
127
130
  has_many :requests
128
-
131
+
129
132
  lifecycle do
130
133
  state :active, :default => true
131
134
  end
132
135
  end
133
-
136
+
134
137
  end
135
-
138
+
136
139
  end
137
140
 
138
141
  # activerecord 2.3.2 is buggy. It requires a connection before we can
139
142
  # load hobo. see https://gist.github.com/90542/0417ee6e71f0bed287824d47163c0e34ff4dc321
140
143
  # otherwise, this line should be in Models.init
141
144
  Models.create_database_sqlite3
142
- require 'hobosupport'
143
- require 'hobofields'
145
+ require 'hobo_support'
146
+ require 'hobo_fields'
144
147
  require 'hobo'
145
148
 
146
149