trusty-cms 1.0.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 (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,625 @@
1
+
2
+ ---
3
+ en:
4
+ desc:
5
+ aggregate-children-count: "Renders the total count of children of the aggregated pages. Accepts the
6
+ same options as @<r:children:each />@.
7
+
8
+ *Usage*:
9
+
10
+ <pre><code><r:aggregate paths=\"/section1; /section2; /section3\">
11
+ <r:children:count />
12
+ </r:aggregate></code></pre>"
13
+ aggregate-children-each: "Renders the contained block for each child of the aggregated pages. Accepts the
14
+ same options as the plain @<r:children:each />@.
15
+
16
+ *Usage*:
17
+
18
+ <pre><code><r:aggregate paths=\"/section1; /section2; /section3\">
19
+ <r:children:each>
20
+ ...
21
+ </r:children:each>
22
+ </r:aggregate></code></pre>"
23
+ aggregate-children-first: "Renders the first child of the aggregated pages. Accepts the
24
+ same options as @<r:children:each />@.
25
+
26
+ *Usage*:
27
+
28
+ <pre><code><r:aggregate paths=\"/section1; /section2; /section3\">
29
+ <r:children:first>
30
+ ...
31
+ </r:children:first>
32
+ </r:aggregate></code></pre>"
33
+ aggregate-children-last: "Renders the last child of the aggregated pages. Accepts the
34
+ same options as @<r:children:each />@.
35
+
36
+ *Usage*:
37
+
38
+ <pre><code><r:aggregate paths=\"/section1; /section2; /section3\">
39
+ <r:children:last>
40
+ ...
41
+ </r:children:last>
42
+ </r:aggregate></code></pre>"
43
+ aggregate-each: "Sets the scope to the individual aggregated page allowing you to
44
+ iterate through each of the listed paths.
45
+
46
+ *Usage*:
47
+
48
+ <pre><code><r:aggregate:each paths=\"/section1; /section2; /section3\"> ... </r:aggregate:each></code></pre>"
49
+ aggregate: "Aggregates the children of multiple paths using the @paths@ attribute.
50
+ Useful for combining many different sections/categories into a single
51
+ feed or listing.
52
+
53
+ *Usage*:
54
+
55
+ <pre><code><r:aggregate paths=\"/section1; /section2; /section3\"> ... </r:aggregate></code></pre>"
56
+ author: "Renders the name of the author of the current page."
57
+ breadcrumb: "Renders the @breadcrumb@ attribute of the current page."
58
+ breadcrumbs: "Renders a trail of breadcrumbs to the current page. The separator attribute
59
+ specifies the HTML fragment that is inserted between each of the breadcrumbs. By
60
+ default it is set to @>@. The boolean @nolinks@ attribute can be specified to render
61
+ breadcrumbs in plain text, without any links (useful when generating title tag).
62
+ Set the boolean @noself@ attribute to omit the present page (useful in page headers).
63
+
64
+ *Usage:*
65
+
66
+ <pre><code><r:breadcrumbs [separator=\"separator_string\"] [nolinks=\"true\"] [noself=\"true\"]/></code></pre>"
67
+ children-count: "Renders the total number of children."
68
+ children-each-child: "Page attribute tags inside of this tag refer to the current child. This is occasionally
69
+ useful if you are inside of another tag (like &lt;r:find&gt;) and need to refer back to the
70
+ current child.
71
+
72
+ *Usage:*
73
+
74
+ <pre><code><r:children:each>
75
+ <r:child>...</r:child>
76
+ </r:children:each>
77
+ </code></pre>"
78
+ children-each-header: "Renders the tag contents only if the contents do not match the previous header. This
79
+ is extremely useful for rendering date headers for a list of child pages.
80
+
81
+ If you would like to use several header blocks you may use the @name@ attribute to
82
+ name the header. When a header is named it will not restart until another header of
83
+ the same name is different.
84
+
85
+ Using the @restart@ attribute you can cause other named headers to restart when the
86
+ present header changes. Simply specify the names of the other headers in a semicolon
87
+ separated list.
88
+
89
+ *Usage:*
90
+
91
+ <pre><code><r:children:each>
92
+ <r:header [name=\"header_name\"] [restart=\"name1[;name2;...]\"]>
93
+ ...
94
+ </r:header>
95
+ </r:children:each>
96
+ </code></pre>"
97
+ children-each-if_first: "Renders the tag contents only if the current page is the first child in the context of
98
+ a children:each tag
99
+
100
+ *Usage:*
101
+
102
+ <pre><code><r:children:each>
103
+ <r:if_first >
104
+ ...
105
+ </r:if_first>
106
+ </r:children:each>
107
+ </code></pre>"
108
+ children-each-if_last: "Renders the tag contents only if the current page is the last child in the context of
109
+ a children:each tag
110
+
111
+ *Usage:*
112
+
113
+ <pre><code><r:children:each>
114
+ <r:if_last >
115
+ ...
116
+ </r:if_last>
117
+ </r:children:each>
118
+ </code></pre>"
119
+ children-each-unless_first: "Renders the tag contents unless the current page is the first child in the context of
120
+ a children:each tag
121
+
122
+ *Usage:*
123
+
124
+ <pre><code><r:children:each>
125
+ <r:unless_first >
126
+ ...
127
+ </r:unless_first>
128
+ </r:children:each>
129
+ </code></pre>"
130
+ children-each-unless_last: "Renders the tag contents unless the current page is the last child in the context of
131
+ a children:each tag
132
+
133
+ *Usage:*
134
+
135
+ <pre><code><r:children:each>
136
+ <r:unless_last >
137
+ ...
138
+ </r:unless_last>
139
+ </r:children:each>
140
+ </code></pre>"
141
+ children-each: "Cycles through each of the children. Inside this tag all page attribute tags
142
+ are mapped to the current child page.
143
+
144
+ Supply @paginated=\"true\"@ to paginate the displayed list. will_paginate view helper
145
+ options can also be specified, including @per_page@, @previous_label@, @next_label@,
146
+ @class@, @separator@, @inner_window@ and @outer_window@.
147
+
148
+ *Usage:*
149
+
150
+ <pre><code><r:children:each [offset=\"number\"] [limit=\"number\"]
151
+ [by=\"published_at|updated_at|created_at|slug|title|keywords|description\"]
152
+ [order=\"asc|desc\"]
153
+ [status=\"draft|reviewed|published|hidden|all\"]
154
+ [paginated=\"true\"]
155
+ [per_page=\"number\"]
156
+ >
157
+ ...
158
+ </r:children:each>
159
+ </code></pre>"
160
+ children-first: "Returns the first child. Inside this tag all page attribute tags are mapped to
161
+ the first child. Takes the same ordering options as @<r:children:each>@.
162
+
163
+ *Usage:*
164
+
165
+ <pre><code><r:children:first>...</r:children:first></code></pre>"
166
+ children-last: "Returns the last child. Inside this tag all page attribute tags are mapped to
167
+ the last child. Takes the same ordering options as @<r:children:each>@.
168
+
169
+ *Usage:*
170
+
171
+ <pre><code><r:children:last>...</r:children:last></code></pre>"
172
+ children: "Gives access to a page's children.
173
+
174
+ *Usage:*
175
+
176
+ <pre><code><r:children>...</r:children></code></pre>"
177
+ comment: "This is deprecated and will be removed. Plase use @<r:hide>@
178
+ Nothing inside a set of comment tags is rendered.
179
+
180
+ *Usage:*
181
+
182
+ <pre><code><r:comment>...</r:comment></code></pre>"
183
+ content: "Renders the main content of a page. Use the @part@ attribute to select a specific
184
+ page part. By default the @part@ attribute is set to body. Use the @inherit@
185
+ attribute to specify that if a page does not have a content part by that name that
186
+ the tag should render the parent's content part. By default @inherit@ is set to
187
+ @false@. Use the @contextual@ attribute to force a part inherited from a parent
188
+ part to be evaluated in the context of the child page. By default 'contextual'
189
+ is set to true.
190
+
191
+ *Usage:*
192
+
193
+ <pre><code><r:content [part=\"part_name\"] [inherit=\"true|false\"] [contextual=\"true|false\"] /></code></pre>"
194
+ cycle: "Renders a counter value or one of the values given based on a global cycle counter.
195
+
196
+ To get a numeric counter just use the tag, or specify a start value with @start@.
197
+ Use the @reset@ attribute to reset the cycle to the beginning. Using @reset@ on a
198
+ numbered cycle will begin at 0. Use the @name@ attribute to track multiple cycles;
199
+ the default is @cycle@.
200
+
201
+ *Usage:*
202
+
203
+ <pre><code><r:cycle [values=\"first, second, third\"] [reset=\"true|false\"] [name=\"cycle\"] [start=\"second\"] /></code></pre>
204
+ <pre><code><r:cycle start=\"3\" /></code></pre>"
205
+ date: "Renders the date based on the current page (by default when it was published or created).
206
+ The format attribute uses the same formating codes used by the Ruby @strftime@ function. By
207
+ default it's set to @&#37;A, &#37;B &#37;d, &#37;Y@. The @for@ attribute selects which date to render. Valid
208
+ options are @published_at@, @created_at@, @updated_at@, and @now@. @now@ will render the
209
+ current date/time, regardless of the page.
210
+
211
+ *Usage:*
212
+
213
+ <pre><code><r:date [format=\"&#37;A, &#37;B &#37;d, &#37;Y\"] [for=\"published_at\"]/></code></pre>"
214
+ escape_html: "Escapes angle brackets, etc. for rendering in an HTML document.
215
+
216
+ *Usage:*
217
+
218
+ <pre><code><r:escape_html>...</r:escape_html></code></pre>"
219
+ field: "Renders the content of the field given in the @name@ attribute.
220
+
221
+ *Usage:*
222
+
223
+ <pre><code><r:field name=\"Keywords\" /></code></pre>"
224
+ find: "Inside this tag all page related tags refer to the page found at the @path@ attribute.
225
+ @path@s may be relative or absolute paths.
226
+
227
+ *Usage:*
228
+
229
+ <pre><code><r:find path=\"value_to_find\">...</r:find></code></pre>"
230
+ gravatar: "Renders the Gravatar of the author of the current page or the named user.
231
+
232
+ *Usage:*
233
+
234
+ <pre><code><r:gravatar /></code></pre>
235
+
236
+ or
237
+
238
+ <pre><code><r:gravatar [name=\"User Name\"]
239
+ [rating=\"G | PG | R | X\"]
240
+ [size=\"32px\"] /></code></pre>"
241
+ hide: "Nothing inside a set of hide tags is rendered.
242
+
243
+ *Usage:*
244
+
245
+ <pre><code><r:hide>...</r:hide></code></pre>"
246
+ if_ancestor_or_self: "Renders the contained elements if the current contextual page is either the actual page or one of its parents.
247
+
248
+ This is typically used inside another tag (like &lt;r:children:each&gt;) to add conditional mark-up if the child element is or descends from the current page.
249
+
250
+ *Usage:*
251
+
252
+ <pre><code><r:if_ancestor_or_self>...</r:if_ancestor_or_self></code></pre>"
253
+ if_children: "Renders the contained elements only if the current contextual page has one or
254
+ more child pages. The @status@ attribute limits the status of found child pages
255
+ to the given status, the default is @\"published\"@. @status=\"all\"@ includes all
256
+ non-virtual pages regardless of status.
257
+
258
+ *Usage:*
259
+
260
+ <pre><code><r:if_children [status=\"published\"]>...</r:if_children></code></pre>"
261
+ if_content: "Renders the containing elements if all of the listed parts exist on a page.
262
+ By default the @part@ attribute is set to @body@, but you may list more than one
263
+ part by separating them with a comma. Setting the optional @inherit@ to true will
264
+ search ancestors independently for each part. By default @inherit@ is set to @false@.
265
+
266
+ When listing more than one part, you may optionally set the @find@ attribute to @any@
267
+ so that it will render the containing elements if any of the listed parts are found.
268
+ By default the @find@ attribute is set to @all@.
269
+
270
+ *Usage:*
271
+
272
+ <pre><code><r:if_content [part=\"part_name, other_part\"] [inherit=\"true\"] [find=\"any\"]>...</r:if_content></code></pre>"
273
+ if_dev: "Renders the containing elements only if TrustyCms in is development mode.
274
+
275
+ *Usage:*
276
+
277
+ <pre><code><r:if_dev>...</r:if_dev></code></pre>"
278
+ if_field: "Renders the contained elements if the field given in the @name@ attribute
279
+ exists. The tag also takes an optional @equals@ or @matches@ attribute;
280
+ these will expand the tag if the field's content equals or matches the
281
+ given string or regex.
282
+
283
+ *Usage:*
284
+
285
+ <pre><code><r:if_field name=\"author\" [equals|matches=\"John\"] [ignore_case=\"true|false\"]>...</r:if_field></code></pre>"
286
+ if_parent: "Renders the contained elements only if the current contextual page has a parent, i.e.
287
+ is not the root page.
288
+
289
+ *Usage:*
290
+
291
+ <pre><code><r:if_parent>...</r:if_parent></code></pre>"
292
+ if_path: "Renders the containing elements only if the page's path matches the regular expression
293
+ given in the @matches@ attribute. If the @ignore_case@ attribute is set to false, the
294
+ match is case sensitive. By default, @ignore_case@ is set to true.
295
+
296
+ *Usage:*
297
+
298
+ <pre><code><r:if_path matches=\"regexp\" [ignore_case=\"true|false\"]>...</r:if_path></code></pre>"
299
+ if_self: "Renders the contained elements if the current contextual page is also the actual page.
300
+
301
+ This is typically used inside another tag (like &lt;r:children:each&gt;) to add conditional mark-up if the child element is the current page.
302
+
303
+ *Usage:*
304
+
305
+ <pre><code><r:if_self>...</r:if_self></code></pre>"
306
+ javascript: "Renders the content from or a reference to the javascript specified in the @slug@
307
+ attribute. Additionally, the @as@ attribute can be used to make the tag render
308
+ as one of the following:
309
+
310
+ * with no @as@ value the javascript's content is rendered by default.
311
+ * @inline@ - wraps the javascript's content in an (X)HTML @<script>@ element.
312
+ * @url@ - the full path to the javascript.
313
+ * @link@ - embeds the url in an (X)HTML @<script>@ element (creating a link to the external javascript).
314
+
315
+ *Additional Options:*
316
+ When rendering @as=\"inline\"@ or @as=\"link\"@, the (X)HTML @type@ attribute
317
+ is automatically be set to the default javascript content-type.
318
+ You can overrride this attribute or add additional ones by passing extra
319
+ attributes to the @<r:javascript>@ tag.
320
+
321
+ *Usage:*
322
+
323
+ <pre><code><r:javascript slug=\"site.js\" as=\"inline\"
324
+ type=\"text/custom\" id=\"my_id\" />
325
+ <r:javascript slug=\"other.js\" as=\"link\" /></code></pre>
326
+
327
+ The above example will produce the following:
328
+
329
+ <pre><code><script type=\"text/custom\" id=\"my_id\">
330
+ //<![CDATA[
331
+ var your_script = 'this content';
332
+ //]]>
333
+ </script>
334
+ <script type=\"text/javascript\" src=\"/js/other.js\"></script></code></pre>"
335
+ link: "Renders a link to the page. When used as a single tag it uses the page's title
336
+ for the link name. When used as a double tag the part in between both tags will
337
+ be used as the link text. The link tag passes all attributes over to the HTML
338
+ @a@ tag. This is very useful for passing attributes like the @class@ attribute
339
+ or @id@ attribute. If the @anchor@ attribute is passed to the tag it will
340
+ append a pound sign (<code>#</code>) followed by the value of the attribute to
341
+ the @href@ attribute of the HTML @a@ tag--effectively making an HTML anchor.
342
+
343
+ *Usage:*
344
+
345
+ <pre><code><r:link [anchor=\"name\"] [other attributes...] /></code></pre>
346
+
347
+ or
348
+
349
+ <pre><code><r:link [anchor=\"name\"] [other attributes...]>link text here</r:link></code></pre>"
350
+ markdown: "Filters its contents with the Markdown filter.
351
+
352
+ *Usage:*
353
+
354
+ <pre><code><r:markdown>** bold text **</r:markdown></code></pre>
355
+
356
+ produces
357
+
358
+ <pre><code><strong> bold text </strong></code></pre>"
359
+ meta-description: "Emits the page description field in a meta tag, unless attribute
360
+ 'tag' is set to 'false'.
361
+
362
+ *Usage:*
363
+
364
+ <pre><code> <r:meta:description [tag=\"false\"] /> </code></pre>"
365
+ meta-keywords: "Emits the page keywords field in a meta tag, unless attribute
366
+ 'tag' is set to 'false'.
367
+
368
+ *Usage:*
369
+
370
+ <pre><code> <r:meta:keywords [tag=\"false\"] /> </code></pre>"
371
+ meta: "The namespace for 'meta' attributes. If used as a singleton tag, both the description
372
+ and keywords fields will be output as &lt;meta /&gt; tags unless the attribute 'tag' is set to 'false'.
373
+
374
+ *Usage:*
375
+
376
+ <pre><code> <r:meta [tag=\"false\"] />
377
+ <r:meta>
378
+ <r:description [tag=\"false\"] />
379
+ <r:keywords [tag=\"false\"] />
380
+ </r:meta>
381
+ </code></pre>"
382
+ navigation-if_first: "Renders the containing elements if the element is the first
383
+ in the navigation list
384
+
385
+ *Usage:*
386
+
387
+ <pre><code><r:normal><r:if_first>...</r:if_first></r:normal></code></pre>"
388
+ navigation-if_last: "Renders the containing elements if the element is the last
389
+ in the navigation list
390
+
391
+ *Usage:*
392
+
393
+ <pre><code><r:normal><r:if_last>...</r:if_last></r:normal></code></pre>"
394
+ navigation-unless_first: "Renders the containing elements unless the element is the first
395
+ in the navigation list
396
+
397
+ *Usage:*
398
+
399
+ <pre><code><r:normal><r:unless_first>...</r:unless_first></r:normal></code></pre>"
400
+ navigation-unless_last: "Renders the containing elements unless the element is the last
401
+ in the navigation list
402
+
403
+ *Usage:*
404
+
405
+ <pre><code><r:normal><r:unless_last>...</r:unless_last></r:normal></code></pre>"
406
+ navigation: "Renders a list of links specified in the @paths@ attribute according to three
407
+ states:
408
+
409
+ * @normal@ specifies the normal state for the link
410
+ * @here@ specifies the state of the link when the path matches the current
411
+ page's PATH
412
+ * @selected@ specifies the state of the link when the current page matches
413
+ is a child of the specified path
414
+ # @if_last@ renders its contents within a @normal@, @here@ or
415
+ @selected@ tag if the item is the last in the navigation elements
416
+ # @if_first@ renders its contents within a @normal@, @here@ or
417
+ @selected@ tag if the item is the first in the navigation elements
418
+
419
+ The @between@ tag specifies what should be inserted in between each of the links.
420
+
421
+ *Usage:*
422
+
423
+ <pre><code><r:navigation paths=\"[Title: path | Title: path | ...]\">
424
+ <r:normal><a href=\"<r:path />\"><r:title /></a></r:normal>
425
+ <r:here><strong><r:title /></strong></r:here>
426
+ <r:selected><strong><a href=\"<r:path />\"><r:title /></a></strong></r:selected>
427
+ <r:between> | </r:between>
428
+ </r:navigation>
429
+ </code></pre>"
430
+ page: "Causes the tags referring to a page's attributes to refer to the current page.
431
+
432
+ *Usage:*
433
+
434
+ <pre><code><r:page>...</r:page></code></pre>"
435
+ pagination: "The pagination tag is not usually called directly. Supply paginated=\"true\" when you display a list and it will
436
+ be automatically display only the current page of results, with pagination controls at the bottom.
437
+
438
+ *Usage:*
439
+
440
+ <pre><code><r:children:each paginated=\"true\" per_page=\"50\" container=\"false\" previous_label=\"foo\" next_label=\"bar\">
441
+ <r:child>...</r:child>
442
+ </r:children:each>
443
+ </code></pre>"
444
+ parent: "Page attribute tags inside this tag refer to the parent of the current page.
445
+
446
+ *Usage:*
447
+
448
+ <pre><code><r:parent>...</r:parent></code></pre>"
449
+ path: "Renders the @path@ attribute of the current page."
450
+ random: "Randomly renders one of the options specified by the @option@ tags.
451
+
452
+ *Usage:*
453
+
454
+ <pre><code><r:random>
455
+ <r:option>...</r:option>
456
+ <r:option>...</r:option>
457
+ ...
458
+ <r:random>
459
+ </code></pre>"
460
+ rfc1123_date: "Outputs the published date using the format mandated by RFC 1123. (Ideal for RSS feeds.)
461
+
462
+ *Usage:*
463
+
464
+ <pre><code><r:rfc1123_date /></code></pre>"
465
+ slug: "Renders the @slug@ attribute of the current page."
466
+ smarty_pants: "Filters its contents with the SmartyPants filter.
467
+
468
+ *Usage:*
469
+
470
+ <pre><code><r:smarty_pants>\"A revolutionary quotation.\"</r:smarty_pants></code></pre>
471
+
472
+ produces
473
+
474
+ <pre><code>&#8220;A revolutionary quotation.&#8221;</code></pre>"
475
+ snippet: "Renders the snippet specified in the @name@ attribute within the context of a page.
476
+
477
+ *Usage:*
478
+
479
+ <pre><code><r:snippet name=\"snippet_name\" /></code></pre>
480
+
481
+ When used as a double tag, the part in between both tags may be used within the
482
+ snippet itself, being substituted in place of @<r:yield/>@.
483
+
484
+ *Usage:*
485
+
486
+ <pre><code><r:snippet name=\"snippet_name\">Lorem ipsum dolor...</r:snippet></code></pre>"
487
+ status: "Prints the page's status as a string. Optional attribute 'downcase'
488
+ will cause the status to be all lowercase.
489
+
490
+ *Usage:*
491
+
492
+ <pre><code><r:status [downcase='true'] /></code></pre>"
493
+ stylesheet: "Renders the content from or a reference to the stylesheet specified in the @slug@
494
+ attribute. Additionally, the @as@ attribute can be used to make the tag render
495
+ as one of the following:
496
+
497
+ * with no @as@ value the stylesheet's content is rendered by default.
498
+ * @inline@ - wraps the stylesheet's content in an (X)HTML @<style>@ element.
499
+ * @url@ - the full path to the stylesheet.
500
+ * @link@ - embeds the url in an (X)HTML @<link>@ element (creating a link to the external stylesheet).
501
+
502
+ *Additional Options:*
503
+ When rendering @as=\"inline\"@ or @as=\"link\"@, the (X)HTML @type@ attribute
504
+ is automatically be set to the default stylesheet content-type.
505
+ You can overrride this attribute or add additional ones by passing extra
506
+ attributes to the @<r:stylesheet>@ tag.
507
+
508
+ *Usage:*
509
+
510
+ <pre><code><r:stylesheet slug=\"site.css\" as=\"inline\"
511
+ type=\"text/custom\" id=\"my_id\" />
512
+ <r:stylesheet slug=\"other.css\" as=\"link\"
513
+ rel=\"alternate stylesheet\" /></code></pre>
514
+
515
+ The above example will produce the following:
516
+
517
+ <pre><code><style type=\"text/custom\" id=\"my_id\">
518
+ /*<![CDATA[*/
519
+ .your_stylesheet { content: 'here' }
520
+ /*]]>*/
521
+ </style>
522
+ <link rel=\"alternate stylesheet\" type=\"text/css\"
523
+ href=\"/css/other.css\" /></code></pre>"
524
+ textile: "Filters its contents with the Textile filter.
525
+
526
+ *Usage*:
527
+
528
+ <pre><code><r:textile>
529
+ * First
530
+ * Second
531
+ </r:textile></code></pre>
532
+
533
+ produces:
534
+
535
+ <pre><code><ul>
536
+ <li>First</li>
537
+ <li>Second</li>
538
+ </ul></code></pre>"
539
+ title: "Renders the @title@ attribute of the current page."
540
+ unless_ancestor_or_self: "Renders the contained elements unless the current contextual page is either the actual page or one of its parents.
541
+
542
+ This is typically used inside another tag (like &lt;r:children:each&gt;) to add conditional mark-up unless the child element is or descends from the current page.
543
+
544
+ *Usage:*
545
+
546
+ <pre><code><r:unless_ancestor_or_self>...</r:unless_ancestor_or_self></code></pre>"
547
+ unless_children: "Renders the contained elements only if the current contextual page has no children.
548
+ The @status@ attribute limits the status of found child pages to the given status,
549
+ the default is @\"published\"@. @status=\"all\"@ includes all non-virtual pages
550
+ regardless of status.
551
+
552
+ *Usage:*
553
+
554
+ <pre><code><r:unless_children [status=\"published\"]>...</r:unless_children></code></pre>"
555
+ unless_content: "The opposite of the @if_content@ tag. It renders the contained elements if all of the
556
+ specified parts do not exist. Setting the optional @inherit@ to true will search
557
+ ancestors independently for each part. By default @inherit@ is set to @false@.
558
+
559
+ When listing more than one part, you may optionally set the @find@ attribute to @any@
560
+ so that it will not render the containing elements if any of the listed parts are found.
561
+ By default the @find@ attribute is set to @all@.
562
+
563
+ *Usage:*
564
+
565
+ <pre><code><r:unless_content [part=\"part_name, other_part\"] [inherit=\"false\"] [find=\"any\"]>...</r:unless_content></code></pre>"
566
+ unless_dev: "The opposite of the @if_dev@ tag.
567
+
568
+ *Usage:*
569
+
570
+ <pre><code><r:unless_dev>...</r:unless_dev></code></pre>"
571
+ unless_field: "The opposite of @if_field@. Renders the contained elements unless the field
572
+ given in the @name@ attribute exists. The tag also takes an optional
573
+ @equals@ or @matches@ attribute; these will expand the tag unless the
574
+ field's content equals or matches the given string or regex.
575
+
576
+ *Usage:*
577
+
578
+ <pre><code><r:unless_field name=\"author\" [equals|matches=\"John\"] [ignore_case=\"true|false\"]>...</r:unless_field></code></pre>"
579
+ unless_parent: "Renders the contained elements only if the current contextual page has no parent, i.e.
580
+ is the root page.
581
+
582
+ *Usage:*
583
+
584
+ <pre><code><r:unless_parent>...</r:unless_parent></code></pre>"
585
+ unless_path: "The opposite of the @if_path@ tag.
586
+
587
+ *Usage:*
588
+
589
+ <pre><code><r:unless_path matches=\"regexp\" [ignore_case=\"true|false\"]>...</r:unless_path></code></pre>"
590
+ unless_self: "Renders the contained elements unless the current contextual page is also the actual page.
591
+
592
+ This is typically used inside another tag (like &lt;r:children:each&gt;) to add conditional mark-up unless the child element is the current page.
593
+
594
+ *Usage:*
595
+
596
+ <pre><code><r:unless_self>...</r:unless_self></code></pre>"
597
+ yield: "Used within a snippet as a placeholder for substitution of child content, when
598
+ the snippet is called as a double tag.
599
+
600
+ *Usage (within a snippet):*
601
+
602
+ <pre><code>
603
+ <div id=\"outer\">
604
+ <p>before</p>
605
+ <r:yield/>
606
+ <p>after</p>
607
+ </div>
608
+ </code></pre>
609
+
610
+ If the above snippet was named \"yielding\", you could call it from any Page,
611
+ Layout or Snippet as follows:
612
+
613
+ <pre><code><r:snippet name=\"yielding\">Content within</r:snippet></code></pre>
614
+
615
+ Which would output the following:
616
+
617
+ <pre><code>
618
+ <div id=\"outer\">
619
+ <p>before</p>
620
+ Content within
621
+ <p>after</p>
622
+ </div>
623
+ </code></pre>
624
+
625
+ When called in the context of a Page or a Layout, @<r:yield/>@ outputs nothing."
@@ -0,0 +1,18 @@
1
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
2
+ # Lessens Debians need to edit.
3
+ require "rubygems" rescue nil
4
+
5
+ # Since Bundler is not really a 'must have' for Rails development just send off
6
+ # a warning and see if the sytem continues to load, the user can optionally use
7
+ # RADIANT_NOWARNINGS to disable it.
8
+
9
+ if File.file?(ENV['BUNDLE_GEMFILE'])
10
+ begin
11
+ require 'bundler/setup'
12
+ rescue LoadError
13
+ unless ENV['RADIANT_NOWARNINGS'] == true
14
+ $stderr.puts 'WARNING: It seems you do not have Bundler installed.'
15
+ $stderr.puts 'WARNING: You can install it by doing `gem install bundler`'
16
+ end
17
+ end
18
+ end
data/config/routes.rb ADDED
@@ -0,0 +1,30 @@
1
+ TrustyCms::Application.routes.draw do
2
+ namespace :admin, :member => { :remove => :get } do
3
+ resources :pages do
4
+
5
+
6
+ resources :children
7
+ end
8
+ resources :layouts
9
+ resources :users
10
+ end
11
+
12
+ match 'admin/preview' => 'admin/pages#preview', :as => :preview, :via => [:post, :put]
13
+ namespace :admin do
14
+ resource :preferences
15
+ resource :configuration
16
+ resources :extensions, :only => :index
17
+ resources :page_parts
18
+ resources :page_fields
19
+ match '/reference/:type.:format' => 'references#show', :as => :reference, :via => :get
20
+ end
21
+
22
+ match 'admin' => 'admin/welcome#index', :as => :admin
23
+ match 'admin/welcome' => 'admin/welcome#index', :as => :welcome
24
+ match 'admin/login' => 'admin/welcome#login', :as => :login
25
+ match 'admin/logout' => 'admin/welcome#logout', :as => :logout
26
+ match '/' => 'site#show_page', :url => '/'
27
+ match 'error/404' => 'site#not_found', :as => :not_found
28
+ match 'error/500' => 'site#error', :as => :error
29
+ match '*url' => 'site#show_page'
30
+ end