cms-lite 0.3.3 → 0.4.0

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 (268) hide show
  1. data/.gitignore +5 -0
  2. data/{README.markdown → README.rdoc} +18 -30
  3. data/Rakefile +20 -3
  4. data/VERSION +1 -1
  5. data/app/controllers/cms_lite_controller.rb +10 -7
  6. data/cms-lite.gemspec +305 -8
  7. data/lib/cms_lite.rb +48 -35
  8. data/rails/init.rb +21 -1
  9. data/test/rails_root/.gitignore +8 -0
  10. data/test/rails_root/.rake_tasks +103 -0
  11. data/test/rails_root/Capfile +3 -0
  12. data/test/rails_root/Rakefile +14 -0
  13. data/test/rails_root/app/controllers/application_controller.rb +22 -0
  14. data/test/rails_root/app/models/.keep +0 -0
  15. data/test/rails_root/app/models/user.rb +10 -0
  16. data/test/rails_root/app/models/user_session.rb +2 -0
  17. data/test/rails_root/app/views/layouts/default.html.erb +26 -0
  18. data/test/rails_root/app/views/layouts/test.html.erb +26 -0
  19. data/test/rails_root/config/amazon_s3.yml +14 -0
  20. data/test/rails_root/config/boot.rb +109 -0
  21. data/test/rails_root/config/database.yml +14 -0
  22. data/test/rails_root/config/environment.rb +27 -0
  23. data/test/rails_root/config/environments/development.rb +19 -0
  24. data/test/rails_root/config/environments/production.rb +1 -0
  25. data/test/rails_root/config/environments/test.rb +33 -0
  26. data/test/rails_root/config/global_config.yml +20 -0
  27. data/test/rails_root/config/initializers/cms_lite.rb +4 -0
  28. data/test/rails_root/config/initializers/inflections.rb +10 -0
  29. data/test/rails_root/config/initializers/mime_types.rb +5 -0
  30. data/test/rails_root/config/initializers/requires.rb +13 -0
  31. data/test/rails_root/config/initializers/session_store.rb +8 -0
  32. data/test/rails_root/config/routes.rb +9 -0
  33. data/test/rails_root/content/pages/en/demo/hi.html.erb +1 -0
  34. data/test/rails_root/content/pages/en/open/hello.html.erb +1 -0
  35. data/test/rails_root/content/protected-pages/en/demo/hi.html.erb +1 -0
  36. data/test/rails_root/content/protected-pages/en/protected/safe-hello.html.erb +1 -0
  37. data/test/rails_root/db/.keep +0 -0
  38. data/test/rails_root/db/migrate/20090320174818_create_muck_permissions_and_roles.rb +16 -0
  39. data/test/rails_root/db/migrate/20090402234137_create_languages.rb +18 -0
  40. data/test/rails_root/db/migrate/20090426041056_create_countries.rb +15 -0
  41. data/test/rails_root/db/migrate/20090426041103_create_states.rb +18 -0
  42. data/test/rails_root/db/migrate/20090530170040_create_themes.rb +11 -0
  43. data/test/rails_root/db/migrate/20090602041838_create_users.rb +39 -0
  44. data/test/rails_root/db/migrate/20090606153236_create_domain_themes.rb +13 -0
  45. data/test/rails_root/features/step_definitions/cms_steps.rb +19 -0
  46. data/test/rails_root/features/step_definitions/common_steps.rb +86 -0
  47. data/test/rails_root/features/step_definitions/webrat_steps.rb +109 -0
  48. data/test/rails_root/features/support/env.rb +16 -0
  49. data/test/rails_root/features/view_cms_pages.feature +36 -0
  50. data/test/rails_root/lib/tasks/cucumber.rake +7 -0
  51. data/test/rails_root/public/.htaccess +40 -0
  52. data/test/rails_root/public/404.html +30 -0
  53. data/test/rails_root/public/422.html +30 -0
  54. data/test/rails_root/public/500.html +30 -0
  55. data/test/rails_root/public/dispatch.rb +10 -0
  56. data/test/rails_root/public/favicon.ico +0 -0
  57. data/test/rails_root/public/images/arrow_left.gif +0 -0
  58. data/test/rails_root/public/images/arrow_right.gif +0 -0
  59. data/test/rails_root/public/images/blue/preview.gif +0 -0
  60. data/test/rails_root/public/images/fancybox/fancy_closebox.png +0 -0
  61. data/test/rails_root/public/images/fancybox/fancy_left.png +0 -0
  62. data/test/rails_root/public/images/fancybox/fancy_progress.png +0 -0
  63. data/test/rails_root/public/images/fancybox/fancy_right.png +0 -0
  64. data/test/rails_root/public/images/fancybox/fancy_shadow_e.png +0 -0
  65. data/test/rails_root/public/images/fancybox/fancy_shadow_n.png +0 -0
  66. data/test/rails_root/public/images/fancybox/fancy_shadow_ne.png +0 -0
  67. data/test/rails_root/public/images/fancybox/fancy_shadow_nw.png +0 -0
  68. data/test/rails_root/public/images/fancybox/fancy_shadow_s.png +0 -0
  69. data/test/rails_root/public/images/fancybox/fancy_shadow_se.png +0 -0
  70. data/test/rails_root/public/images/fancybox/fancy_shadow_sw.png +0 -0
  71. data/test/rails_root/public/images/fancybox/fancy_shadow_w.png +0 -0
  72. data/test/rails_root/public/images/fancybox/fancy_title_left.png +0 -0
  73. data/test/rails_root/public/images/fancybox/fancy_title_main.png +0 -0
  74. data/test/rails_root/public/images/fancybox/fancy_title_right.png +0 -0
  75. data/test/rails_root/public/images/icons/accept.png +0 -0
  76. data/test/rails_root/public/images/icons/add.png +0 -0
  77. data/test/rails_root/public/images/icons/delete.png +0 -0
  78. data/test/rails_root/public/images/icons/vote.png +0 -0
  79. data/test/rails_root/public/images/kjh/preview.gif +0 -0
  80. data/test/rails_root/public/images/kjy/preview.gif +0 -0
  81. data/test/rails_root/public/images/loading.gif +0 -0
  82. data/test/rails_root/public/images/profile_default.jpg +0 -0
  83. data/test/rails_root/public/images/rails.png +0 -0
  84. data/test/rails_root/public/images/red/preview.gif +0 -0
  85. data/test/rails_root/public/images/spinner.gif +0 -0
  86. data/test/rails_root/public/images/sprites.png +0 -0
  87. data/test/rails_root/public/javascripts/application.js +2 -0
  88. data/test/rails_root/public/javascripts/builder.js +136 -0
  89. data/test/rails_root/public/javascripts/controls.js +963 -0
  90. data/test/rails_root/public/javascripts/dragdrop.js +972 -0
  91. data/test/rails_root/public/javascripts/effects.js +1120 -0
  92. data/test/rails_root/public/javascripts/fancyzoom.min.js +1 -0
  93. data/test/rails_root/public/javascripts/jquery/jquery-ui.js +273 -0
  94. data/test/rails_root/public/javascripts/jquery/jquery.easing.js +1 -0
  95. data/test/rails_root/public/javascripts/jquery/jquery.fancybox.js +9 -0
  96. data/test/rails_root/public/javascripts/jquery/jquery.form.js +637 -0
  97. data/test/rails_root/public/javascripts/jquery/jquery.jgrowl.js +2 -0
  98. data/test/rails_root/public/javascripts/jquery/jquery.js +19 -0
  99. data/test/rails_root/public/javascripts/jquery/jquery.tips.js +69 -0
  100. data/test/rails_root/public/javascripts/muck.js +80 -0
  101. data/test/rails_root/public/javascripts/prototype.js +4225 -0
  102. data/test/rails_root/public/javascripts/scriptaculous.js +58 -0
  103. data/test/rails_root/public/javascripts/slider.js +277 -0
  104. data/test/rails_root/public/javascripts/sound.js +60 -0
  105. data/test/rails_root/public/robots.txt +1 -0
  106. data/test/rails_root/public/stylesheets/.keep +0 -0
  107. data/test/rails_root/public/stylesheets/admin.css +12 -0
  108. data/test/rails_root/public/stylesheets/blue.css +1 -0
  109. data/test/rails_root/public/stylesheets/blueprint/ie.css +26 -0
  110. data/test/rails_root/public/stylesheets/blueprint/liquid_screen.css +203 -0
  111. data/test/rails_root/public/stylesheets/blueprint/plugins/buttons/icons/cross.png +0 -0
  112. data/test/rails_root/public/stylesheets/blueprint/plugins/buttons/icons/key.png +0 -0
  113. data/test/rails_root/public/stylesheets/blueprint/plugins/buttons/icons/tick.png +0 -0
  114. data/test/rails_root/public/stylesheets/blueprint/plugins/buttons/readme.txt +32 -0
  115. data/test/rails_root/public/stylesheets/blueprint/plugins/buttons/screen.css +97 -0
  116. data/test/rails_root/public/stylesheets/blueprint/plugins/fancy-type/readme.txt +14 -0
  117. data/test/rails_root/public/stylesheets/blueprint/plugins/fancy-type/screen.css +71 -0
  118. data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/icons/doc.png +0 -0
  119. data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/icons/email.png +0 -0
  120. data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/icons/external.png +0 -0
  121. data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/icons/feed.png +0 -0
  122. data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/icons/im.png +0 -0
  123. data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/icons/pdf.png +0 -0
  124. data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/icons/visited.png +0 -0
  125. data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/icons/xls.png +0 -0
  126. data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/readme.txt +18 -0
  127. data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/screen.css +40 -0
  128. data/test/rails_root/public/stylesheets/blueprint/plugins/liquid/liquid.css +134 -0
  129. data/test/rails_root/public/stylesheets/blueprint/plugins/liquid/src/liquid.css +197 -0
  130. data/test/rails_root/public/stylesheets/blueprint/plugins/rtl/readme.txt +10 -0
  131. data/test/rails_root/public/stylesheets/blueprint/plugins/rtl/screen.css +109 -0
  132. data/test/rails_root/public/stylesheets/blueprint/print.css +30 -0
  133. data/test/rails_root/public/stylesheets/blueprint/screen.css +251 -0
  134. data/test/rails_root/public/stylesheets/blueprint/sprite.css +1 -0
  135. data/test/rails_root/public/stylesheets/blueprint/src/forms.css +49 -0
  136. data/test/rails_root/public/stylesheets/blueprint/src/grid.css +213 -0
  137. data/test/rails_root/public/stylesheets/blueprint/src/grid.png +0 -0
  138. data/test/rails_root/public/stylesheets/blueprint/src/ie.css +59 -0
  139. data/test/rails_root/public/stylesheets/blueprint/src/print.css +85 -0
  140. data/test/rails_root/public/stylesheets/blueprint/src/reset.css +38 -0
  141. data/test/rails_root/public/stylesheets/blueprint/src/typography.css +105 -0
  142. data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-bg_diagonals-small_0_aaaaaa_40x40.png +0 -0
  143. data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-bg_diagonals-thick_15_444444_40x40.png +0 -0
  144. data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-bg_glass_100_f0f0f0_1x400.png +0 -0
  145. data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-bg_glass_50_99c2ff_1x400.png +0 -0
  146. data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-bg_glass_55_fbf5d0_1x400.png +0 -0
  147. data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-bg_glass_80_e6e6e6_1x400.png +0 -0
  148. data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  149. data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-bg_highlight-hard_100_f9f9f9_1x100.png +0 -0
  150. data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-bg_highlight-soft_100_e7eef3_1x100.png +0 -0
  151. data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-icons_222222_256x240.png +0 -0
  152. data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-icons_2694e8_256x240.png +0 -0
  153. data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-icons_2e83ff_256x240.png +0 -0
  154. data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-icons_72a7cf_256x240.png +0 -0
  155. data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-icons_888888_256x240.png +0 -0
  156. data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-icons_cd0a0a_256x240.png +0 -0
  157. data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-icons_ffffff_256x240.png +0 -0
  158. data/test/rails_root/public/stylesheets/jquery/cupertino/jquery-ui-1.7.1.custom.css +404 -0
  159. data/test/rails_root/public/stylesheets/jquery/jquery.fancybox.css +44 -0
  160. data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  161. data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-bg_flat_55_fbec88_40x100.png +0 -0
  162. data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png +0 -0
  163. data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-bg_glass_85_dfeffc_1x400.png +0 -0
  164. data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  165. data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png +0 -0
  166. data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png +0 -0
  167. data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png +0 -0
  168. data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-icons_217bc0_256x240.png +0 -0
  169. data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-icons_2e83ff_256x240.png +0 -0
  170. data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-icons_469bdd_256x240.png +0 -0
  171. data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-icons_6da8d5_256x240.png +0 -0
  172. data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-icons_cd0a0a_256x240.png +0 -0
  173. data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-icons_d8e7f3_256x240.png +0 -0
  174. data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-icons_f9bd01_256x240.png +0 -0
  175. data/test/rails_root/public/stylesheets/jquery/redmond/jquery-ui-1.7.1.custom.css +404 -0
  176. data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  177. data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  178. data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  179. data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  180. data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  181. data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  182. data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  183. data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  184. data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-icons_222222_256x240.png +0 -0
  185. data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  186. data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-icons_454545_256x240.png +0 -0
  187. data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-icons_888888_256x240.png +0 -0
  188. data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  189. data/test/rails_root/public/stylesheets/jquery/smoothness/jquery-ui-1.7.1.custom.css +404 -0
  190. data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  191. data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  192. data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-bg_flat_10_000000_40x100.png +0 -0
  193. data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  194. data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  195. data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  196. data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  197. data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  198. data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  199. data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-icons_222222_256x240.png +0 -0
  200. data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-icons_228ef1_256x240.png +0 -0
  201. data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-icons_ef8c08_256x240.png +0 -0
  202. data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-icons_ffd27a_256x240.png +0 -0
  203. data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-icons_ffffff_256x240.png +0 -0
  204. data/test/rails_root/public/stylesheets/jquery/ui-lightness/jquery-ui-1.7.1.custom.css +404 -0
  205. data/test/rails_root/public/stylesheets/kjh.css +1 -0
  206. data/test/rails_root/public/stylesheets/kjy.css +1 -0
  207. data/test/rails_root/public/stylesheets/red.css +1 -0
  208. data/test/rails_root/public/stylesheets/reset.css +0 -0
  209. data/test/rails_root/public/stylesheets/styles.css +83 -0
  210. data/test/rails_root/public/stylesheets/themes/blue/styles.css +1 -0
  211. data/test/rails_root/public/stylesheets/themes/red/styles.css +1 -0
  212. data/test/rails_root/script/about +3 -0
  213. data/test/rails_root/script/breakpointer +3 -0
  214. data/test/rails_root/script/console +3 -0
  215. data/test/rails_root/script/create_project.rb +52 -0
  216. data/test/rails_root/script/cucumber +7 -0
  217. data/test/rails_root/script/dbconsole +3 -0
  218. data/test/rails_root/script/destroy +3 -0
  219. data/test/rails_root/script/generate +3 -0
  220. data/test/rails_root/script/performance/benchmarker +3 -0
  221. data/test/rails_root/script/performance/profiler +3 -0
  222. data/test/rails_root/script/performance/request +3 -0
  223. data/test/rails_root/script/plugin +3 -0
  224. data/test/rails_root/script/process/inspector +3 -0
  225. data/test/rails_root/script/process/reaper +3 -0
  226. data/test/rails_root/script/process/spawner +3 -0
  227. data/test/rails_root/script/runner +3 -0
  228. data/test/rails_root/script/server +3 -0
  229. data/test/rails_root/test/factories.rb +45 -0
  230. data/test/rails_root/test/functional/.keep +0 -0
  231. data/test/rails_root/test/functional/cms_lite_controller_test.rb +35 -0
  232. data/test/rails_root/test/mocks/development/.keep +0 -0
  233. data/test/rails_root/test/mocks/test/.keep +0 -0
  234. data/test/rails_root/test/shoulda_macros/controller.rb +62 -0
  235. data/test/rails_root/test/shoulda_macros/models.rb +50 -0
  236. data/test/rails_root/test/test_helper.rb +38 -0
  237. data/test/rails_root/test/unit/.keep +0 -0
  238. data/test/rails_root/test/unit/cms_lite_test.rb +84 -0
  239. data/test/rails_root/themes/blue/content/pages/en/blue/blue.html.erb +1 -0
  240. data/test/rails_root/themes/blue/content/pages/en/open/blue.html.erb +1 -0
  241. data/test/rails_root/themes/blue/description.txt +1 -0
  242. data/test/rails_root/themes/blue/locales/en.yml +2 -0
  243. data/test/rails_root/themes/blue/views/layouts/default.html.erb +17 -0
  244. data/test/rails_root/themes/blue/views/layouts/global/_footer.html.erb +3 -0
  245. data/test/rails_root/themes/blue/views/layouts/global/_head.html.erb +8 -0
  246. data/test/rails_root/themes/blue/views/layouts/global/_header.html.erb +3 -0
  247. data/test/rails_root/themes/red/content/protected-pages/en/red/red.html.erb +1 -0
  248. data/test/rails_root/themes/red/description.txt +1 -0
  249. data/test/rails_root/themes/red/locales/en.yml +2 -0
  250. data/test/rails_root/themes/red/views/layouts/default.html.erb +17 -0
  251. data/test/rails_root/themes/red/views/layouts/global/_footer.html.erb +3 -0
  252. data/test/rails_root/themes/red/views/layouts/global/_head.html.erb +8 -0
  253. data/test/rails_root/themes/red/views/layouts/global/_header.html.erb +3 -0
  254. data/test/rails_root/vendor/plugins/ssl_requirement/README +43 -0
  255. data/test/rails_root/vendor/plugins/ssl_requirement/lib/ssl_requirement.rb +62 -0
  256. data/test/rails_root/vendor/plugins/ssl_requirement/test/ssl_requirement_test.rb +132 -0
  257. data/test/rails_root/vendor/plugins/validation_reflection/CHANGELOG +24 -0
  258. data/test/rails_root/vendor/plugins/validation_reflection/LICENSE +20 -0
  259. data/test/rails_root/vendor/plugins/validation_reflection/README +64 -0
  260. data/test/rails_root/vendor/plugins/validation_reflection/Rakefile +22 -0
  261. data/test/rails_root/vendor/plugins/validation_reflection/about.yml +7 -0
  262. data/test/rails_root/vendor/plugins/validation_reflection/init.rb +8 -0
  263. data/test/rails_root/vendor/plugins/validation_reflection/lib/boiler_plate/validation_reflection.rb +129 -0
  264. data/test/rails_root/vendor/plugins/validation_reflection/test/test_helper.rb +36 -0
  265. data/test/rails_root/vendor/plugins/validation_reflection/test/validation_reflection_test.rb +126 -0
  266. metadata +313 -10
  267. data/test/cms_lite_test.rb +0 -8
  268. data/test/test_helper.rb +0 -3
@@ -1,6 +1,7 @@
1
1
  require 'cms_lite/exceptions'
2
2
  require 'cms_lite/languages'
3
3
  require 'fileutils'
4
+ require 'babelphish'
4
5
 
5
6
  class CmsLite
6
7
  CONTENT_PATH = 'content'
@@ -18,16 +19,24 @@ class CmsLite
18
19
  end
19
20
 
20
21
  def cms_routes
21
- get_cms_routes(PAGES_PATH)
22
+ get_all_content_path_routes(PAGES_PATH)
22
23
  end
23
24
 
24
25
  def protected_cms_routes
25
- get_cms_routes(PROTECTED_PAGES_PATH)
26
+ get_all_content_path_routes(PROTECTED_PAGES_PATH)
26
27
  end
27
28
 
28
- def get_cms_routes(pages_path)
29
+ def get_all_content_path_routes(pages_path)
30
+ routes = []
31
+ content_paths.each do |path|
32
+ routes += get_cms_routes(path, pages_path)
33
+ end
34
+ routes
35
+ end
36
+
37
+ def get_cms_routes(content_path, pages_path)
29
38
  cms_routes = []
30
- cms_lite_page_path = File.join(RAILS_ROOT, CONTENT_PATH, pages_path)
39
+ cms_lite_page_path = File.join(RAILS_ROOT, content_path, pages_path)
31
40
  Dir.glob("#{cms_lite_page_path}/*").each do |localization_directory|
32
41
  if File.directory?(localization_directory)
33
42
  Dir.glob("#{localization_directory}/*").each do |content_item|
@@ -46,6 +55,40 @@ class CmsLite
46
55
  cms_routes
47
56
  end
48
57
 
58
+ def content_paths
59
+ @@content_paths ||= [CONTENT_PATH]
60
+ end
61
+
62
+ def append_content_path(path, reload_routes = true)
63
+ content_paths << path
64
+ ActionController::Routing::Routes.reload! if reload_routes
65
+ end
66
+
67
+ def prepend_content_path(path, reload_routes = true)
68
+ content_paths.unshift(path)
69
+ ActionController::Routing::Routes.reload! if reload_routes
70
+ end
71
+
72
+ def remove_content_path(path, reload_routes = true)
73
+ content_paths.delete(path)
74
+ ActionController::Routing::Routes.reload! if reload_routes
75
+ end
76
+
77
+ # This is a utitility method that makes sure the unprotected routes don't interfere with the proctected routes
78
+ def check_routes
79
+ bad_routes = []
80
+ open_routes = cms_routes
81
+ protected_routes = protected_cms_routes
82
+ open_routes.each do |open_route|
83
+ protected_routes.each do |protected_route|
84
+ if open_route[:content_key] == protected_route[:content_key]
85
+ bad_routes << open_route
86
+ end
87
+ end
88
+ end
89
+ bad_routes
90
+ end
91
+
49
92
  def translate_pages(language = 'en')
50
93
  translate_and_write_pages(File.join(RAILS_ROOT, CONTENT_PATH, PAGES_PATH, language), language)
51
94
  translate_and_write_pages(File.join(RAILS_ROOT, CONTENT_PATH, PROTECTED_PAGES_PATH, language), language)
@@ -69,7 +112,7 @@ class CmsLite
69
112
  translated_filename = get_translated_file(page_path, to, from)
70
113
  return if File.exist?(translated_filename) # don't overwrite existing files
71
114
  text = IO.read(page_path)
72
- translated_text = translate(text, to, from)
115
+ translated_text = Babelphish::Translator.translate(text, to, from)
73
116
  translated_directory = File.dirname(translated_filename)
74
117
  FileUtils.mkdir_p(translated_directory)
75
118
  File.open(translated_filename, 'w') { |f| f.write(translated_text) }
@@ -81,36 +124,6 @@ class CmsLite
81
124
  segments[index] = to
82
125
  segments.join('/')
83
126
  end
84
-
85
- # from: http://ruby.geraldbauer.ca/google-translation-api.html
86
- def translate(text, to, from = 'en')
87
-
88
- return if to == from
89
-
90
- require 'cgi'
91
- require 'json'
92
- require 'net/http'
93
127
 
94
- base = 'http://ajax.googleapis.com/ajax/services/language/translate'
95
- # assemble query params
96
- params = {
97
- :langpair => "#{from}|#{to}",
98
- :q => text,
99
- :v => 1.0
100
- }
101
- query = params.map{ |k,v| "#{k}=#{CGI.escape(v.to_s)}" }.join('&')
102
- # send get request
103
- response = Net::HTTP.get_response( URI.parse( "#{base}?#{query}" ) )
104
- json = JSON.parse( response.body )
105
- if json['responseStatus'] == 200
106
- json['responseData']['translatedText']
107
- else
108
- puts response
109
- puts to
110
- puts from
111
- raise StandardError, response['responseDetails']
112
- end
113
- end
114
-
115
128
  end
116
129
  end
@@ -1,2 +1,22 @@
1
1
  require 'cms_lite'
2
- require 'cms_lite/initialize_routes'
2
+ require 'cms_lite/initialize_routes'
3
+
4
+ if ENV["RAILS_ENV"] != "test"
5
+ bad_routes = CmsLite.check_routes
6
+ if !bad_routes.empty?
7
+ STDERR.puts "********************************************************"
8
+ STDERR.puts "CMS LITE WARNING"
9
+ STDERR.puts "You currently have the same directory in your unprotected and protected directories."
10
+ STDERR.puts "Only the files found in the unprotected directories will be available."
11
+ STDERR.puts "Be sure that the same directory is not present under both locations. For example, "
12
+ STDERR.puts "if your files are in the default location make sure that you don't have:"
13
+ STDERR.puts "content/pages/en/demo/hi.html.erb"
14
+ STDERR.puts "and"
15
+ STDERR.puts "content/protected-pages/en/demo/hi.html.erb"
16
+ STDERR.puts "Problem directories:"
17
+ bad_routes.each do |route|
18
+ STDERR.puts "#{route[:content_key]}"
19
+ end
20
+ STDERR.puts "********************************************************"
21
+ end
22
+ end
@@ -0,0 +1,8 @@
1
+ log/*
2
+ tmp/**/*
3
+ db/schema.rb
4
+ db/*.sqlite3
5
+ public/system
6
+ *.DS_Store
7
+ coverage/*
8
+ *.swp
@@ -0,0 +1,103 @@
1
+ db:abort_if_pending_migrations
2
+ db:bootstrap
3
+ db:bootstrap:load
4
+ db:charset
5
+ db:collation
6
+ db:create
7
+ db:create:all
8
+ db:drop
9
+ db:drop:all
10
+ db:fixtures:identify
11
+ db:fixtures:load
12
+ db:migrate
13
+ db:migrate:down
14
+ db:migrate:redo
15
+ db:migrate:reset
16
+ db:migrate:up
17
+ db:reset
18
+ db:rollback
19
+ db:schema:dump
20
+ db:schema:load
21
+ db:sessions:clear
22
+ db:sessions:create
23
+ db:structure:dump
24
+ db:test:clone
25
+ db:test:clone_structure
26
+ db:test:prepare
27
+ db:test:purge
28
+ db:version
29
+ deploy
30
+ doc:app
31
+ doc:clobber_app
32
+ doc:clobber_plugins
33
+ doc:clobber_rails
34
+ doc:plugins
35
+ doc:rails
36
+ doc:reapp
37
+ doc:rerails
38
+ gems
39
+ gems:build
40
+ gems:install
41
+ gems:unpack
42
+ gems:unpack:dependencies
43
+ git:branch:production
44
+ git:diff:production
45
+ git:diff:staging
46
+ git:pull:template
47
+ git:push:production
48
+ git:push:staging
49
+ log:clear
50
+ notes
51
+ notes:fixme
52
+ notes:optimize
53
+ notes:todo
54
+ rails:freeze:edge
55
+ rails:freeze:gems
56
+ rails:unfreeze
57
+ rails:update
58
+ rails:update:configs
59
+ rails:update:javascripts
60
+ rails:update:scripts
61
+ remote:cleanup
62
+ remote:cold_deploy
63
+ remote:deploy
64
+ remote:deploy_with_migrations
65
+ remote:diff_from_last_deploy
66
+ remote:disable_web
67
+ remote:enable_web
68
+ remote:exec
69
+ remote:invoke
70
+ remote:migrate
71
+ remote:restart
72
+ remote:rollback
73
+ remote:rollback_code
74
+ remote:setup
75
+ remote:shell
76
+ remote:show_tasks
77
+ remote:spinner
78
+ remote:symlink
79
+ remote:update
80
+ remote:update_code
81
+ remote:update_current
82
+ rollback
83
+ routes
84
+ secret
85
+ shoulda:from_yaml
86
+ shoulda:list
87
+ stats
88
+ test
89
+ test:functionals
90
+ test:integration
91
+ test:plugins
92
+ test:recent
93
+ test:uncommitted
94
+ test:units
95
+ time:zones:all
96
+ time:zones:local
97
+ time:zones:us
98
+ tmp:cache:clear
99
+ tmp:clear
100
+ tmp:create
101
+ tmp:pids:clear
102
+ tmp:sessions:clear
103
+ tmp:sockets:clear
@@ -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,14 @@
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'
11
+
12
+ require 'disguise/tasks'
13
+ require 'muck_engine/tasks'
14
+ require 'muck_users/tasks'
@@ -0,0 +1,22 @@
1
+ class ApplicationController < ActionController::Base
2
+ include SslRequirement
3
+ helper :all
4
+ protect_from_forgery
5
+
6
+ protected
7
+
8
+ # called by Admin::Muck::BaseController to check whether or not the
9
+ # user should have access to the admin UI
10
+ def admin_access_required
11
+ access_denied unless admin?
12
+ end
13
+
14
+ # only require ssl if we are in production
15
+ def ssl_required?
16
+ return ENV['SSL'] == 'on' ? true : false if defined? ENV['SSL']
17
+ return false if local_request?
18
+ return false if RAILS_ENV == 'test'
19
+ ((self.class.read_inheritable_attribute(:ssl_required_actions) || []).include?(action_name.to_sym)) && (RAILS_ENV == 'production' || RAILS_ENV == 'staging')
20
+ end
21
+
22
+ end
File without changes
@@ -0,0 +1,10 @@
1
+ class User < ActiveRecord::Base
2
+ acts_as_authentic do |c|
3
+ c.crypto_provider = Authlogic::CryptoProviders::BCrypt
4
+ end
5
+ acts_as_muck_user
6
+
7
+ def display_name
8
+ 'test guy'
9
+ end
10
+ end
@@ -0,0 +1,2 @@
1
+ class UserSession < Authlogic::Session::Base
2
+ end
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
3
+ <head>
4
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
5
+ <title>home</title>
6
+ <%= stylesheet_link_tag 'application', :cache=>true -%>
7
+ <%= javascript_include_tag 'application' -%>
8
+ <%= javascript_tag %[const AUTH_TOKEN = #{form_authenticity_token.inspect};] if protect_against_forgery? -%>
9
+ <%= yield :head -%>
10
+ <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
11
+ </head>
12
+ <body>
13
+ <div id="header">
14
+ <div id="top-navigation">
15
+ </div>
16
+ <div class="clear"></div>
17
+ </div>
18
+ <div id="main">
19
+ <div id="content">
20
+ <%= yield %>
21
+ </div>
22
+ </div>
23
+ <div id="footer">
24
+ </div>
25
+ </body>
26
+ </html>
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
3
+ <head>
4
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
5
+ <title>test</title>
6
+ <%= stylesheet_link_tag 'application', :cache=>true -%>
7
+ <%= javascript_include_tag 'application' -%>
8
+ <%= javascript_tag %[const AUTH_TOKEN = #{form_authenticity_token.inspect};] if protect_against_forgery? -%>
9
+ <%= yield :head -%>
10
+ <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
11
+ </head>
12
+ <body>
13
+ <div id="header">
14
+ <div id="top-navigation">
15
+ </div>
16
+ <div class="clear"></div>
17
+ </div>
18
+ <div id="main">
19
+ <div id="content">
20
+ <%= yield %>
21
+ </div>
22
+ </div>
23
+ <div id="footer">
24
+ </div>
25
+ </body>
26
+ </html>
@@ -0,0 +1,14 @@
1
+ development:
2
+ bucket_name: appname_development
3
+ access_key_id:
4
+ secret_access_key:
5
+
6
+ test:
7
+ bucket_name: appname_test
8
+ access_key_id:
9
+ secret_access_key:
10
+
11
+ production:
12
+ bucket_name: appname
13
+ access_key_id:
14
+ secret_access_key:
@@ -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!