muck-friends 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (294) hide show
  1. data/.gitignore +5 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +51 -0
  4. data/Rakefile +101 -0
  5. data/VERSION +1 -0
  6. data/app/controllers/muck/friends_controller.rb +70 -0
  7. data/app/helpers/muck_friends_helper.rb +93 -0
  8. data/app/models/friend_mailer.rb +25 -0
  9. data/app/views/activity_templates/follow.html.erb +1 -0
  10. data/app/views/activity_templates/friends_with.html.erb +1 -0
  11. data/app/views/friend_mailer/follow.text.html.erb +8 -0
  12. data/app/views/friend_mailer/follow.text.plain.erb +8 -0
  13. data/app/views/friend_mailer/friend_request.text.html.erb +8 -0
  14. data/app/views/friend_mailer/friend_request.text.plain.erb +8 -0
  15. data/app/views/friends/_friend_simple.html.erb +4 -0
  16. data/app/views/friends/_friends.html.erb +8 -0
  17. data/app/views/friends/_notifications.html.erb +32 -0
  18. data/app/views/friends/friend_or_follow_request.html.erb +8 -0
  19. data/app/views/friends/index.html.erb +1 -0
  20. data/config/muck_friends_routes.rb +4 -0
  21. data/db/migrate/20090608073052_create_friends.rb +16 -0
  22. data/install.rb +1 -0
  23. data/lib/active_record/acts/muck_friend.rb +141 -0
  24. data/lib/active_record/acts/muck_friend_user.rb +103 -0
  25. data/lib/muck_friends.rb +12 -0
  26. data/lib/muck_friends/initialize_routes.rb +8 -0
  27. data/lib/muck_friends/tasks.rb +27 -0
  28. data/locales/ar.yml +31 -0
  29. data/locales/bg.yml +31 -0
  30. data/locales/ca.yml +31 -0
  31. data/locales/cs.yml +31 -0
  32. data/locales/da.yml +31 -0
  33. data/locales/de.yml +31 -0
  34. data/locales/el.yml +31 -0
  35. data/locales/en.yml +31 -0
  36. data/locales/es.yml +31 -0
  37. data/locales/et.yml +31 -0
  38. data/locales/fa.yml +31 -0
  39. data/locales/fi.yml +31 -0
  40. data/locales/fr.yml +31 -0
  41. data/locales/gl.yml +31 -0
  42. data/locales/hi.yml +31 -0
  43. data/locales/hr.yml +31 -0
  44. data/locales/hu.yml +31 -0
  45. data/locales/id.yml +31 -0
  46. data/locales/it.yml +31 -0
  47. data/locales/iw.yml +31 -0
  48. data/locales/ja.yml +31 -0
  49. data/locales/ko.yml +31 -0
  50. data/locales/lt.yml +31 -0
  51. data/locales/lv.yml +31 -0
  52. data/locales/mt.yml +31 -0
  53. data/locales/nl.yml +31 -0
  54. data/locales/no.yml +32 -0
  55. data/locales/pl.yml +31 -0
  56. data/locales/pt-PT.yml +31 -0
  57. data/locales/pt.yml +6 -0
  58. data/locales/ro.yml +31 -0
  59. data/locales/ru.yml +31 -0
  60. data/locales/sk.yml +31 -0
  61. data/locales/sl.yml +31 -0
  62. data/locales/sq.yml +31 -0
  63. data/locales/sr.yml +31 -0
  64. data/locales/sv.yml +31 -0
  65. data/locales/th.yml +31 -0
  66. data/locales/tl.yml +31 -0
  67. data/locales/tr.yml +31 -0
  68. data/locales/uk.yml +31 -0
  69. data/locales/vi.yml +31 -0
  70. data/locales/zh-CN.yml +31 -0
  71. data/locales/zh-TW.yml +31 -0
  72. data/locales/zh.yml +31 -0
  73. data/muck-friends.gemspec +381 -0
  74. data/rails/init.rb +4 -0
  75. data/tasks/rails.rake +1 -0
  76. data/test/rails_root/.gitignore +8 -0
  77. data/test/rails_root/.rake_tasks +103 -0
  78. data/test/rails_root/Capfile +3 -0
  79. data/test/rails_root/Rakefile +15 -0
  80. data/test/rails_root/app/controllers/application_controller.rb +21 -0
  81. data/test/rails_root/app/controllers/default_controller.rb +7 -0
  82. data/test/rails_root/app/helpers/application_helper.rb +3 -0
  83. data/test/rails_root/app/models/.keep +0 -0
  84. data/test/rails_root/app/models/activity.rb +3 -0
  85. data/test/rails_root/app/models/friend.rb +4 -0
  86. data/test/rails_root/app/models/user.rb +8 -0
  87. data/test/rails_root/app/models/user_session.rb +2 -0
  88. data/test/rails_root/app/views/default/index.html.erb +1 -0
  89. data/test/rails_root/app/views/layouts/default.html.erb +26 -0
  90. data/test/rails_root/config/amazon_s3.yml +14 -0
  91. data/test/rails_root/config/boot.rb +109 -0
  92. data/test/rails_root/config/database.yml +14 -0
  93. data/test/rails_root/config/environment.rb +27 -0
  94. data/test/rails_root/config/environments/development.rb +19 -0
  95. data/test/rails_root/config/environments/production.rb +1 -0
  96. data/test/rails_root/config/environments/test.rb +34 -0
  97. data/test/rails_root/config/global_config.yml +72 -0
  98. data/test/rails_root/config/initializers/inflections.rb +10 -0
  99. data/test/rails_root/config/initializers/mime_types.rb +5 -0
  100. data/test/rails_root/config/initializers/requires.rb +13 -0
  101. data/test/rails_root/config/initializers/session_store.rb +8 -0
  102. data/test/rails_root/config/routes.rb +3 -0
  103. data/test/rails_root/db/.keep +0 -0
  104. data/test/rails_root/db/migrate/20090320174818_create_muck_permissions_and_roles.rb +16 -0
  105. data/test/rails_root/db/migrate/20090402033319_add_muck_activities.rb +36 -0
  106. data/test/rails_root/db/migrate/20090602041838_create_users.rb +39 -0
  107. data/test/rails_root/db/migrate/20090608073052_create_friends.rb +16 -0
  108. data/test/rails_root/features/step_definitions/webrat_steps.rb +99 -0
  109. data/test/rails_root/features/support/env.rb +14 -0
  110. data/test/rails_root/public/.htaccess +40 -0
  111. data/test/rails_root/public/404.html +30 -0
  112. data/test/rails_root/public/422.html +30 -0
  113. data/test/rails_root/public/500.html +30 -0
  114. data/test/rails_root/public/dispatch.rb +10 -0
  115. data/test/rails_root/public/favicon.ico +0 -0
  116. data/test/rails_root/public/images/arrow_left.gif +0 -0
  117. data/test/rails_root/public/images/arrow_right.gif +0 -0
  118. data/test/rails_root/public/images/blue/preview.gif +0 -0
  119. data/test/rails_root/public/images/icons/accept.png +0 -0
  120. data/test/rails_root/public/images/icons/add.png +0 -0
  121. data/test/rails_root/public/images/icons/delete.png +0 -0
  122. data/test/rails_root/public/images/icons/vote.png +0 -0
  123. data/test/rails_root/public/images/loading.gif +0 -0
  124. data/test/rails_root/public/images/profile_default.jpg +0 -0
  125. data/test/rails_root/public/images/rails.png +0 -0
  126. data/test/rails_root/public/images/red/preview.gif +0 -0
  127. data/test/rails_root/public/images/spinner.gif +0 -0
  128. data/test/rails_root/public/images/sprites.png +0 -0
  129. data/test/rails_root/public/javascripts/application.js +2 -0
  130. data/test/rails_root/public/javascripts/builder.js +136 -0
  131. data/test/rails_root/public/javascripts/controls.js +963 -0
  132. data/test/rails_root/public/javascripts/dragdrop.js +972 -0
  133. data/test/rails_root/public/javascripts/effects.js +1120 -0
  134. data/test/rails_root/public/javascripts/fancyzoom.min.js +1 -0
  135. data/test/rails_root/public/javascripts/jquery/jquery-ui.js +273 -0
  136. data/test/rails_root/public/javascripts/jquery/jquery.form.js +637 -0
  137. data/test/rails_root/public/javascripts/jquery/jquery.jgrowl.js +2 -0
  138. data/test/rails_root/public/javascripts/jquery/jquery.js +19 -0
  139. data/test/rails_root/public/javascripts/jquery/jquery.tips.js +69 -0
  140. data/test/rails_root/public/javascripts/muck.js +76 -0
  141. data/test/rails_root/public/javascripts/muck_activities.js +108 -0
  142. data/test/rails_root/public/javascripts/prototype.js +4225 -0
  143. data/test/rails_root/public/javascripts/scriptaculous.js +58 -0
  144. data/test/rails_root/public/javascripts/slider.js +277 -0
  145. data/test/rails_root/public/javascripts/sound.js +60 -0
  146. data/test/rails_root/public/robots.txt +1 -0
  147. data/test/rails_root/public/stylesheets/.keep +0 -0
  148. data/test/rails_root/public/stylesheets/admin.css +12 -0
  149. data/test/rails_root/public/stylesheets/blueprint/ie.css +26 -0
  150. data/test/rails_root/public/stylesheets/blueprint/liquid_screen.css +203 -0
  151. data/test/rails_root/public/stylesheets/blueprint/plugins/buttons/icons/cross.png +0 -0
  152. data/test/rails_root/public/stylesheets/blueprint/plugins/buttons/icons/key.png +0 -0
  153. data/test/rails_root/public/stylesheets/blueprint/plugins/buttons/icons/tick.png +0 -0
  154. data/test/rails_root/public/stylesheets/blueprint/plugins/buttons/readme.txt +32 -0
  155. data/test/rails_root/public/stylesheets/blueprint/plugins/buttons/screen.css +97 -0
  156. data/test/rails_root/public/stylesheets/blueprint/plugins/fancy-type/readme.txt +14 -0
  157. data/test/rails_root/public/stylesheets/blueprint/plugins/fancy-type/screen.css +71 -0
  158. data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/icons/doc.png +0 -0
  159. data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/icons/email.png +0 -0
  160. data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/icons/external.png +0 -0
  161. data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/icons/feed.png +0 -0
  162. data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/icons/im.png +0 -0
  163. data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/icons/pdf.png +0 -0
  164. data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/icons/visited.png +0 -0
  165. data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/icons/xls.png +0 -0
  166. data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/readme.txt +18 -0
  167. data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/screen.css +40 -0
  168. data/test/rails_root/public/stylesheets/blueprint/plugins/liquid/liquid.css +134 -0
  169. data/test/rails_root/public/stylesheets/blueprint/plugins/liquid/src/liquid.css +197 -0
  170. data/test/rails_root/public/stylesheets/blueprint/plugins/rtl/readme.txt +10 -0
  171. data/test/rails_root/public/stylesheets/blueprint/plugins/rtl/screen.css +109 -0
  172. data/test/rails_root/public/stylesheets/blueprint/print.css +30 -0
  173. data/test/rails_root/public/stylesheets/blueprint/screen.css +251 -0
  174. data/test/rails_root/public/stylesheets/blueprint/sprite.css +1 -0
  175. data/test/rails_root/public/stylesheets/blueprint/src/forms.css +49 -0
  176. data/test/rails_root/public/stylesheets/blueprint/src/grid.css +213 -0
  177. data/test/rails_root/public/stylesheets/blueprint/src/grid.png +0 -0
  178. data/test/rails_root/public/stylesheets/blueprint/src/ie.css +59 -0
  179. data/test/rails_root/public/stylesheets/blueprint/src/print.css +85 -0
  180. data/test/rails_root/public/stylesheets/blueprint/src/reset.css +38 -0
  181. data/test/rails_root/public/stylesheets/blueprint/src/typography.css +105 -0
  182. data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-bg_diagonals-small_0_aaaaaa_40x40.png +0 -0
  183. data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-bg_diagonals-thick_15_444444_40x40.png +0 -0
  184. data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-bg_glass_100_f0f0f0_1x400.png +0 -0
  185. data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-bg_glass_50_99c2ff_1x400.png +0 -0
  186. data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-bg_glass_55_fbf5d0_1x400.png +0 -0
  187. data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-bg_glass_80_e6e6e6_1x400.png +0 -0
  188. data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  189. data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-bg_highlight-hard_100_f9f9f9_1x100.png +0 -0
  190. data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-bg_highlight-soft_100_e7eef3_1x100.png +0 -0
  191. data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-icons_222222_256x240.png +0 -0
  192. data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-icons_2694e8_256x240.png +0 -0
  193. data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-icons_2e83ff_256x240.png +0 -0
  194. data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-icons_72a7cf_256x240.png +0 -0
  195. data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-icons_888888_256x240.png +0 -0
  196. data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-icons_cd0a0a_256x240.png +0 -0
  197. data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-icons_ffffff_256x240.png +0 -0
  198. data/test/rails_root/public/stylesheets/jquery/cupertino/jquery-ui-1.7.1.custom.css +404 -0
  199. data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  200. data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-bg_flat_55_fbec88_40x100.png +0 -0
  201. data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png +0 -0
  202. data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-bg_glass_85_dfeffc_1x400.png +0 -0
  203. data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  204. data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png +0 -0
  205. data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png +0 -0
  206. data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png +0 -0
  207. data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-icons_217bc0_256x240.png +0 -0
  208. data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-icons_2e83ff_256x240.png +0 -0
  209. data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-icons_469bdd_256x240.png +0 -0
  210. data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-icons_6da8d5_256x240.png +0 -0
  211. data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-icons_cd0a0a_256x240.png +0 -0
  212. data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-icons_d8e7f3_256x240.png +0 -0
  213. data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-icons_f9bd01_256x240.png +0 -0
  214. data/test/rails_root/public/stylesheets/jquery/redmond/jquery-ui-1.7.1.custom.css +404 -0
  215. data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  216. data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  217. data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  218. data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  219. data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  220. data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  221. data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  222. data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  223. data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-icons_222222_256x240.png +0 -0
  224. data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  225. data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-icons_454545_256x240.png +0 -0
  226. data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-icons_888888_256x240.png +0 -0
  227. data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  228. data/test/rails_root/public/stylesheets/jquery/smoothness/jquery-ui-1.7.1.custom.css +404 -0
  229. data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  230. data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  231. data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-bg_flat_10_000000_40x100.png +0 -0
  232. data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  233. data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  234. data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  235. data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  236. data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  237. data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  238. data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-icons_222222_256x240.png +0 -0
  239. data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-icons_228ef1_256x240.png +0 -0
  240. data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-icons_ef8c08_256x240.png +0 -0
  241. data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-icons_ffd27a_256x240.png +0 -0
  242. data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-icons_ffffff_256x240.png +0 -0
  243. data/test/rails_root/public/stylesheets/jquery/ui-lightness/jquery-ui-1.7.1.custom.css +404 -0
  244. data/test/rails_root/public/stylesheets/reset.css +0 -0
  245. data/test/rails_root/public/stylesheets/styles.css +79 -0
  246. data/test/rails_root/public/stylesheets/themes/blue/styles.css +1 -0
  247. data/test/rails_root/public/stylesheets/themes/red/styles.css +1 -0
  248. data/test/rails_root/script/about +3 -0
  249. data/test/rails_root/script/breakpointer +3 -0
  250. data/test/rails_root/script/console +3 -0
  251. data/test/rails_root/script/create_project.rb +52 -0
  252. data/test/rails_root/script/cucumber +7 -0
  253. data/test/rails_root/script/dbconsole +3 -0
  254. data/test/rails_root/script/destroy +3 -0
  255. data/test/rails_root/script/generate +3 -0
  256. data/test/rails_root/script/performance/benchmarker +3 -0
  257. data/test/rails_root/script/performance/profiler +3 -0
  258. data/test/rails_root/script/performance/request +3 -0
  259. data/test/rails_root/script/plugin +3 -0
  260. data/test/rails_root/script/process/inspector +3 -0
  261. data/test/rails_root/script/process/reaper +3 -0
  262. data/test/rails_root/script/process/spawner +3 -0
  263. data/test/rails_root/script/runner +3 -0
  264. data/test/rails_root/script/server +3 -0
  265. data/test/rails_root/test/factories.rb +50 -0
  266. data/test/rails_root/test/functional/.keep +0 -0
  267. data/test/rails_root/test/functional/friends_controller_test.rb +171 -0
  268. data/test/rails_root/test/integration/.keep +0 -0
  269. data/test/rails_root/test/mocks/development/.keep +0 -0
  270. data/test/rails_root/test/mocks/test/.keep +0 -0
  271. data/test/rails_root/test/shoulda_macros/controller.rb +45 -0
  272. data/test/rails_root/test/shoulda_macros/forms.rb +32 -0
  273. data/test/rails_root/test/shoulda_macros/models.rb +50 -0
  274. data/test/rails_root/test/shoulda_macros/pagination.rb +53 -0
  275. data/test/rails_root/test/shoulda_macros/plugins.rb +34 -0
  276. data/test/rails_root/test/test_helper.rb +38 -0
  277. data/test/rails_root/test/unit/.keep +0 -0
  278. data/test/rails_root/test/unit/friend_mailer_test.rb +37 -0
  279. data/test/rails_root/test/unit/friend_test.rb +186 -0
  280. data/test/rails_root/test/unit/user_test.rb +170 -0
  281. data/test/rails_root/vendor/plugins/ssl_requirement/README +43 -0
  282. data/test/rails_root/vendor/plugins/ssl_requirement/lib/ssl_requirement.rb +62 -0
  283. data/test/rails_root/vendor/plugins/ssl_requirement/test/ssl_requirement_test.rb +132 -0
  284. data/test/rails_root/vendor/plugins/validation_reflection/CHANGELOG +24 -0
  285. data/test/rails_root/vendor/plugins/validation_reflection/LICENSE +20 -0
  286. data/test/rails_root/vendor/plugins/validation_reflection/README +64 -0
  287. data/test/rails_root/vendor/plugins/validation_reflection/Rakefile +22 -0
  288. data/test/rails_root/vendor/plugins/validation_reflection/about.yml +7 -0
  289. data/test/rails_root/vendor/plugins/validation_reflection/init.rb +8 -0
  290. data/test/rails_root/vendor/plugins/validation_reflection/lib/boiler_plate/validation_reflection.rb +129 -0
  291. data/test/rails_root/vendor/plugins/validation_reflection/test/test_helper.rb +36 -0
  292. data/test/rails_root/vendor/plugins/validation_reflection/test/validation_reflection_test.rb +126 -0
  293. data/uninstall.rb +1 -0
  294. metadata +416 -0
@@ -0,0 +1 @@
1
+ /*Add styles specific to your theme here*/
@@ -0,0 +1 @@
1
+ /*Add styles specific to your theme here*/
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../config/boot'
3
+ require 'commands/about'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../config/boot'
3
+ require 'commands/breakpointer'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../config/boot'
3
+ require 'commands/console'
@@ -0,0 +1,52 @@
1
+ #!/usr/bin/env ruby
2
+ require 'rubygems'
3
+ require 'activesupport'
4
+ require 'pathname'
5
+
6
+ project_name = ARGV[0]
7
+ fail("Usage: #{File.basename(__FILE__)} new_project_name") unless project_name
8
+ fail("Project name must only contain [a-z0-9_]") unless project_name =~ /^[a-z0-9_]+$/
9
+
10
+ base_directory = Pathname.new(File.join(File.dirname(__FILE__), '..', '..')).realpath
11
+ project_directory = base_directory + project_name
12
+ fail("Project directory (#{project_directory}) already exists") if project_directory.exist?
13
+
14
+ template_url = "git@github.com:thoughtbot/rails-template.git"
15
+ changeme = "CHANGEME"
16
+
17
+ def run(cmd)
18
+ puts "Running '#{cmd}'"
19
+ out = `#{cmd}`
20
+ if $? != 0
21
+ fail "Command #{cmd} failed: #$?\n#{out}"
22
+ end
23
+ out
24
+ end
25
+
26
+ def search_and_replace(file, search, replace)
27
+ if File.file?(file)
28
+ contents = File.read(file)
29
+ if contents[search]
30
+ puts "Replacing #{search} with #{replace} in #{file}"
31
+ contents.gsub!(search, replace)
32
+ File.open(file, "w") { |f| f << contents }
33
+ end
34
+ end
35
+ end
36
+
37
+ run("mkdir #{project_directory}")
38
+ Dir.chdir(project_directory) or fail("Couldn't change to #{project_directory}")
39
+ run("git init")
40
+ run("git remote add template #{template_url}")
41
+ run("git pull template master")
42
+
43
+ Dir.glob("#{project_directory}/**/*").each do |file|
44
+ search_and_replace(file, changeme, project_name)
45
+ end
46
+
47
+ run("git commit -a -m 'Initial commit'")
48
+
49
+ puts
50
+ puts "Now login to github and add a new project named '#{project_name.humanize.titleize}'"
51
+
52
+
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+ begin
3
+ load File.expand_path(File.dirname(__FILE__) + "/../vendor/plugins/cucumber/bin/cucumber")
4
+ rescue LoadError
5
+ require "rubygems"
6
+ load File.join(Gem.bindir, "cucumber")
7
+ end
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../config/boot'
3
+ require 'commands/dbconsole'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../config/boot'
3
+ require 'commands/destroy'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../config/boot'
3
+ require 'commands/generate'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../../config/boot'
3
+ require 'commands/performance/benchmarker'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../../config/boot'
3
+ require 'commands/performance/profiler'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../../config/boot'
3
+ require 'commands/performance/request'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../config/boot'
3
+ require 'commands/plugin'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../../config/boot'
3
+ require 'commands/process/inspector'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../../config/boot'
3
+ require 'commands/process/reaper'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../../config/boot'
3
+ require 'commands/process/spawner'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../config/boot'
3
+ require 'commands/runner'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../config/boot'
3
+ require 'commands/server'
@@ -0,0 +1,50 @@
1
+ Factory.sequence :email do |n|
2
+ "somebody#{n}@example.com"
3
+ end
4
+
5
+ Factory.sequence :login do |n|
6
+ "inquire#{n}"
7
+ end
8
+
9
+ Factory.sequence :name do |n|
10
+ "a_name#{n}"
11
+ end
12
+
13
+ Factory.sequence :abbr do |n|
14
+ "abbr#{n}"
15
+ end
16
+
17
+ Factory.sequence :description do |n|
18
+ "This is the description: #{n}"
19
+ end
20
+
21
+ Factory.define :state do |f|
22
+ f.name { Factory.next(:name) }
23
+ f.abbreviation { Factory.next(:abbr) }
24
+ f.country {|a| a.association(:country) }
25
+ end
26
+
27
+ Factory.define :country do |f|
28
+ f.name { Factory.next(:name) }
29
+ f.abbreviation { Factory.next(:abbr) }
30
+ end
31
+
32
+ Factory.define :user do |f|
33
+ f.login { Factory.next(:login) }
34
+ f.email { Factory.next(:email) }
35
+ f.password 'inquire_pass'
36
+ f.password_confirmation 'inquire_pass'
37
+ f.first_name 'test'
38
+ f.last_name 'guy'
39
+ f.terms_of_service true
40
+ f.activated_at DateTime.now
41
+ end
42
+
43
+ Factory.define :permission do |f|
44
+ f.role {|a| a.association(:role)}
45
+ f.user {|a| a.association(:user)}
46
+ end
47
+
48
+ Factory.define :role do |f|
49
+ f.rolename 'administrator'
50
+ end
File without changes
@@ -0,0 +1,171 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+
3
+ class Muck::FriendsControllerTest < ActionController::TestCase
4
+
5
+ tests Muck::FriendsController
6
+
7
+ context "friends controller" do
8
+ setup do
9
+ @quentin = Factory(:user)
10
+ @aaron = Factory(:user)
11
+ end
12
+
13
+ context "not logged in" do
14
+ context 'render index page' do
15
+ setup do
16
+ get :index, :user_id => @quentin.to_param
17
+ end
18
+ should_respond_with :success
19
+ should_render_template :index
20
+ end
21
+
22
+ context "deny access to create" do
23
+ setup do
24
+ post :create, { :id => @aaron.to_param }
25
+ end
26
+ should_redirect_to("login") { login_path }
27
+ should_set_the_flash_to(I18n.t("muck.users.login_requred"))
28
+ end
29
+
30
+ context "deny access to destroy" do
31
+ setup do
32
+ delete :destroy, { :id => @aaron.to_param }
33
+ end
34
+ should_redirect_to("login") { login_path }
35
+ should_set_the_flash_to(I18n.t("muck.users.login_requred"))
36
+ end
37
+ end
38
+
39
+ context "logged in" do
40
+ setup do
41
+ activate_authlogic
42
+ login_as @quentin
43
+ end
44
+
45
+ context 'render my index page' do
46
+ setup do
47
+ get :index, :user_id => @quentin.to_param
48
+ end
49
+ should_respond_with :success
50
+ should_render_template :index
51
+ end
52
+
53
+ context "render another user's friend page" do
54
+ setup do
55
+ get :index, :user_id => @aaron.to_param
56
+ end
57
+ should_respond_with :success
58
+ should_render_template :index
59
+ end
60
+
61
+ context "make a follower (same as send friend request)" do
62
+ setup do
63
+ Friend.destroy_all
64
+ post :create, { :id => @aaron.to_param, :format=>'js' }
65
+ end
66
+ should_respond_with :success
67
+ should_not_set_the_flash
68
+ should "setup relationship" do
69
+ @quentin.reload
70
+ @aaron.reload
71
+ assert !@quentin.friend_of?(@aaron)
72
+ assert @quentin.following?(@aaron)
73
+ assert @aaron.followed_by?(@quentin)
74
+ end
75
+ end
76
+
77
+ context "make a friendship" do
78
+ setup do
79
+ Friend.destroy_all
80
+ Friend.make_friends @quentin, @aaron
81
+ post :create, { :id => @aaron.to_param, :format=>'js'}
82
+ end
83
+ should_respond_with :success
84
+ should_not_set_the_flash
85
+ should "setup friend relationship" do
86
+ @quentin.reload
87
+ @aaron.reload
88
+ assert @quentin.friend_of?(@aaron)
89
+ assert !@quentin.followed_by?(@aaron)
90
+ assert @aaron.friend_of?(@quentin)
91
+ assert !@aaron.followed_by?(@quentin)
92
+ end
93
+ end
94
+
95
+ context "error while trying to make an invalid friendship" do
96
+ setup do
97
+ Friend.destroy_all
98
+ post :create, { :id => @quentin.to_param, :format => 'js' }
99
+ end
100
+ should_respond_with :success
101
+ should_not_set_the_flash
102
+ should "not create friendship" do
103
+ @quentin.reload
104
+ @aaron.reload
105
+ end
106
+ end
107
+
108
+ context "Following allowed" do
109
+ setup do
110
+ @temp_allow_following = GlobalConfig.allow_following
111
+ GlobalConfig.allow_following = true
112
+ Friend.destroy_all
113
+ @aaron.follow(@quentin)
114
+ @quentin.become_friends_with(@aaron)
115
+ end
116
+ teardown do
117
+ GlobalConfig.allow_following = @temp_allow_following
118
+ end
119
+ context 'js request' do
120
+ setup do
121
+ delete :destroy, { :user_id => @quentin.to_param, :id => @aaron.to_param, :format => 'js'}
122
+ end
123
+ should_respond_with :success
124
+ should "stop being friends" do
125
+ @quentin.reload
126
+ @aaron.reload
127
+ assert !@quentin.friend_of?(@aaron)
128
+ assert !@quentin.following?(@aaron)
129
+ assert @quentin.followed_by?(@aaron)
130
+ end
131
+ end
132
+ context 'html request' do
133
+ setup do
134
+ delete :destroy, { :user_id => @quentin.to_param, :id => @aaron.to_param}
135
+ end
136
+ should_redirect_to("target's profile") { profile_path(@aaron) }
137
+ end
138
+ end
139
+
140
+ context 'Following not allowed' do
141
+ setup do
142
+ @temp_allow_following = GlobalConfig.allow_following
143
+ GlobalConfig.allow_following = false
144
+ Friend.destroy_all
145
+ @aaron.follow(@quentin)
146
+ @quentin.become_friends_with(@aaron)
147
+ end
148
+ teardown do
149
+ GlobalConfig.allow_following = @temp_allow_following
150
+ end
151
+ context 'js request' do
152
+ setup do
153
+ delete :destroy, { :user_id => @quentin.to_param, :id => @aaron.to_param, :format => 'js'}
154
+ end
155
+ should_respond_with :success
156
+ should "stop being friends and not allow following" do
157
+ @quentin.reload
158
+ @aaron.reload
159
+ assert !@aaron.followed_by?(@quentin)
160
+ assert !@quentin.followed_by?(@aaron)
161
+ assert !@aaron.friend_of?(@quentin)
162
+ assert !@quentin.friend_of?(@aaron)
163
+ assert !@aaron.following?(@quentin)
164
+ assert !@quentin.following?(@aaron)
165
+ end
166
+ end
167
+ end
168
+
169
+ end
170
+ end
171
+ end
File without changes
File without changes
@@ -0,0 +1,45 @@
1
+ module MuckControllerMacros
2
+
3
+ def should_require_login(*args)
4
+ args = Hash[*args]
5
+ login_url = args.delete :login_url
6
+ args.each do |action, verb|
7
+ should "Require login for '#{action}' action" do
8
+ send(verb, action)
9
+ assert_redirected_to(login_url)
10
+ end
11
+ end
12
+ end
13
+
14
+ def should_require_role(role, redirect_url, *actions)
15
+ actions.each do |action|
16
+ should "require role for '#{action}' action" do
17
+ get(action)
18
+ ensure_flash(/permission/i)
19
+ assert_response :redirect
20
+ end
21
+ end
22
+ end
23
+
24
+ #from: http://blog.internautdesign.com/2008/9/11/more-on-custom-shoulda-macros-scoping-of-instance-variables
25
+ def should_not_allow action, object, url= "/login", msg=nil
26
+ msg ||= "a #{object.class.to_s.downcase}"
27
+ should "not be able to #{action} #{msg}" do
28
+ object = eval(object, self.send(:binding), __FILE__, __LINE__)
29
+ get action, :id => object.id
30
+ assert_redirected_to url
31
+ end
32
+ end
33
+
34
+ def should_allow action, object, msg=nil
35
+ msg ||= "a #{object.class.to_s.downcase}"
36
+ should "be able to #{action} #{msg}" do
37
+ object = eval(object, self.send(:binding), __FILE__, __LINE__)
38
+ get action, :id => object.id
39
+ assert_response :success
40
+ end
41
+ end
42
+
43
+ end
44
+
45
+ ActionController::TestCase.extend(MuckControllerMacros)
@@ -0,0 +1,32 @@
1
+ module ShouldaFormMacros
2
+ def self.should_have_form(opts)
3
+ model = self.name.gsub(/ControllerTest$/, '').singularize.downcase
4
+ model = model[model.rindex('::')+2..model.size] if model.include?('::')
5
+ http_method, hidden_http_method = form_http_method opts[:method]
6
+ should "have a #{model} form" do
7
+ assert_select "form[action=?][method=#{http_method}]", eval(opts[:action]) do
8
+ if hidden_http_method
9
+ assert_select "input[type=hidden][name=_method][value=#{hidden_http_method}]"
10
+ end
11
+ opts[:fields].each do |attribute, type|
12
+ attribute = attribute.is_a?(Symbol) ? "#{model}[#{attribute.to_s}]" : attribute
13
+ assert_select "input[type=#{type.to_s}][name=?]", attribute
14
+ end
15
+ assert_select "input[type=submit]"
16
+ end
17
+ end
18
+ end
19
+
20
+ def self.form_http_method(http_method)
21
+ http_method = http_method.nil? ? 'post' : http_method.to_s
22
+ if http_method == "post" || http_method == "get"
23
+ return http_method, nil
24
+ else
25
+ return "post", http_method
26
+ end
27
+ end
28
+ end
29
+
30
+ class ActiveSupport::TestCase
31
+ extend ShouldaFormMacros
32
+ end