trusty-cms 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (388) hide show
  1. checksums.yaml +15 -0
  2. data/.gitignore +23 -0
  3. data/CHANGELOG.md +754 -0
  4. data/CONTRIBUTORS.md +263 -0
  5. data/Gemfile +40 -0
  6. data/Gemfile.lock +177 -0
  7. data/INSTALL.md +10 -0
  8. data/LICENSE.md +21 -0
  9. data/README.md +85 -0
  10. data/Rakefile +7 -0
  11. data/app/controllers/admin/configuration_controller.rb +50 -0
  12. data/app/controllers/admin/extensions_controller.rb +11 -0
  13. data/app/controllers/admin/layouts_controller.rb +8 -0
  14. data/app/controllers/admin/page_fields_controller.rb +9 -0
  15. data/app/controllers/admin/page_parts_controller.rb +9 -0
  16. data/app/controllers/admin/pages_controller.rb +89 -0
  17. data/app/controllers/admin/preferences_controller.rb +46 -0
  18. data/app/controllers/admin/references_controller.rb +7 -0
  19. data/app/controllers/admin/resource_controller.rb +245 -0
  20. data/app/controllers/admin/users_controller.rb +40 -0
  21. data/app/controllers/admin/welcome_controller.rb +48 -0
  22. data/app/controllers/application_controller.rb +114 -0
  23. data/app/controllers/site_controller.rb +97 -0
  24. data/app/helpers/admin/configuration_helper.rb +80 -0
  25. data/app/helpers/admin/export_helper.rb +2 -0
  26. data/app/helpers/admin/extensions_helper.rb +2 -0
  27. data/app/helpers/admin/layouts_helper.rb +21 -0
  28. data/app/helpers/admin/node_helper.rb +96 -0
  29. data/app/helpers/admin/pages_helper.rb +117 -0
  30. data/app/helpers/admin/preferences_helper.rb +3 -0
  31. data/app/helpers/admin/references_helper.rb +46 -0
  32. data/app/helpers/admin/regions_helper.rb +28 -0
  33. data/app/helpers/admin/resource_helper.rb +2 -0
  34. data/app/helpers/admin/users_helper.rb +8 -0
  35. data/app/helpers/admin/welcome_helper.rb +2 -0
  36. data/app/helpers/application_helper.rb +241 -0
  37. data/app/helpers/site_helper.rb +2 -0
  38. data/app/models/deprecated_tags.rb +42 -0
  39. data/app/models/file_not_found_page.rb +32 -0
  40. data/app/models/layout.rb +15 -0
  41. data/app/models/menu_renderer.rb +140 -0
  42. data/app/models/page.rb +377 -0
  43. data/app/models/page_context.rb +53 -0
  44. data/app/models/page_field.rb +3 -0
  45. data/app/models/page_part.rb +20 -0
  46. data/app/models/standard_tags.rb +1318 -0
  47. data/app/models/status.rb +41 -0
  48. data/app/models/text_filter.rb +36 -0
  49. data/app/models/trusty_cms/config.rb +313 -0
  50. data/app/models/trusty_cms/page_response_cache_director.rb +43 -0
  51. data/app/models/user.rb +96 -0
  52. data/app/models/user_action_observer.rb +25 -0
  53. data/app/views/admin/configuration/edit.html.haml +38 -0
  54. data/app/views/admin/configuration/show.html.haml +58 -0
  55. data/app/views/admin/extensions/index.html.haml +41 -0
  56. data/app/views/admin/layouts/_form.html.haml +39 -0
  57. data/app/views/admin/layouts/edit.html.haml +9 -0
  58. data/app/views/admin/layouts/index.html.haml +35 -0
  59. data/app/views/admin/layouts/new.html.haml +7 -0
  60. data/app/views/admin/layouts/remove.html.haml +16 -0
  61. data/app/views/admin/page_fields/_page_field.html.haml +12 -0
  62. data/app/views/admin/page_parts/_page_part.html.haml +18 -0
  63. data/app/views/admin/pages/_fields.html.haml +71 -0
  64. data/app/views/admin/pages/_meta_row.html.haml +8 -0
  65. data/app/views/admin/pages/_node.html.haml +26 -0
  66. data/app/views/admin/pages/_popups.html.haml +27 -0
  67. data/app/views/admin/pages/children.html.haml +2 -0
  68. data/app/views/admin/pages/edit.html.haml +12 -0
  69. data/app/views/admin/pages/index.html.haml +26 -0
  70. data/app/views/admin/pages/new.html.haml +10 -0
  71. data/app/views/admin/pages/remove.html.haml +18 -0
  72. data/app/views/admin/preferences/edit.html.haml +44 -0
  73. data/app/views/admin/references/_tag_reference.haml +3 -0
  74. data/app/views/admin/references/filters.haml +6 -0
  75. data/app/views/admin/references/tags.haml +30 -0
  76. data/app/views/admin/users/_avatar.html.haml +5 -0
  77. data/app/views/admin/users/_form.html.haml +53 -0
  78. data/app/views/admin/users/_password_fields.html.haml +18 -0
  79. data/app/views/admin/users/edit.html.haml +9 -0
  80. data/app/views/admin/users/index.html.haml +39 -0
  81. data/app/views/admin/users/new.html.haml +6 -0
  82. data/app/views/admin/users/remove.html.haml +16 -0
  83. data/app/views/admin/welcome/login.html.haml +23 -0
  84. data/app/views/layouts/application.html.haml +50 -0
  85. data/app/views/site/not_found.html.haml +3 -0
  86. data/bin/ci/before_script +15 -0
  87. data/bin/trusty_cms +53 -0
  88. data/config/application.rb +124 -0
  89. data/config/boot.rb +9 -0
  90. data/config/compass.config +15 -0
  91. data/config/database.db2.yml +20 -0
  92. data/config/database.mysql.yml +25 -0
  93. data/config/database.postgresql.yml +25 -0
  94. data/config/database.sqlite.yml +16 -0
  95. data/config/database.sqlserver.yml +20 -0
  96. data/config/environment.rb +5 -0
  97. data/config/environments/development.rb +19 -0
  98. data/config/environments/production.rb +27 -0
  99. data/config/environments/test.rb +35 -0
  100. data/config/initializers/active_record_extensions.rb +1 -0
  101. data/config/initializers/configuration_extensions.rb +0 -0
  102. data/config/initializers/haml.rb +2 -0
  103. data/config/initializers/object_extensions.rb +1 -0
  104. data/config/initializers/radiant_config.rb +16 -0
  105. data/config/initializers/rails_patch.rb +2 -0
  106. data/config/initializers/response_cache_timeout.rb +3 -0
  107. data/config/initializers/string_extensions.rb +1 -0
  108. data/config/initializers/symbol_extensions.rb +1 -0
  109. data/config/initializers/tmp.rb +2 -0
  110. data/config/locales/en.yml +230 -0
  111. data/config/locales/en_available_tags.yml +625 -0
  112. data/config/preinitializer.rb +18 -0
  113. data/config/routes.rb +30 -0
  114. data/db/migrate/001_create_radiant_tables.rb +75 -0
  115. data/db/migrate/002_insert_initial_data.rb +12 -0
  116. data/db/migrate/003_rename_behavior_column.rb +9 -0
  117. data/db/migrate/004_rename_filter_column.rb +11 -0
  118. data/db/migrate/005_add_virtual_column_to_page.rb +9 -0
  119. data/db/migrate/006_integer_columns_to_boolean.rb +36 -0
  120. data/db/migrate/007_remove_virtual_column_from_page.rb +9 -0
  121. data/db/migrate/008_add_virtual_column_to_page_again.rb +9 -0
  122. data/db/migrate/009_add_content_type_field_to_layout.rb +9 -0
  123. data/db/migrate/010_merge_behaviors_and_pages.rb +57 -0
  124. data/db/migrate/011_rename_type_column_on_page_to_class_name.rb +9 -0
  125. data/db/migrate/012_create_extension_meta.rb +13 -0
  126. data/db/migrate/013_add_notes_field_to_user.rb +9 -0
  127. data/db/migrate/014_rename_config_default_parts_key.rb +17 -0
  128. data/db/migrate/015_add_optimistic_locking.rb +15 -0
  129. data/db/migrate/016_add_sessions.rb +16 -0
  130. data/db/migrate/017_rename_created_by_updated_by_columns.rb +15 -0
  131. data/db/migrate/018_add_description_and_keywords_to_pages.rb +11 -0
  132. data/db/migrate/019_add_salt_to_users.rb +11 -0
  133. data/db/migrate/020_add_session_info_to_users.rb +11 -0
  134. data/db/migrate/021_remove_session_expire_from_users.rb +9 -0
  135. data/db/migrate/20081203140407_add_indexes.rb +19 -0
  136. data/db/migrate/20090226140109_add_user_language.rb +9 -0
  137. data/db/migrate/20090929164633_rename_developer_role_to_designer.rb +9 -0
  138. data/db/migrate/20091003095744_change_user_language_to_locale.rb +9 -0
  139. data/db/migrate/20100805154952_add_page_fields.rb +15 -0
  140. data/db/migrate/20100805155020_convert_page_metas.rb +24 -0
  141. data/db/migrate/20100810151922_add_field_name_index.rb +11 -0
  142. data/db/migrate/20110902203823_add_allowed_children_cache_to_pages.rb +13 -0
  143. data/db/migrate/20111016150725_extend_page_part_content_limit.rb +15 -0
  144. data/db/migrate/20120209231801_change_pages_allowed_children_cache_to_text.rb +11 -0
  145. data/db/schema.rb +128 -0
  146. data/lib/active_record_extensions/active_record_extensions.rb +27 -0
  147. data/lib/annotatable.rb +68 -0
  148. data/lib/configuration_extensions/configuration_extensions.rb +357 -0
  149. data/lib/generators/extension/USAGE +30 -0
  150. data/lib/generators/extension/extension_generator.rb +97 -0
  151. data/lib/generators/extension/templates/README.md +6 -0
  152. data/lib/generators/extension/templates/RSpecRakefile +109 -0
  153. data/lib/generators/extension/templates/Rakefile +25 -0
  154. data/lib/generators/extension/templates/cucumber.yml +1 -0
  155. data/lib/generators/extension/templates/cucumber_env.rb +11 -0
  156. data/lib/generators/extension/templates/cucumber_paths.rb +22 -0
  157. data/lib/generators/extension/templates/en.yml +3 -0
  158. data/lib/generators/extension/templates/extension.rb +21 -0
  159. data/lib/generators/extension/templates/functional_test.rb +15 -0
  160. data/lib/generators/extension/templates/gemspec.rb +29 -0
  161. data/lib/generators/extension/templates/lib.rb +8 -0
  162. data/lib/generators/extension/templates/migration.rb +9 -0
  163. data/lib/generators/extension/templates/radiant_config.rb +3 -0
  164. data/lib/generators/extension/templates/routes.rb +5 -0
  165. data/lib/generators/extension/templates/spec.opts +6 -0
  166. data/lib/generators/extension/templates/spec_helper.rb +42 -0
  167. data/lib/generators/extension/templates/tasks.rake +47 -0
  168. data/lib/generators/extension/templates/test_helper.rb +26 -0
  169. data/lib/generators/extension_controller/USAGE +36 -0
  170. data/lib/generators/extension_controller/extension_controller_generator.rb +84 -0
  171. data/lib/generators/extension_controller/templates/controller.rb +10 -0
  172. data/lib/generators/extension_controller/templates/controller_spec.rb +23 -0
  173. data/lib/generators/extension_controller/templates/functional_test.rb +11 -0
  174. data/lib/generators/extension_controller/templates/helper.rb +2 -0
  175. data/lib/generators/extension_controller/templates/helper_spec.rb +11 -0
  176. data/lib/generators/extension_controller/templates/helper_test.rb +4 -0
  177. data/lib/generators/extension_controller/templates/view.html.erb +2 -0
  178. data/lib/generators/extension_controller/templates/view_spec.rb +12 -0
  179. data/lib/generators/extension_mailer/USAGE +17 -0
  180. data/lib/generators/extension_mailer/extension_mailer_generator.rb +68 -0
  181. data/lib/generators/extension_mailer/templates/fixture.erb +3 -0
  182. data/lib/generators/extension_mailer/templates/mailer.rb +15 -0
  183. data/lib/generators/extension_mailer/templates/unit_test.rb +21 -0
  184. data/lib/generators/extension_mailer/templates/view.erb +3 -0
  185. data/lib/generators/extension_migration/USAGE +34 -0
  186. data/lib/generators/extension_migration/extension_migration_generator.rb +25 -0
  187. data/lib/generators/extension_migration/templates/migration.rb +11 -0
  188. data/lib/generators/extension_model/USAGE +35 -0
  189. data/lib/generators/extension_model/extension_model_generator.rb +68 -0
  190. data/lib/generators/extension_model/templates/fixtures.yml +19 -0
  191. data/lib/generators/extension_model/templates/migration.rb +16 -0
  192. data/lib/generators/extension_model/templates/model.rb +2 -0
  193. data/lib/generators/extension_model/templates/model_spec.rb +11 -0
  194. data/lib/generators/extension_model/templates/unit_test.rb +8 -0
  195. data/lib/generators/generator_base_extension.rb +16 -0
  196. data/lib/generators/instance/instance_generator.rb +148 -0
  197. data/lib/generators/instance/templates/databases/db2.yml +40 -0
  198. data/lib/generators/instance/templates/databases/mysql.yml +47 -0
  199. data/lib/generators/instance/templates/databases/postgresql.yml +44 -0
  200. data/lib/generators/instance/templates/databases/sqlite3.yml +16 -0
  201. data/lib/generators/instance/templates/databases/sqlserver.yml +21 -0
  202. data/lib/generators/instance/templates/instance_boot.rb +122 -0
  203. data/lib/generators/instance/templates/instance_config.ru +2 -0
  204. data/lib/generators/instance/templates/instance_environment.rb +83 -0
  205. data/lib/generators/instance/templates/instance_gemfile +81 -0
  206. data/lib/generators/instance/templates/instance_generate +6 -0
  207. data/lib/generators/instance/templates/instance_radiant_config.rb +16 -0
  208. data/lib/generators/instance/templates/instance_rakefile +3 -0
  209. data/lib/generators/instance/templates/instance_routes.rb +1 -0
  210. data/lib/generators/language_extension/USAGE +27 -0
  211. data/lib/generators/language_extension/language_extension_generator.rb +71 -0
  212. data/lib/generators/language_extension/templates/README +3 -0
  213. data/lib/generators/language_extension/templates/RSpecRakefile +123 -0
  214. data/lib/generators/language_extension/templates/Rakefile +25 -0
  215. data/lib/generators/language_extension/templates/available_tags.yml +553 -0
  216. data/lib/generators/language_extension/templates/cucumber.yml +1 -0
  217. data/lib/generators/language_extension/templates/cucumber_env.rb +16 -0
  218. data/lib/generators/language_extension/templates/cucumber_paths.rb +14 -0
  219. data/lib/generators/language_extension/templates/extension.rb +12 -0
  220. data/lib/generators/language_extension/templates/functional_test.rb +15 -0
  221. data/lib/generators/language_extension/templates/gemspec.rb +24 -0
  222. data/lib/generators/language_extension/templates/lang.yml +181 -0
  223. data/lib/generators/language_extension/templates/lib.rb +8 -0
  224. data/lib/generators/language_extension/templates/spec.opts +6 -0
  225. data/lib/generators/language_extension/templates/spec_helper.rb +36 -0
  226. data/lib/generators/language_extension/templates/tasks.rake +28 -0
  227. data/lib/generators/language_extension/templates/test_helper.rb +26 -0
  228. data/lib/inheritable_class_attributes.rb +65 -0
  229. data/lib/local_time.rb +6 -0
  230. data/lib/login_system.rb +132 -0
  231. data/lib/method_observer.rb +50 -0
  232. data/lib/object_extensions/object_extensions.rb +5 -0
  233. data/lib/simpleton.rb +21 -0
  234. data/lib/string_extensions/string_extensions.rb +25 -0
  235. data/lib/symbol_extensions/symbol_extensions.rb +5 -0
  236. data/lib/tasks/database.rake +85 -0
  237. data/lib/tasks/environments.rake +11 -0
  238. data/lib/tasks/extensions.rake +85 -0
  239. data/lib/tasks/framework.rake +255 -0
  240. data/lib/tasks/instance.rake +23 -0
  241. data/lib/tasks/prototype.rake +31 -0
  242. data/lib/tasks/radiant_config.rake +18 -0
  243. data/lib/tasks/release.rake +131 -0
  244. data/lib/tasks/translate.rake +59 -0
  245. data/lib/tasks/undefine.rake +28 -0
  246. data/lib/translation_support.rb +54 -0
  247. data/lib/trusty_cms/admin_ui/region_partials.rb +23 -0
  248. data/lib/trusty_cms/admin_ui/region_set.rb +35 -0
  249. data/lib/trusty_cms/admin_ui.rb +244 -0
  250. data/lib/trusty_cms/available_locales.rb +19 -0
  251. data/lib/trusty_cms/cache.rb +100 -0
  252. data/lib/trusty_cms/config/definition.rb +142 -0
  253. data/lib/trusty_cms/engine.rb +10 -0
  254. data/lib/trusty_cms/extension/script.rb +395 -0
  255. data/lib/trusty_cms/extension.rb +146 -0
  256. data/lib/trusty_cms/extension_loader.rb +130 -0
  257. data/lib/trusty_cms/extension_migrator.rb +98 -0
  258. data/lib/trusty_cms/extension_path.rb +200 -0
  259. data/lib/trusty_cms/initializer.rb +162 -0
  260. data/lib/trusty_cms/pagination/controller.rb +41 -0
  261. data/lib/trusty_cms/pagination/link_renderer.rb +34 -0
  262. data/lib/trusty_cms/resource_responses.rb +121 -0
  263. data/lib/trusty_cms/setup.rb +227 -0
  264. data/lib/trusty_cms/taggable.rb +138 -0
  265. data/lib/trusty_cms/task_support.rb +66 -0
  266. data/lib/trusty_cms.rb +19 -0
  267. data/log/.keep +0 -0
  268. data/public/.htaccess +40 -0
  269. data/public/404.html +8 -0
  270. data/public/500.html +8 -0
  271. data/public/dispatch.cgi +10 -0
  272. data/public/dispatch.fcgi +24 -0
  273. data/public/dispatch.rb +10 -0
  274. data/public/favicon.ico +0 -0
  275. data/public/images/admin/add_tab.png +0 -0
  276. data/public/images/admin/avatar_32x32.png +0 -0
  277. data/public/images/admin/avatar_64x64.png +0 -0
  278. data/public/images/admin/avatar_96x96.png +0 -0
  279. data/public/images/admin/brown_bottom_line.gif +0 -0
  280. data/public/images/admin/calendar_down.gif +0 -0
  281. data/public/images/admin/collapse.png +0 -0
  282. data/public/images/admin/draft_page.png +0 -0
  283. data/public/images/admin/expand.png +0 -0
  284. data/public/images/admin/image.png +0 -0
  285. data/public/images/admin/javascript.png +0 -0
  286. data/public/images/admin/layout.png +0 -0
  287. data/public/images/admin/metadata_toggle.png +0 -0
  288. data/public/images/admin/minus.png +0 -0
  289. data/public/images/admin/minus_disabled.png +0 -0
  290. data/public/images/admin/minus_grey.png +0 -0
  291. data/public/images/admin/navigation_secondary_separator.gif +0 -0
  292. data/public/images/admin/page.png +0 -0
  293. data/public/images/admin/plus.png +0 -0
  294. data/public/images/admin/plus_disabled.png +0 -0
  295. data/public/images/admin/plus_grey.png +0 -0
  296. data/public/images/admin/popup_border_background.png +0 -0
  297. data/public/images/admin/popup_border_bottom_left.png +0 -0
  298. data/public/images/admin/popup_border_bottom_right.png +0 -0
  299. data/public/images/admin/popup_border_top_left.png +0 -0
  300. data/public/images/admin/popup_border_top_right.png +0 -0
  301. data/public/images/admin/search.png +0 -0
  302. data/public/images/admin/single_form_shadow.png +0 -0
  303. data/public/images/admin/snippet.png +0 -0
  304. data/public/images/admin/spinner.gif +0 -0
  305. data/public/images/admin/status_background.png +0 -0
  306. data/public/images/admin/status_bottom_left.png +0 -0
  307. data/public/images/admin/status_bottom_right.png +0 -0
  308. data/public/images/admin/status_spinner.gif +0 -0
  309. data/public/images/admin/status_top_left.png +0 -0
  310. data/public/images/admin/status_top_right.png +0 -0
  311. data/public/images/admin/stylesheet.png +0 -0
  312. data/public/images/admin/tab_close.png +0 -0
  313. data/public/images/admin/upload.png +0 -0
  314. data/public/images/admin/virtual_page.png +0 -0
  315. data/public/images/radiant/radiant-badge-color.png +0 -0
  316. data/public/javascripts/admin/application.js +94 -0
  317. data/public/javascripts/admin/codearea.js +165 -0
  318. data/public/javascripts/admin/controls.js +965 -0
  319. data/public/javascripts/admin/cookie.js +80 -0
  320. data/public/javascripts/admin/dateinput.js +402 -0
  321. data/public/javascripts/admin/dragdrop.js +974 -0
  322. data/public/javascripts/admin/dropdown.js +216 -0
  323. data/public/javascripts/admin/effects.js +1122 -0
  324. data/public/javascripts/admin/lowpro.js +340 -0
  325. data/public/javascripts/admin/overrides.js +1 -0
  326. data/public/javascripts/admin/page_preview.js +41 -0
  327. data/public/javascripts/admin/pagefield.js +54 -0
  328. data/public/javascripts/admin/pagestatus.js +17 -0
  329. data/public/javascripts/admin/popup.js +339 -0
  330. data/public/javascripts/admin/prototype.js +4874 -0
  331. data/public/javascripts/admin/ruledtable.js +13 -0
  332. data/public/javascripts/admin/shortcuts.js +33 -0
  333. data/public/javascripts/admin/sitemap.js +149 -0
  334. data/public/javascripts/admin/status.js +233 -0
  335. data/public/javascripts/admin/tabcontrol.js +123 -0
  336. data/public/javascripts/admin/toggle.js +430 -0
  337. data/public/javascripts/admin/utility.js +53 -0
  338. data/public/javascripts/admin/validationerror.js +18 -0
  339. data/public/loading-iframe.html +11 -0
  340. data/public/robots.txt +1 -0
  341. data/public/stylesheets/sass/admin/_base.sass +18 -0
  342. data/public/stylesheets/sass/admin/main.sass +27 -0
  343. data/public/stylesheets/sass/admin/modules/_boxes.sass +6 -0
  344. data/public/stylesheets/sass/admin/modules/_gradients.sass +4 -0
  345. data/public/stylesheets/sass/admin/modules/_links.sass +18 -0
  346. data/public/stylesheets/sass/admin/overrides.sass +2 -0
  347. data/public/stylesheets/sass/admin/partials/_actions.sass +96 -0
  348. data/public/stylesheets/sass/admin/partials/_avatars.sass +10 -0
  349. data/public/stylesheets/sass/admin/partials/_content.sass +58 -0
  350. data/public/stylesheets/sass/admin/partials/_dateinput.sass +62 -0
  351. data/public/stylesheets/sass/admin/partials/_deprecated.sass +55 -0
  352. data/public/stylesheets/sass/admin/partials/_dropdown.sass +28 -0
  353. data/public/stylesheets/sass/admin/partials/_footer.sass +12 -0
  354. data/public/stylesheets/sass/admin/partials/_forms.sass +322 -0
  355. data/public/stylesheets/sass/admin/partials/_header.sass +114 -0
  356. data/public/stylesheets/sass/admin/partials/_index.sass +147 -0
  357. data/public/stylesheets/sass/admin/partials/_layout.sass +10 -0
  358. data/public/stylesheets/sass/admin/partials/_messages.sass +10 -0
  359. data/public/stylesheets/sass/admin/partials/_popup.sass +213 -0
  360. data/public/stylesheets/sass/admin/partials/_tabcontrol.sass +72 -0
  361. data/public/stylesheets/sass/admin/partials/_toolbar.sass +31 -0
  362. data/public/stylesheets/sass/admin/partials/_typography.sass +60 -0
  363. data/public/stylesheets/sass/admin/partials/_validations.sass +19 -0
  364. data/rails/init.rb +1 -0
  365. data/script/about +4 -0
  366. data/script/breakpointer +3 -0
  367. data/script/console +3 -0
  368. data/script/dbconsole +3 -0
  369. data/script/destroy +3 -0
  370. data/script/extension +5 -0
  371. data/script/generate +3 -0
  372. data/script/performance/benchmarker +3 -0
  373. data/script/performance/profiler +3 -0
  374. data/script/performance/request +3 -0
  375. data/script/plugin +3 -0
  376. data/script/process/inspector +3 -0
  377. data/script/process/reaper +3 -0
  378. data/script/process/spawner +3 -0
  379. data/script/process/spinner +3 -0
  380. data/script/rails +6 -0
  381. data/script/runner +3 -0
  382. data/script/server +3 -0
  383. data/script/version +5 -0
  384. data/spec/ci/database.mysql.yml +4 -0
  385. data/spec/ci/database.postgresql.yml +4 -0
  386. data/spec/ci/database.sqlite.yml +3 -0
  387. data/trusty_cms.gemspec +50 -0
  388. metadata +781 -0
@@ -0,0 +1,85 @@
1
+ namespace :db do
2
+ desc "Migrate schema to version 0 and back up again. WARNING: Destroys all data in tables!!"
3
+ task :remigrate => :environment do
4
+ require 'highline/import'
5
+ if ENV['OVERWRITE'].to_s.downcase == 'true' or agree("This task will destroy any data in the database. Are you sure you want to \ncontinue? [yn] ")
6
+
7
+ # Migrate downward
8
+ ActiveRecord::Migrator.migrate("#{TRUSTY_CMS_ROOT}/db/migrate/", 0)
9
+
10
+ # Migrate upward
11
+ Rake::Task["db:migrate"].invoke
12
+
13
+ # Dump the schema
14
+ Rake::Task["db:schema:dump"].invoke
15
+ else
16
+ say "Task cancelled."
17
+ exit
18
+ end
19
+ end
20
+
21
+ task :initialize => :environment do
22
+ require 'highline/import'
23
+ if ENV['OVERWRITE'].to_s.downcase == 'true' or agree("This task will destroy any data in the database. Are you sure you want to \ncontinue? [yn] ")
24
+
25
+ # We need to erase and remove all existing radiant tables, but we don't want to
26
+ # assume that the administrator has access to drop and create the database.
27
+ # Ideally we should also allow for the presence of non-radiant tables, though
28
+ # that's not a setup anyone would recommend.
29
+ #
30
+ ActiveRecord::Base.connection.tables.each do |table|
31
+ ActiveRecord::Migration.drop_table table
32
+ end
33
+ Rake::Task["db:migrate"].invoke
34
+ else
35
+ say "Task cancelled."
36
+ exit
37
+ end
38
+ end
39
+
40
+ desc "Bootstrap your database for TrustyCms."
41
+ task :bootstrap => :initialize do
42
+ require 'trusty_cms/setup'
43
+ TrustyCms::Setup.bootstrap(
44
+ :admin_name => ENV['ADMIN_NAME'],
45
+ :admin_username => ENV['ADMIN_USERNAME'],
46
+ :admin_password => ENV['ADMIN_PASSWORD'],
47
+ :database_template => ENV['DATABASE_TEMPLATE']
48
+ )
49
+ Rake::Task['db:migrate:extensions'].invoke
50
+ Rake::Task['radiant:extensions:update_all'].invoke
51
+ puts %{
52
+ Your TrustyCms application is ready to use. Run `script/server -e production` to
53
+ start the server. Your site will then be running at http://localhost:3000
54
+
55
+ You can access the administrative interface at http://localhost:3000/admin
56
+
57
+ You may also need to set permissions on the public and cache directories so that
58
+ your Web server can access those directories with the user that it runs under.
59
+
60
+ To add more extensions just add them to your Gemfile and run `bundle install`.
61
+ If an extension is not available as a gem use `script/extension install name`.
62
+
63
+ Visit http://ext.radiantcms.org to find more extensions.
64
+
65
+ }
66
+ end
67
+
68
+ desc "Migrate the database through all available migration scripts (looks for db/migrate/* in radiant, in extensions and in your site) and update db/schema.rb by invoking db:schema:dump. Turn off output with VERBOSE=false."
69
+ task :migrate => :environment do
70
+ Rake::Task['db:migrate:radiant'].invoke
71
+ Rake::Task['db:migrate:extensions'].invoke
72
+ ActiveRecord::Migration.verbose = ENV["VERBOSE"] ? ENV["VERBOSE"] == "true" : true
73
+ ActiveRecord::Migrator.migrate("db/migrate/", ENV["VERSION"] ? ENV["VERSION"].to_i : nil)
74
+ Rake::Task["db:schema:dump"].invoke if ActiveRecord::Base.schema_format == :ruby
75
+ end
76
+
77
+ namespace :migrate do
78
+ desc "Migrates the database through steps defined in the core radiant distribution. Usual db:migrate options can apply."
79
+ task :radiant => :environment do
80
+ ActiveRecord::Migration.verbose = ENV["VERBOSE"] ? ENV["VERBOSE"] == "true" : true
81
+ ActiveRecord::Migrator.migrate(File.join(TrustyCms.root, 'db', 'migrate'), ENV["VERSION"] ? ENV["VERSION"].to_i : nil)
82
+ Rake::Task["db:schema:dump"].invoke if ActiveRecord::Base.schema_format == :ruby
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,11 @@
1
+ desc "Set the environment variable Rails.env='development'."
2
+ task :development do
3
+ ENV['RAILS_ENV'] = Rails.env = 'development'
4
+ Rake::Task[:environment].invoke
5
+ end
6
+
7
+ desc "Set the environment variable Rails.env='production'."
8
+ task :production do
9
+ ENV['RAILS_ENV'] = Rails.env = 'production'
10
+ Rake::Task[:environment].invoke
11
+ end
@@ -0,0 +1,85 @@
1
+ require 'rake/testtask'
2
+
3
+ namespace :db do
4
+ namespace :migrate do
5
+ desc "Run all TrustyCms extension migrations"
6
+ task :extensions => :environment do
7
+ require 'trusty_cms/extension_migrator'
8
+ TrustyCms::ExtensionMigrator.migrate_extensions
9
+ Rake::Task['db:schema:dump'].invoke
10
+ end
11
+ end
12
+ namespace :remigrate do
13
+ desc "Migrate down and back up all TrustyCms extension migrations"
14
+ task :extensions => :environment do
15
+ require 'highline/import'
16
+ if agree("This task will destroy any data stored by extensions in the database. Are you sure you want to \ncontinue? [yn] ")
17
+ require 'trusty_cms/extension_migrator'
18
+ TrustyCms::Extension.descendants.each {|ext| ext.migrator.migrate(0) }
19
+ Rake::Task['db:migrate:extensions'].invoke
20
+ Rake::Task['db:schema:dump'].invoke
21
+ end
22
+ end
23
+ end
24
+ end
25
+
26
+ namespace :test do
27
+ desc "Runs tests on all available TrustyCms extensions, pass EXT=extension_name to test a single extension"
28
+ task :extensions => "db:test:prepare" do
29
+ extensions = TrustyCms.configuration.enabled_extensions
30
+ if ENV["EXT"]
31
+ extensions = extensions & [ENV["EXT"].to_sym]
32
+ if extensions.empty?
33
+ puts "Sorry, that extension is not installed."
34
+ end
35
+ end
36
+ extensions.each do |extension|
37
+ directory = TrustyCms::ExtensionPath.for(extension)
38
+ if File.directory?(File.join(directory, 'test'))
39
+ chdir directory do
40
+ if RUBY_PLATFORM =~ /win32/
41
+ system "rake.cmd test RADIANT_ENV_FILE=#{Rails.root}/config/environment"
42
+ else
43
+ system "rake test RADIANT_ENV_FILE=#{Rails.root}/config/environment"
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
50
+
51
+ namespace :spec do
52
+ desc "Runs specs on all available TrustyCms extensions, pass EXT=extension_name to test a single extension"
53
+ task :extensions => "db:test:prepare" do
54
+ extensions = TrustyCms.configuration.enabled_extensions
55
+ if ENV["EXT"]
56
+ extensions = extensions & [ENV["EXT"].to_sym]
57
+ if extensions.empty?
58
+ puts "Sorry, that extension is not installed."
59
+ end
60
+ end
61
+ extensions.each do |extension|
62
+ directory = TrustyCms::ExtensionPath.for(extension)
63
+ if File.directory?(File.join(directory, 'spec'))
64
+ puts %{\nRunning specs on #{extension} extension from #{directory}/spec\n}
65
+ chdir directory do
66
+ if RUBY_PLATFORM =~ /win32/
67
+ system "rake.cmd spec RADIANT_ENV_FILE=#{Rails.root}/config/environment"
68
+ else
69
+ system "rake spec RADIANT_ENV_FILE=#{Rails.root}/config/environment"
70
+ end
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
76
+
77
+ namespace :radiant do
78
+ namespace :extensions do
79
+ desc "Runs update asset task for all extensions"
80
+ task :update_all => [:environment] do
81
+ extension_update_tasks = TrustyCms.configuration.enabled_extensions.map { |n| "radiant:extensions:#{n}:update" }.select { |t| Rake::Task.task_defined?(t) }
82
+ extension_update_tasks.each {|t| Rake::Task[t].invoke }
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,255 @@
1
+ # Only define freeze and unfreeze tasks in instance mode
2
+ unless File.directory? "#{Rails.root}/app"
3
+ namespace :radiant do
4
+ namespace :freeze do
5
+ desc "Lock this application to the current gems (by unpacking them into vendor/radiant)"
6
+ task :gems do
7
+ require 'rubygems'
8
+ require 'rubygems/gem_runner'
9
+
10
+ radiant = (version = ENV['VERSION']) ?
11
+ Gem.cache.search('trusty-cms', "= #{version}").first :
12
+ Gem.cache.search('trusty-cms').sort_by { |g| g.version }.last
13
+
14
+ version ||= radiant.version
15
+
16
+ unless radiant
17
+ puts "No radiant gem #{version} is installed. Do 'gem list radiant' to see what you have available."
18
+ exit
19
+ end
20
+
21
+ puts "Freezing to the gems for TrustyCms #{radiant.version}"
22
+ rm_rf "vendor/radiant"
23
+
24
+ chdir("vendor") do
25
+ Gem::GemRunner.new.run(["unpack", "radiant", "--version", "=#{version}"])
26
+ FileUtils.mv(Dir.glob("radiant*").first, "radiant")
27
+ end
28
+ end
29
+
30
+ desc "Lock to latest Edge TrustyCms or a specific revision with REVISION=X (ex: REVISION=245484e), a tag with TAG=Y (ex: TAG=0.6.6), or a branch with BRANCH=Z (ex: BRANCH=mental)"
31
+ task :edge do
32
+ $verbose = false
33
+ unless system "git --version"
34
+ $stderr.puts "ERROR: Must have git available in the PATH to lock this application to Edge TrustyCms"
35
+ exit 1
36
+ end
37
+
38
+ radiant_git = "git://github.com/pgharts/trusty-cms.git"
39
+
40
+ if File.exist?("vendor/trusty_cms/.git/HEAD")
41
+ cd("vendor/radiant") { system "git checkout master"; system "git pull origin master"}
42
+ else
43
+ system "git clone #{radiant_git} vendor/radiant"
44
+ end
45
+
46
+ case
47
+ when ENV['TAG']
48
+ cd("vendor/radiant") { system "git checkout -b v#{ENV['TAG']} #{ENV['TAG']}"}
49
+ when ENV['BRANCH']
50
+ cd("vendor/radiant") { system "git checkout --track -b #{ENV['BRANCH']} origin/#{ENV['BRANCH']}"}
51
+ when ENV['REVISION']
52
+ cd("vendor/radiant") { system "git checkout -b REV_#{ENV['REVISION']} #{ENV['REVISION']}"}
53
+ end
54
+
55
+ cd("vendor/radiant") { system "git submodule update --init"}
56
+ end
57
+ end
58
+
59
+ desc "Unlock this application from freeze of gems or edge and return to a fluid use of system gems"
60
+ task :unfreeze do
61
+ rm_rf "vendor/radiant"
62
+ end
63
+
64
+ desc "Update configs, scripts, html, images, sass, stylesheets and javascripts from TrustyCms."
65
+ task :update do
66
+ tasks = %w{scripts javascripts configs static_html images sass stylesheets cached_assets bundle}
67
+ tasks = tasks & ENV['ONLY'].split(',') if ENV['ONLY']
68
+ tasks = tasks - ENV['EXCEPT'].split(',') if ENV['EXCEPT']
69
+
70
+ tasks.each do |task|
71
+ puts "* Updating #{task}"
72
+ Rake::Task["radiant:update:#{task}"].invoke
73
+ end
74
+ end
75
+
76
+ namespace :update do
77
+ desc "Add new scripts to the instance script/ directory"
78
+ task :scripts do
79
+ local_base = "script"
80
+ edge_base = "#{File.dirname(__FILE__)}/../../script"
81
+
82
+ local = Dir["#{local_base}/**/*"].reject { |path| File.directory?(path) }
83
+ edge = Dir["#{edge_base}/**/*"].reject { |path| File.directory?(path) }
84
+ edge = edge.reject { |f| f =~ /(generate|plugin|destroy)$/ }
85
+
86
+ edge.each do |script|
87
+ base_name = script[(edge_base.length+1)..-1]
88
+ next if local.detect { |path| base_name == path[(local_base.length+1)..-1] }
89
+ if !File.directory?("#{local_base}/#{File.dirname(base_name)}")
90
+ mkdir_p "#{local_base}/#{File.dirname(base_name)}"
91
+ end
92
+ install script, "#{local_base}/#{base_name}", :mode => 0755
93
+ end
94
+ install "#{File.dirname(__FILE__)}/../generators/instance/templates/instance_generate", "#{local_base}/generate", :mode => 0755
95
+ end
96
+
97
+ desc "Update your javascripts from your current radiant install"
98
+ task :javascripts do
99
+ FileUtils.mkdir_p("#{Rails.root}/public/javascripts/admin/")
100
+ copy_javascripts = proc do |project_dir, scripts|
101
+ scripts.reject!{|s| File.basename(s) == 'overrides.js'} if File.exists?(project_dir + 'overrides.js')
102
+ FileUtils.cp(scripts, project_dir)
103
+ end
104
+ copy_javascripts[Rails.root + '/public/javascripts/', Dir["#{File.dirname(__FILE__)}/../../public/javascripts/*.js"]]
105
+ copy_javascripts[Rails.root + '/public/javascripts/admin/', Dir["#{File.dirname(__FILE__)}/../../public/javascripts/admin/*.js"]]
106
+ end
107
+
108
+ desc "Update the cached assets for the admin UI"
109
+ task :cached_assets do
110
+ TrustyCms::TaskSupport.cache_admin_js
111
+ end
112
+
113
+ desc "Update Gemfile from your current radiant install, backing up if required."
114
+ task :bundle do
115
+ require 'erb'
116
+ file = "#{Rails.root}/Gemfile"
117
+ tmpfile = "#{Rails.root}/Gemfile.tmp"
118
+ genfile = "#{File.dirname(__FILE__)}/../generators/instance/templates/instance_gemfile"
119
+ backfile = "#{Rails.root}/Gemfile.bak"
120
+
121
+ db_gems = {
122
+ 'sqlite3' => 'sqlite3',
123
+ 'mysql' => 'mysql',
124
+ 'pg' => 'postgresql',
125
+ 'db2' => 'db2',
126
+ 'activerecord-sqlserver-adapter' => 'sqlserver'
127
+ }
128
+ active_db_gem = db_gems.keys.find { |g| Gem.loaded_specs[g] } || 'sqlite3'
129
+
130
+ File.open(tmpfile, 'w') do |f|
131
+ radiant_version = TrustyCms::Version.to_s
132
+ db = db_gems[active_db_gem]
133
+ f.write ERB.new(File.read(genfile)).result(binding)
134
+ end
135
+
136
+ unless File.exist?(file) && FileUtils.compare_file(file, tmpfile)
137
+ warning = ""
138
+ if File.exist?(file)
139
+ FileUtils.cp(file, backfile)
140
+ warning << "** WARNING **
141
+ Your old Gemfile has been saved as Gemfile.bak. If you had radiant extensions or other gems in that file, please copy those lines to the new file. After checking the Gemfile, please run `bundle install` to update your application."
142
+ else
143
+ warning << "** WARNING **
144
+ A Gemfile has been created in your application directory. If you have config.gem entries in your old environment.rb (now .bak), please move them to the Gemfile. When you're happy with it, run `bundle install` to install the gems."
145
+ end
146
+ FileUtils.cp(tmpfile, file)
147
+ end
148
+ FileUtils.rm(tmpfile)
149
+ puts warning
150
+ end
151
+
152
+ desc "Update configuration files from your current radiant install"
153
+ task :configs do
154
+ require 'erb'
155
+ instances = {
156
+ :env => "#{Rails.root}/config/environment.rb",
157
+ :development => "#{Rails.root}/config/environments/development.rb",
158
+ :test => "#{Rails.root}/config/environments/test.rb",
159
+ :cucumber => "#{Rails.root}/config/environments/cucumber.rb",
160
+ :production => "#{Rails.root}/config/environments/production.rb"
161
+ }
162
+ tmps = {
163
+ :env => "#{Rails.root}/config/environment.tmp",
164
+ :development => "#{Rails.root}/config/environments/development.tmp",
165
+ :test => "#{Rails.root}/config/environments/test.tmp",
166
+ :cucumber => "#{Rails.root}/config/environments/cucumber.rb",
167
+ :production => "#{Rails.root}/config/environments/production.tmp"
168
+ }
169
+ gens = {
170
+ :env => "#{File.dirname(__FILE__)}/../generators/instance/templates/instance_environment.rb",
171
+ :development => "#{File.dirname(__FILE__)}/../../config/environments/development.rb",
172
+ :test => "#{File.dirname(__FILE__)}/../../config/environments/test.rb",
173
+ :cucumber => "#{File.dirname(__FILE__)}/../../config/environments/cucumber.rb",
174
+ :production => "#{File.dirname(__FILE__)}/../../config/environments/production.rb"
175
+ }
176
+ backups = {
177
+ :env => "#{Rails.root}/config/environment.bak",
178
+ :development => "#{Rails.root}/config/environments/development.bak",
179
+ :test => "#{Rails.root}/config/environments/test.bak",
180
+ :cucumber => "#{Rails.root}/config/environments/cucumber.bak",
181
+ :production => "#{Rails.root}/config/environments/production.bak"
182
+ }
183
+
184
+ FileUtils.cp("#{File.dirname(__FILE__)}/../generators/instance/templates/instance_boot.rb", Rails.root + '/config/boot.rb')
185
+ FileUtils.cp("#{File.dirname(__FILE__)}/../../config/preinitializer.rb", Rails.root + '/config/preinitializer.rb')
186
+ warning = ""
187
+ [:env, :development, :test, :cucumber, :production].each do |env_file|
188
+ File.open(tmps[env_file], 'w') do |f|
189
+ app_name = File.basename(File.expand_path(Rails.root))
190
+ radiant_version = TrustyCms::Version.to_s
191
+ f.write ERB.new(File.read(gens[env_file])).result(binding)
192
+ end
193
+ unless File.exist?(instances[env_file]) && FileUtils.compare_file(instances[env_file], tmps[env_file])
194
+ FileUtils.cp(instances[env_file], backups[env_file]) if File.exist?(instances[env_file])
195
+ FileUtils.cp(tmps[env_file], instances[env_file])
196
+ warning << "
197
+ - #{instances[env_file].sub(/^#{Rails.root}/, '')}"
198
+ end
199
+ FileUtils.rm(tmps[env_file])
200
+ end
201
+ unless warning.blank?
202
+ puts "** WARNING **
203
+ The following files have been changed in TrustyCms. Your originals have
204
+ been backed up with .bak extensions. Please copy your customizations to
205
+ the new files: #{warning}"
206
+ end
207
+ end
208
+
209
+ desc "Update static HTML files from your current radiant install"
210
+ task :static_html do
211
+ project_dir = Rails.root + "/public/"
212
+ html_files = Dir["#{File.dirname(__FILE__)}/../../public/*.html"].delete_if { |f| f =~ /404.html|500.html/ }
213
+ FileUtils.cp(html_files, project_dir)
214
+ end
215
+
216
+ desc "Update admin and radiant images from your current radiant install"
217
+ task :images do
218
+ %w{admin radiant}.each do |d|
219
+ project_dir = Rails.root + "/public/images/#{d}/"
220
+ FileUtils.mkdir_p(project_dir)
221
+ images = Dir["#{File.dirname(__FILE__)}/../../public/images/#{d}/*"]
222
+ FileUtils.cp_r(images, project_dir)
223
+ end
224
+ end
225
+
226
+ desc "Update admin stylesheets from your current radiant install"
227
+ task :stylesheets do
228
+ project_dir = Rails.root + '/public/stylesheets/admin/'
229
+
230
+ copy_stylesheets = proc do |project_dir, styles|
231
+ styles.reject!{|s| File.basename(s) == 'overrides.css'} if File.exists?(project_dir + 'overrides.css')
232
+ FileUtils.cp(styles, project_dir)
233
+ end
234
+ copy_stylesheets[Rails.root + '/public/stylesheets/admin/',Dir["#{File.dirname(__FILE__)}/../../public/stylesheets/admin/*.css"]]
235
+ end
236
+
237
+ desc "Update admin sass files from your current radiant install"
238
+ task :sass do
239
+ copy_sass = proc do |project_dir, sass_files|
240
+ sass_files.reject!{|s| File.basename(s) == 'overrides.sass'} if File.exists?(project_dir + 'overrides.sass') || File.exists?(project_dir + '../overrides.css')
241
+ sass_files.reject!{|s| File.directory?(s) }
242
+ FileUtils.mkpath(project_dir)
243
+ FileUtils.cp(sass_files, project_dir)
244
+ end
245
+ sass_dir = "#{TRUSTY_CMS_ROOT}/public/stylesheets/sass/admin"
246
+ copy_sass[Rails.root + '/public/stylesheets/sass/admin/', Dir["#{sass_dir}/*"]]
247
+ Dir["#{sass_dir}/*"].each do |d|
248
+ if File.directory?(d)
249
+ copy_sass[Rails.root + "/public/stylesheets/sass/admin/#{File.basename(d)}/", Dir["#{d}/*"]]
250
+ end
251
+ end
252
+ end
253
+ end
254
+ end
255
+ end
@@ -0,0 +1,23 @@
1
+ # # Redefined standard Rails tasks only in instance mode
2
+ # unless TrustyCms.app?
3
+ # require 'rake/testtask'
4
+ #
5
+ # ENV['RADIANT_ENV_FILE'] = File.join(Rails.root, 'config', 'environment')
6
+ #
7
+ # [Dir["#{Rails.Root}/vendor/rails/railties/lib/tasks/*.rake"], Dir["#{Rails.root}/vendor/plugins/rspec_on_rails/tasks/*.rake"]].flatten.each do |rake|
8
+ # lines = IO.readlines(rake)
9
+ # lines.map! do |line|
10
+ # line.gsub!('Rails.root', 'TRUSTY_CMS_ROOT') unless rake =~ /(misc|rspec|databases)\.rake$/
11
+ # case rake
12
+ # when /testing\.rake$/
13
+ # line.gsub!(/t.libs << (["'])/, 't.libs << \1#{TRUSTY_CMS_ROOT}/')
14
+ # line.gsub!(/t\.pattern = (["'])/, 't.pattern = \1#{TRUSTY_CMS_ROOT}/')
15
+ # when /databases\.rake$/
16
+ # line.gsub!(/(migrate|rollback)\((["'])/, '\1(\2#{TRUSTY_CMS_ROOT}/')
17
+ # line.gsub!(/(run|new)\((:up|:down), (["'])db/, '\1(\2, \3#{TRUSTY_CMS_ROOT}/db')
18
+ # end
19
+ # line
20
+ # end
21
+ # eval(lines.join("\n"), binding, rake)
22
+ # end
23
+ # end
@@ -0,0 +1,31 @@
1
+ namespace :radiant do
2
+ namespace :import do
3
+ namespace :prototype do
4
+
5
+ desc "Import images, javascripts, and styles from prototype"
6
+ task :assets => [:images, :javascripts, :stylesheets]
7
+
8
+ desc "Import images from prototype"
9
+ task :images do
10
+ FileUtils.rm_r "public/images/admin"
11
+ FileUtils.mkpath "public/images/admin"
12
+ FileUtils.cp_r "../prototype/public/images/admin", "public/images"
13
+ end
14
+
15
+ desc "Import javascripts from prototype"
16
+ task :javascripts do
17
+ FileUtils.rm_r "public/javascripts/admin"
18
+ FileUtils.mkpath "public/javascripts/admin"
19
+ FileUtils.cp_r "../prototype/public/javascripts/admin", "public/javascripts"
20
+ end
21
+
22
+ desc "Import stylesheets from prototype"
23
+ task :stylesheets do
24
+ FileUtils.rm_r "public/stylesheets/sass/admin"
25
+ FileUtils.mkpath "public/stylesheets/sass/admin"
26
+ FileUtils.cp_r "../prototype/stylesheets/admin", "public/stylesheets/sass"
27
+ end
28
+
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,18 @@
1
+ require 'trusty_cms/task_support'
2
+ namespace :radiant do
3
+ namespace :config do
4
+ desc "Export TrustyCms::Config to Rails.root/config/radiant_config.yml. Specify a path with RADIANT_CONFIG_PATH - defaults to Rails.root/config/radiant_config.yml"
5
+ task :export => :environment do
6
+ config_path = ENV['RADIANT_CONFIG_PATH'] || "#{Rails.root}/config/radiant_config.yml"
7
+ clear = ENV['CLEAR_CONFIG'] || nil
8
+ TrustyCms::TaskSupport.config_export(config_path)
9
+ end
10
+
11
+ desc "Import TrustyCms::Config from Rails.root/config/radiant_config.yml. Specify a path with RADIANT_CONFIG_PATH - defaults to Rails.root/config/radiant_config.yml Set CLEAR_CONFIG=true to delete all existing settings before import"
12
+ task :import => :environment do
13
+ config_path = ENV['RADIANT_CONFIG_PATH'] || "#{Rails.root}/config/radiant_config.yml"
14
+ clear = ENV['CLEAR_CONFIG'] || nil
15
+ TrustyCms::TaskSupport.config_import(config_path, clear)
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,131 @@
1
+ require 'rubygems'
2
+ require 'rake/testtask'
3
+ require 'rdoc/task'
4
+ require 'rubygems/package_task'
5
+ require 'trusty_cms'
6
+
7
+ PKG_NAME = 'trusty-cms'
8
+ PKG_VERSION = TrustyCms::Version.to_s
9
+ PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
10
+ RUBY_FORGE_PROJECT = PKG_NAME
11
+ RUBY_FORGE_USER = ENV['RUBY_FORGE_USER'] || 'jlong'
12
+
13
+ RELEASE_NAME = ENV['RELEASE_NAME'] || PKG_VERSION
14
+ RELEASE_NOTES = ENV['RELEASE_NOTES'] ? " -n #{ENV['RELEASE_NOTES']}" : ''
15
+ RELEASE_CHANGES = ENV['RELEASE_CHANGES'] ? " -a #{ENV['RELEASE_CHANGES']}" : ''
16
+ RUBY_FORGE_GROUPID = '1337'
17
+ RUBY_FORGE_PACKAGEID = '1638'
18
+
19
+ RDOC_TITLE = "TrustyCms -- Publishing for Small Teams"
20
+ RDOC_EXTRAS = ["README.md", "CONTRIBUTORS.md", "CHANGELOG.md", "INSTALL.md", "LICENSE.md"]
21
+
22
+ namespace 'trusty_cms' do
23
+ spec = Gem::Specification.new do |s|
24
+ s.name = PKG_NAME
25
+ s.version = PKG_VERSION
26
+ s.author = "TrustyCms CMS dev team"
27
+ s.email = "radiant@radiantcms.org"
28
+ s.summary = 'A no-fluff content management system designed for small teams.'
29
+ s.description = "TrustyCms is a simple and powerful publishing system designed for small teams.\nIt is built with Rails and is similar to Textpattern or MovableType, but is\na general purpose content managment system--not merely a blogging engine."
30
+ s.homepage = 'http://radiantcms.org'
31
+ s.rubyforge_project = RUBY_FORGE_PROJECT
32
+ s.platform = Gem::Platform::RUBY
33
+ s.bindir = 'bin'
34
+ s.executables = (Dir['bin/*'] + Dir['scripts/*']).map { |file| File.basename(file) }
35
+ s.add_dependency 'rake', '>= 0.8.3'
36
+ s.add_dependency 'rack', '~> 1.1.0' # No longer bundled in actionpack
37
+ s.add_dependency 'compass', '~> 0.10.4'
38
+ s.add_dependency 'will_paginate', '~> 2.3.11'
39
+ s.add_dependency 'RedCloth', '>=4.2.0'
40
+ s.has_rdoc = true
41
+ s.rdoc_options << '--title' << RDOC_TITLE << '--line-numbers' << '--main' << 'README'
42
+ rdoc_excludes = Dir["**"].reject { |f| !File.directory? f }
43
+ rdoc_excludes.each do |e|
44
+ s.rdoc_options << '--exclude' << e
45
+ end
46
+ s.extra_rdoc_files = RDOC_EXTRAS
47
+ files = FileList['**/*']
48
+ files.exclude '**/._*'
49
+ files.exclude '**/*.rej'
50
+ files.exclude '.git*'
51
+ files.exclude /^cache/
52
+ files.exclude 'config/database.yml'
53
+ files.exclude 'config/locomotive.yml'
54
+ files.exclude 'config/lighttpd.conf'
55
+ files.exclude 'config/mongrel_mimes.yml'
56
+ files.exclude 'db/*.db'
57
+ files.exclude /^doc/
58
+ files.exclude 'log/*.log'
59
+ files.exclude 'log/*.pid'
60
+ files.include 'log/.keep'
61
+ files.exclude /^pkg/
62
+ files.include 'public/.htaccess'
63
+ files.exclude /\btmp\b/
64
+ files.include 'vendor/extensions/.keep'
65
+ files.exclude 'radiant.gemspec'
66
+ # Read .gitignore from plugins and exclude those files
67
+ Dir['vendor/plugins/*/.gitignore'].each do |gi|
68
+ dirname = File.dirname(gi)
69
+ File.readlines(gi).each do |i|
70
+ files.exclude "#{dirname}/**/#{i}"
71
+ end
72
+ end
73
+ s.files = files.to_a
74
+ end
75
+
76
+ Gem::PackageTask.new(spec) do |pkg|
77
+ pkg.need_zip = true
78
+ pkg.need_tar = true
79
+ end
80
+
81
+ task :gemspec do
82
+ File.open('radiant.gemspec', 'w') {|f| f.write spec.to_ruby }
83
+ end
84
+
85
+ namespace :gem do
86
+ desc "Uninstall Gem"
87
+ task :uninstall do
88
+ sudo = "sudo " if ENV['SUDO'] == 'true'
89
+ sh "#{sudo}gem uninstall #{PKG_NAME}" rescue nil
90
+ end
91
+
92
+ desc "Build and install Gem from source"
93
+ task :install => [:gemspec, :package, :uninstall] do
94
+ chdir("#{TRUSTY_CMS_ROOT}/pkg") do
95
+ latest = Dir["#{PKG_NAME}-*.gem"].last
96
+ sudo = "sudo " if ENV['SUDO'] == 'true'
97
+ sh "#{sudo}gem install #{latest}"
98
+ end
99
+ end
100
+ end
101
+
102
+ task :gem => [ :generate_cached_assets ]
103
+
104
+ desc "Generates cached assets from source files"
105
+ task :generate_cached_assets do
106
+ TrustyCms::TaskSupport.cache_admin_js
107
+ end
108
+
109
+ desc "Publish the release files to RubyForge."
110
+ task :release => [:gem, :package] do
111
+ files = ["gem", "tgz", "zip"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" }
112
+ release_id = nil
113
+ system %{rubyforge login}
114
+ files.each_with_index do |file, idx|
115
+ if idx == 0
116
+ cmd = %Q[rubyforge add_release #{RELEASE_NOTES}#{RELEASE_CHANGES} --preformatted #{RUBY_FORGE_GROUPID} #{RUBY_FORGE_PACKAGEID} "#{RELEASE_NAME}" #{file}]
117
+ puts cmd
118
+ system cmd
119
+ else
120
+ release_id ||= begin
121
+ puts "rubyforge config #{RUBY_FORGE_PROJECT}"
122
+ system "rubyforge config #{RUBY_FORGE_PROJECT}"
123
+ `cat ~/.rubyforge/auto-config.yml | grep "#{RELEASE_NAME}"`.strip.split(/:/).last.strip
124
+ end
125
+ cmd = %Q[rubyforge add_file #{RUBY_FORGE_GROUPID} #{RUBY_FORGE_PACKAGEID} #{release_id} #{file}]
126
+ puts cmd
127
+ system cmd
128
+ end
129
+ end
130
+ end
131
+ end