radiant 1.0.0.rc3 → 1.0.0.rc4

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of radiant might be problematic. Click here for more details.

Files changed (296) hide show
  1. data/.gitignore +1 -1
  2. data/CHANGELOG.md +172 -4
  3. data/CONTRIBUTORS.md +13 -0
  4. data/Gemfile +6 -4
  5. data/Gemfile.lock +3 -3
  6. data/INSTALL.md +2 -2
  7. data/README.md +1 -1
  8. data/Rakefile +2 -1
  9. data/app/controllers/admin/pages_controller.rb +2 -0
  10. data/app/helpers/admin/node_helper.rb +5 -42
  11. data/app/helpers/admin/resource_helper.rb +2 -0
  12. data/app/models/file_not_found_page.rb +1 -1
  13. data/app/models/menu_renderer.rb +133 -0
  14. data/app/models/page.rb +10 -10
  15. data/app/models/radiant/config.rb +2 -1
  16. data/app/models/standard_tags.rb +15 -3
  17. data/app/views/admin/pages/_node.html.haml +3 -3
  18. data/bin/ci/before_script +13 -0
  19. data/bin/radiant +0 -2
  20. data/config.ru +2 -0
  21. data/config/boot.rb +0 -1
  22. data/config/cucumber.yml +1 -1
  23. data/config/environment.rb +2 -0
  24. data/config/initializers/radiant_config.rb +1 -1
  25. data/config/initializers/rails_patch.rb +2 -0
  26. data/config/locales/en.yml +4 -1
  27. data/config/preinitializer.rb +1 -1
  28. data/db/migrate/20110902203823_add_allowed_children_cache_to_pages.rb +13 -0
  29. data/db/migrate/20111016150725_extend_page_part_content_limit.rb +15 -0
  30. data/db/radiant_dev.db.default +0 -0
  31. data/db/radiant_dev.db.high_five +0 -0
  32. data/db/schema.rb +8 -7
  33. data/features/admin/pages_management.feature +5 -15
  34. data/features/step_definitions/admin/pages_management_steps.rb +17 -0
  35. data/lib/generators/extension/templates/tasks.rake +0 -8
  36. data/lib/generators/instance/instance_generator.rb +2 -3
  37. data/lib/generators/instance/templates/instance_gemfile +22 -22
  38. data/lib/generators/language_extension/language_extension_generator.rb +22 -0
  39. data/lib/generators/language_extension/templates/available_tags.yml +1 -1
  40. data/lib/generators/language_extension/templates/extension.rb +9 -5
  41. data/lib/generators/language_extension/templates/gemspec.rb +24 -0
  42. data/lib/generators/language_extension/templates/lang.yml +1 -1
  43. data/lib/generators/language_extension/templates/lib.rb +8 -0
  44. data/lib/plugins/string_extensions/lib/string_extensions.rb +3 -1
  45. data/lib/radiant.rb +1 -1
  46. data/lib/radiant/admin_ui/region_partials.rb +5 -0
  47. data/lib/radiant/cache.rb +2 -1
  48. data/lib/radiant/extension/script.rb +3 -3
  49. data/lib/radiant/extension_loader.rb +4 -2
  50. data/lib/radiant/extension_path.rb +10 -2
  51. data/lib/radiant/initializer.rb +10 -14
  52. data/lib/radiant/resource_responses.rb +6 -0
  53. data/lib/radiant/setup.rb +5 -2
  54. data/lib/radiant/taggable.rb +7 -1
  55. data/lib/tasks/cucumber.rake +6 -0
  56. data/lib/tasks/database.rake +9 -5
  57. data/lib/tasks/extensions.rake +2 -17
  58. data/lib/tasks/framework.rake +52 -31
  59. data/public/javascripts/admin/assets.js +296 -0
  60. data/public/javascripts/application.js +2 -0
  61. data/public/javascripts/controls.js +963 -0
  62. data/public/javascripts/dragdrop.js +973 -0
  63. data/public/javascripts/effects.js +1128 -0
  64. data/public/javascripts/prototype.js +4320 -0
  65. data/public/stylesheets/admin/main.css +1 -1
  66. data/public/stylesheets/sass/admin/assets.sass +209 -0
  67. data/radiant.gemspec +33 -34
  68. data/spec/ci/database.mysql.yml +7 -0
  69. data/spec/ci/database.postgresql.yml +7 -0
  70. data/spec/ci/database.sqlite.yml +6 -0
  71. data/spec/controllers/site_controller_spec.rb +2 -2
  72. data/spec/datasets/config_dataset.rb +3 -2
  73. data/spec/datasets/home_page_dataset.rb +1 -1
  74. data/spec/datasets/layouts_dataset.rb +1 -1
  75. data/spec/datasets/snippets_dataset.rb +1 -1
  76. data/spec/generators/instance_generator_spec.rb +5 -11
  77. data/spec/helpers/admin/node_helper_spec.rb +1 -50
  78. data/spec/helpers/admin/regions_helper_spec.rb +1 -1
  79. data/spec/lib/radiant/admin_ui/region_partials_spec.rb +1 -1
  80. data/spec/lib/radiant/initializer_spec.rb +2 -7
  81. data/spec/lib/radiant/resource_responses_spec.rb +1 -1
  82. data/spec/lib/radiant/taggable_spec.rb +1 -1
  83. data/spec/lib/task_support_spec.rb +1 -0
  84. data/spec/models/menu_renderer_spec.rb +297 -0
  85. data/spec/models/page_spec.rb +21 -8
  86. data/spec/models/standard_tags_spec.rb +6 -2
  87. data/test/fixtures/extensions/basic/app/helpers/basic_extension_helper.rb +2 -0
  88. data/testthegemgeneration/CHANGELOG.md +721 -0
  89. data/testthegemgeneration/CONTRIBUTORS.md +257 -0
  90. data/testthegemgeneration/Gemfile +57 -0
  91. data/testthegemgeneration/Gemfile.lock +107 -0
  92. data/testthegemgeneration/INSTALL.md +42 -0
  93. data/testthegemgeneration/LICENSE.md +21 -0
  94. data/testthegemgeneration/README.md +84 -0
  95. data/testthegemgeneration/Rakefile +3 -0
  96. data/testthegemgeneration/config.ru +2 -0
  97. data/testthegemgeneration/config/boot.rb +122 -0
  98. data/testthegemgeneration/config/cucumber.yml +7 -0
  99. data/testthegemgeneration/config/database.yml +16 -0
  100. data/testthegemgeneration/config/environment.rb +81 -0
  101. data/testthegemgeneration/config/environments/cucumber.rb +22 -0
  102. data/testthegemgeneration/config/environments/development.rb +17 -0
  103. data/testthegemgeneration/config/environments/production.rb +24 -0
  104. data/testthegemgeneration/config/environments/test.rb +32 -0
  105. data/testthegemgeneration/config/initializers/radiant_config.rb +16 -0
  106. data/testthegemgeneration/config/preinitializer.rb +19 -0
  107. data/testthegemgeneration/config/routes.rb +1 -0
  108. data/testthegemgeneration/db/development.sqlite3.db +0 -0
  109. data/testthegemgeneration/db/schema.rb +142 -0
  110. data/testthegemgeneration/log/development.log +1055 -0
  111. data/testthegemgeneration/public/404.html +8 -0
  112. data/testthegemgeneration/public/500.html +8 -0
  113. data/testthegemgeneration/public/dispatch.cgi +10 -0
  114. data/testthegemgeneration/public/dispatch.fcgi +24 -0
  115. data/testthegemgeneration/public/dispatch.rb +10 -0
  116. data/testthegemgeneration/public/favicon.ico +0 -0
  117. data/testthegemgeneration/public/flash/ZeroClipboard.swf +0 -0
  118. data/testthegemgeneration/public/images/admin/add_tab.png +0 -0
  119. data/testthegemgeneration/public/images/admin/assets/add.png +0 -0
  120. data/testthegemgeneration/public/images/admin/assets/archive_icon.png +0 -0
  121. data/testthegemgeneration/public/images/admin/assets/audio_icon.png +0 -0
  122. data/testthegemgeneration/public/images/admin/assets/audio_thumbnail.png +0 -0
  123. data/testthegemgeneration/public/images/admin/assets/c_icon.png +0 -0
  124. data/testthegemgeneration/public/images/admin/assets/copy.png +0 -0
  125. data/testthegemgeneration/public/images/admin/assets/css_icon.png +0 -0
  126. data/testthegemgeneration/public/images/admin/assets/database_icon.png +0 -0
  127. data/testthegemgeneration/public/images/admin/assets/delete.png +0 -0
  128. data/testthegemgeneration/public/images/admin/assets/document_icon.png +0 -0
  129. data/testthegemgeneration/public/images/admin/assets/document_thumbnail.png +0 -0
  130. data/testthegemgeneration/public/images/admin/assets/flash_icon.png +0 -0
  131. data/testthegemgeneration/public/images/admin/assets/flash_thumbnail.png +0 -0
  132. data/testthegemgeneration/public/images/admin/assets/font_icon.png +0 -0
  133. data/testthegemgeneration/public/images/admin/assets/gzip_icon.png +0 -0
  134. data/testthegemgeneration/public/images/admin/assets/html_icon.png +0 -0
  135. data/testthegemgeneration/public/images/admin/assets/image_icon.png +0 -0
  136. data/testthegemgeneration/public/images/admin/assets/image_thumbnail.png +0 -0
  137. data/testthegemgeneration/public/images/admin/assets/java_icon.png +0 -0
  138. data/testthegemgeneration/public/images/admin/assets/page_edit.png +0 -0
  139. data/testthegemgeneration/public/images/admin/assets/perl_icon.png +0 -0
  140. data/testthegemgeneration/public/images/admin/assets/php_icon.png +0 -0
  141. data/testthegemgeneration/public/images/admin/assets/presentation_icon.png +0 -0
  142. data/testthegemgeneration/public/images/admin/assets/python_icon.png +0 -0
  143. data/testthegemgeneration/public/images/admin/assets/reorder_assets.png +0 -0
  144. data/testthegemgeneration/public/images/admin/assets/ruby_icon.png +0 -0
  145. data/testthegemgeneration/public/images/admin/assets/script_icon.png +0 -0
  146. data/testthegemgeneration/public/images/admin/assets/spreadsheet_icon.png +0 -0
  147. data/testthegemgeneration/public/images/admin/assets/tar_icon.png +0 -0
  148. data/testthegemgeneration/public/images/admin/assets/unknown_icon.png +0 -0
  149. data/testthegemgeneration/public/images/admin/assets/unknown_thumbnail.png +0 -0
  150. data/testthegemgeneration/public/images/admin/assets/video_icon.png +0 -0
  151. data/testthegemgeneration/public/images/admin/assets/video_thumbnail.png +0 -0
  152. data/testthegemgeneration/public/images/admin/assets/xml_icon.png +0 -0
  153. data/testthegemgeneration/public/images/admin/assets/zip_icon.png +0 -0
  154. data/testthegemgeneration/public/images/admin/avatar_32x32.png +0 -0
  155. data/testthegemgeneration/public/images/admin/avatar_64x64.png +0 -0
  156. data/testthegemgeneration/public/images/admin/avatar_96x96.png +0 -0
  157. data/testthegemgeneration/public/images/admin/brown_bottom_line.gif +0 -0
  158. data/testthegemgeneration/public/images/admin/calendar_down.gif +0 -0
  159. data/testthegemgeneration/public/images/admin/collapse.png +0 -0
  160. data/testthegemgeneration/public/images/admin/draft_page.png +0 -0
  161. data/testthegemgeneration/public/images/admin/expand.png +0 -0
  162. data/testthegemgeneration/public/images/admin/image.png +0 -0
  163. data/testthegemgeneration/public/images/admin/javascript.png +0 -0
  164. data/testthegemgeneration/public/images/admin/layout.png +0 -0
  165. data/testthegemgeneration/public/images/admin/metadata_toggle.png +0 -0
  166. data/testthegemgeneration/public/images/admin/minus.png +0 -0
  167. data/testthegemgeneration/public/images/admin/minus_disabled.png +0 -0
  168. data/testthegemgeneration/public/images/admin/minus_grey.png +0 -0
  169. data/testthegemgeneration/public/images/admin/navigation_secondary_separator.gif +0 -0
  170. data/testthegemgeneration/public/images/admin/page.png +0 -0
  171. data/testthegemgeneration/public/images/admin/plus.png +0 -0
  172. data/testthegemgeneration/public/images/admin/plus_disabled.png +0 -0
  173. data/testthegemgeneration/public/images/admin/plus_grey.png +0 -0
  174. data/testthegemgeneration/public/images/admin/popup_border_background.png +0 -0
  175. data/testthegemgeneration/public/images/admin/popup_border_bottom_left.png +0 -0
  176. data/testthegemgeneration/public/images/admin/popup_border_bottom_right.png +0 -0
  177. data/testthegemgeneration/public/images/admin/popup_border_top_left.png +0 -0
  178. data/testthegemgeneration/public/images/admin/popup_border_top_right.png +0 -0
  179. data/testthegemgeneration/public/images/admin/search.png +0 -0
  180. data/testthegemgeneration/public/images/admin/single_form_shadow.png +0 -0
  181. data/testthegemgeneration/public/images/admin/snippet.png +0 -0
  182. data/testthegemgeneration/public/images/admin/spinner.gif +0 -0
  183. data/testthegemgeneration/public/images/admin/status_background.png +0 -0
  184. data/testthegemgeneration/public/images/admin/status_bottom_left.png +0 -0
  185. data/testthegemgeneration/public/images/admin/status_bottom_right.png +0 -0
  186. data/testthegemgeneration/public/images/admin/status_spinner.gif +0 -0
  187. data/testthegemgeneration/public/images/admin/status_top_left.png +0 -0
  188. data/testthegemgeneration/public/images/admin/status_top_right.png +0 -0
  189. data/testthegemgeneration/public/images/admin/stylesheet.png +0 -0
  190. data/testthegemgeneration/public/images/admin/tab_close.png +0 -0
  191. data/testthegemgeneration/public/images/admin/upload.png +0 -0
  192. data/testthegemgeneration/public/images/admin/virtual_page.png +0 -0
  193. data/testthegemgeneration/public/images/radiant/radiant-badge-color.png +0 -0
  194. data/testthegemgeneration/public/images/roasters/banner.jpg +0 -0
  195. data/testthegemgeneration/public/images/roasters/closelabel.gif +0 -0
  196. data/testthegemgeneration/public/images/roasters/comment.png +0 -0
  197. data/testthegemgeneration/public/images/roasters/gallery1.jpg +0 -0
  198. data/testthegemgeneration/public/images/roasters/gallery2.jpg +0 -0
  199. data/testthegemgeneration/public/images/roasters/gallery3.jpg +0 -0
  200. data/testthegemgeneration/public/images/roasters/gallery4.jpg +0 -0
  201. data/testthegemgeneration/public/images/roasters/gift.gif +0 -0
  202. data/testthegemgeneration/public/images/roasters/green.gif +0 -0
  203. data/testthegemgeneration/public/images/roasters/nav-background.gif +0 -0
  204. data/testthegemgeneration/public/images/roasters/nav-divider.gif +0 -0
  205. data/testthegemgeneration/public/images/roasters/nextlabel.gif +0 -0
  206. data/testthegemgeneration/public/images/roasters/open.gif +0 -0
  207. data/testthegemgeneration/public/images/roasters/preview-1.jpg +0 -0
  208. data/testthegemgeneration/public/images/roasters/preview.jpg +0 -0
  209. data/testthegemgeneration/public/images/roasters/prevlabel.gif +0 -0
  210. data/testthegemgeneration/public/images/roasters/prize.gif +0 -0
  211. data/testthegemgeneration/public/images/roasters/recycle.gif +0 -0
  212. data/testthegemgeneration/public/images/roasters/rss.gif +0 -0
  213. data/testthegemgeneration/public/images/roasters/thumb-grinder.jpg +0 -0
  214. data/testthegemgeneration/public/images/roasters/thumb-grower.jpg +0 -0
  215. data/testthegemgeneration/public/images/roasters/thumb-roaster.jpg +0 -0
  216. data/testthegemgeneration/public/images/roasters/truck.gif +0 -0
  217. data/testthegemgeneration/public/javascripts/admin/application.js +94 -0
  218. data/testthegemgeneration/public/javascripts/admin/assets.js +296 -0
  219. data/testthegemgeneration/public/javascripts/admin/codearea.js +165 -0
  220. data/testthegemgeneration/public/javascripts/admin/controls.js +965 -0
  221. data/testthegemgeneration/public/javascripts/admin/cookie.js +80 -0
  222. data/testthegemgeneration/public/javascripts/admin/dateinput.js +402 -0
  223. data/testthegemgeneration/public/javascripts/admin/dragdrop.js +974 -0
  224. data/testthegemgeneration/public/javascripts/admin/dropdown.js +216 -0
  225. data/testthegemgeneration/public/javascripts/admin/effects.js +1122 -0
  226. data/testthegemgeneration/public/javascripts/admin/lowpro.js +340 -0
  227. data/testthegemgeneration/public/javascripts/admin/overrides.js +1 -0
  228. data/testthegemgeneration/public/javascripts/admin/page_preview.js +41 -0
  229. data/testthegemgeneration/public/javascripts/admin/pagefield.js +54 -0
  230. data/testthegemgeneration/public/javascripts/admin/pagestatus.js +17 -0
  231. data/testthegemgeneration/public/javascripts/admin/popup.js +339 -0
  232. data/testthegemgeneration/public/javascripts/admin/prototype.js +4874 -0
  233. data/testthegemgeneration/public/javascripts/admin/ruledtable.js +13 -0
  234. data/testthegemgeneration/public/javascripts/admin/shortcuts.js +27 -0
  235. data/testthegemgeneration/public/javascripts/admin/sitemap.js +149 -0
  236. data/testthegemgeneration/public/javascripts/admin/status.js +233 -0
  237. data/testthegemgeneration/public/javascripts/admin/tabcontrol.js +123 -0
  238. data/testthegemgeneration/public/javascripts/admin/toggle.js +430 -0
  239. data/testthegemgeneration/public/javascripts/admin/utility.js +53 -0
  240. data/testthegemgeneration/public/javascripts/admin/validationerror.js +18 -0
  241. data/testthegemgeneration/public/javascripts/application.js +2 -0
  242. data/testthegemgeneration/public/javascripts/controls.js +963 -0
  243. data/testthegemgeneration/public/javascripts/dragdrop.js +973 -0
  244. data/testthegemgeneration/public/javascripts/effects.js +1128 -0
  245. data/testthegemgeneration/public/javascripts/prototype.js +4320 -0
  246. data/testthegemgeneration/public/loading-iframe.html +11 -0
  247. data/testthegemgeneration/public/robots.txt +1 -0
  248. data/testthegemgeneration/public/stylesheets/admin/assets.css +1 -0
  249. data/testthegemgeneration/public/stylesheets/admin/main.css +1 -0
  250. data/testthegemgeneration/public/stylesheets/admin/overrides.css +0 -0
  251. data/testthegemgeneration/public/stylesheets/sass/admin/_base.sass +17 -0
  252. data/testthegemgeneration/public/stylesheets/sass/admin/assets.sass +209 -0
  253. data/testthegemgeneration/public/stylesheets/sass/admin/main.sass +27 -0
  254. data/testthegemgeneration/public/stylesheets/sass/admin/modules/_boxes.sass +6 -0
  255. data/testthegemgeneration/public/stylesheets/sass/admin/modules/_links.sass +18 -0
  256. data/testthegemgeneration/public/stylesheets/sass/admin/overrides.sass +2 -0
  257. data/testthegemgeneration/public/stylesheets/sass/admin/partials/_actions.sass +96 -0
  258. data/testthegemgeneration/public/stylesheets/sass/admin/partials/_avatars.sass +10 -0
  259. data/testthegemgeneration/public/stylesheets/sass/admin/partials/_content.sass +58 -0
  260. data/testthegemgeneration/public/stylesheets/sass/admin/partials/_dateinput.sass +62 -0
  261. data/testthegemgeneration/public/stylesheets/sass/admin/partials/_deprecated.sass +55 -0
  262. data/testthegemgeneration/public/stylesheets/sass/admin/partials/_dropdown.sass +28 -0
  263. data/testthegemgeneration/public/stylesheets/sass/admin/partials/_footer.sass +12 -0
  264. data/testthegemgeneration/public/stylesheets/sass/admin/partials/_forms.sass +322 -0
  265. data/testthegemgeneration/public/stylesheets/sass/admin/partials/_header.sass +114 -0
  266. data/testthegemgeneration/public/stylesheets/sass/admin/partials/_index.sass +147 -0
  267. data/testthegemgeneration/public/stylesheets/sass/admin/partials/_layout.sass +10 -0
  268. data/testthegemgeneration/public/stylesheets/sass/admin/partials/_messages.sass +10 -0
  269. data/testthegemgeneration/public/stylesheets/sass/admin/partials/_popup.sass +213 -0
  270. data/testthegemgeneration/public/stylesheets/sass/admin/partials/_tabcontrol.sass +72 -0
  271. data/testthegemgeneration/public/stylesheets/sass/admin/partials/_toolbar.sass +31 -0
  272. data/testthegemgeneration/public/stylesheets/sass/admin/partials/_typography.sass +60 -0
  273. data/testthegemgeneration/public/stylesheets/sass/admin/partials/_validations.sass +19 -0
  274. data/testthegemgeneration/script/about +4 -0
  275. data/testthegemgeneration/script/autospec +5 -0
  276. data/testthegemgeneration/script/breakpointer +3 -0
  277. data/testthegemgeneration/script/console +3 -0
  278. data/testthegemgeneration/script/cucumber +10 -0
  279. data/testthegemgeneration/script/dbconsole +3 -0
  280. data/testthegemgeneration/script/extension +5 -0
  281. data/testthegemgeneration/script/generate +6 -0
  282. data/testthegemgeneration/script/performance/benchmarker +3 -0
  283. data/testthegemgeneration/script/performance/profiler +3 -0
  284. data/testthegemgeneration/script/performance/request +3 -0
  285. data/testthegemgeneration/script/process/inspector +3 -0
  286. data/testthegemgeneration/script/process/reaper +3 -0
  287. data/testthegemgeneration/script/process/spawner +3 -0
  288. data/testthegemgeneration/script/process/spinner +3 -0
  289. data/testthegemgeneration/script/runner +3 -0
  290. data/testthegemgeneration/script/server +3 -0
  291. data/testthegemgeneration/script/spec +5 -0
  292. data/testthegemgeneration/script/spec_server +116 -0
  293. data/testthegemgeneration/script/version +5 -0
  294. data/testthegemgeneration/tmp/radiant_config_cache.txt +0 -0
  295. metadata +845 -133
  296. data/public/stylesheets/admin/base.css +0 -1
@@ -0,0 +1,21 @@
1
+ # MIT License
2
+
3
+ Copyright (c) 2006-2009, John W. Long and Sean D. Cribbs.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,84 @@
1
+ ## Welcome to Radiant
2
+
3
+ Radiant is a no-fluff, open source content management system designed for
4
+ small teams. It is similar to Textpattern or MovableType, but is a general
5
+ purpose content management system (not just a blogging engine).
6
+
7
+ [![Build Status](https://secure.travis-ci.org/radiant/radiant.png)](http://travis-ci.org/radiant/radiant)
8
+
9
+ Radiant features:
10
+
11
+ * An elegant user interface
12
+ * The ability to arrange pages in a hierarchy
13
+ * Flexible templating with layouts, snippets, page parts, and a custom tagging
14
+ language (Radius: http://radius.rubyforge.org)
15
+ * A simple user management/permissions system
16
+ * Support for Markdown and Textile as well as traditional HTML (it's easy to
17
+ create other filters)
18
+ * An advanced plugin system
19
+ * Operates in two modes: dev and production depending on the URL
20
+ * A caching system which expires pages every 5 minutes
21
+ * Built using Ruby on Rails
22
+ * And much more...
23
+
24
+ ## License
25
+
26
+ Radiant is released under the MIT license and is copyright (c) 2006-2009
27
+ John W. Long and Sean Cribbs. A copy of the MIT license can be found in the
28
+ LICENSE file.
29
+
30
+ ## Installation and Setup
31
+
32
+ Radiant is a traditional Ruby on Rails application, meaning that you can
33
+ configure and run it the way you would a normal Rails application.
34
+
35
+ See the INSTALL file for more details.
36
+
37
+ ### Installation of a Prerelease
38
+
39
+ As Radiant nears newer releases, you can experiment with any prerelease version.
40
+
41
+ Install the prerelease gem with the following command:
42
+
43
+ $ gem install radiant --prerelease
44
+
45
+ This will install the gem with the prerelease name, for example: ‘radiant-0.9.0.rc2’.
46
+
47
+ ### Upgrading an Existing Project to a newer version
48
+
49
+ 1. Update the Radiant assets from in your project:
50
+
51
+ $ rake radiant:update
52
+
53
+ 2. Migrate the database:
54
+
55
+ $ rake production db:migrate
56
+
57
+ 3. Restart the web server
58
+
59
+ ## Development Requirements
60
+
61
+ To run tests you will need to have the following gems installed:
62
+
63
+ gem install ZenTest rspec rspec-rails cucumber webrat nokogiri sqlite3-ruby
64
+
65
+ ## Support
66
+
67
+ The best place to get support is on the mailing list:
68
+
69
+ http://radiantcms.org/mailing-list/
70
+
71
+ Most of the development for Radiant happens on Github:
72
+
73
+ http://github.com/radiant/radiant/
74
+
75
+ The project wiki is here:
76
+
77
+ http://wiki.github.com/radiant/radiant/
78
+
79
+
80
+ Enjoy!
81
+
82
+ --
83
+ The Radiant Dev Team
84
+ http://radiantcms.org
@@ -0,0 +1,3 @@
1
+ require File.join(File.dirname(__FILE__), 'config', 'boot')
2
+
3
+ import File.join(RADIANT_ROOT, 'Rakefile')
@@ -0,0 +1,2 @@
1
+ require File.dirname(__FILE__) + '/config/environment'
2
+ run ActionController::Dispatcher.new
@@ -0,0 +1,122 @@
1
+ # Don't change this file!
2
+ # Configure your app in config/environment.rb and config/environments/*.rb
3
+
4
+ RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT)
5
+ RAILS_ENV = (ENV['RAILS_ENV'] || 'development').dup unless defined?(RAILS_ENV)
6
+
7
+ module Rails
8
+ class << self
9
+ def vendor_rails?
10
+ File.exist?("#{RAILS_ROOT}/vendor/rails")
11
+ end
12
+ end
13
+ end
14
+
15
+ module Radiant
16
+ class << self
17
+ def boot!
18
+ unless booted?
19
+ preinitialize
20
+ pick_boot.run
21
+ end
22
+ end
23
+
24
+ def booted?
25
+ defined? Radiant::Initializer
26
+ end
27
+
28
+ def pick_boot
29
+ case
30
+ when app?
31
+ AppBoot.new
32
+ when vendor?
33
+ VendorBoot.new
34
+ else
35
+ GemBoot.new
36
+ end
37
+ end
38
+
39
+ def vendor?
40
+ File.exist?("#{RAILS_ROOT}/vendor/radiant")
41
+ end
42
+
43
+ def app?
44
+ File.exist?("#{RAILS_ROOT}/lib/radiant.rb")
45
+ end
46
+
47
+ def preinitialize
48
+ load(preinitializer_path) if File.exist?(preinitializer_path)
49
+ end
50
+
51
+ def loaded_via_gem?
52
+ pick_boot.is_a? GemBoot
53
+ end
54
+
55
+ def preinitializer_path
56
+ "#{RAILS_ROOT}/config/preinitializer.rb"
57
+ end
58
+ end
59
+
60
+ class Boot
61
+ def run
62
+ load_mutex
63
+ load_initializer
64
+ end
65
+
66
+ # RubyGems from version 1.6 does not require thread but Rails depend on it
67
+ # This should newer rails do automaticly
68
+ def load_mutex
69
+ begin
70
+ require "thread" unless defined?(Mutex)
71
+ rescue LoadError => e
72
+ $stderr.puts %(Mutex could not be initialized. #{load_error_message})
73
+ exit 1
74
+ end
75
+ end
76
+
77
+ def load_initializer
78
+ begin
79
+ require 'radiant'
80
+ require 'radiant/initializer'
81
+ rescue LoadError => e
82
+ $stderr.puts %(Radiant could not be initialized. #{load_error_message})
83
+ exit 1
84
+ end
85
+ Radiant::Initializer.run(:set_load_path)
86
+ Radiant::Initializer.run(:install_gem_spec_stubs)
87
+ Rails::GemDependency.add_frozen_gem_path
88
+ end
89
+ end
90
+
91
+ class VendorBoot < Boot
92
+ def load_initializer
93
+ $LOAD_PATH.unshift "#{RAILS_ROOT}/vendor/radiant/lib"
94
+ super
95
+ end
96
+
97
+ def load_error_message
98
+ "Please verify that vendor/radiant contains a complete copy of the Radiant sources."
99
+ end
100
+ end
101
+
102
+ class AppBoot < Boot
103
+ def load_initializer
104
+ $LOAD_PATH.unshift "#{RAILS_ROOT}/lib"
105
+ super
106
+ end
107
+
108
+ def load_error_message
109
+ "Please verify that you have a complete copy of the Radiant sources."
110
+ end
111
+ end
112
+
113
+ class GemBoot < Boot
114
+ # The location and version of the radiant gem should be set in your Gemfile
115
+ def load_error_message
116
+ "Have you run `bundle install`?'."
117
+ end
118
+ end
119
+ end
120
+
121
+ # All that for this:
122
+ Radiant.boot!
@@ -0,0 +1,7 @@
1
+ <%
2
+ rerun = File.file?('rerun.txt') ? IO.read('rerun.txt') : ""
3
+ rerun_opts = rerun.to_s.strip.empty? ? "--format progress features" : "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} #{rerun}"
4
+ std_opts = "#{rerun_opts} --format rerun --out rerun.txt --strict --require features --tags ~@wip"
5
+ %>
6
+ default: <%= std_opts %>
7
+ wip: --tags @wip:3 --wip features
@@ -0,0 +1,16 @@
1
+ # SQLite version 3.x
2
+ # gem install sqlite3-ruby
3
+ development:
4
+ adapter: sqlite3
5
+ database: db/development.sqlite3.db
6
+
7
+ # Warning: The database defined as 'test' will be erased and
8
+ # re-generated from your development database when you run 'rake'.
9
+ # Do not set this db to the same as development or production.
10
+ test:
11
+ adapter: sqlite3
12
+ database: db/test.sqlite3.db
13
+
14
+ production:
15
+ adapter: sqlite3
16
+ database: db/production.sqlite3.db
@@ -0,0 +1,81 @@
1
+ # Be sure to restart your server when you modify this file
2
+
3
+ # Uncomment below to force Rails into production mode when
4
+ # you don't control web/app server and can't set it the proper way
5
+ # ENV['RAILS_ENV'] ||= 'production'
6
+
7
+ # Specifies gem version of Rails to use when vendor/rails is not present
8
+ require File.join(File.dirname(__FILE__), 'boot')
9
+
10
+ require 'radius'
11
+
12
+ Radiant::Initializer.run do |config|
13
+ # Skip frameworks you're not going to use (only works if using vendor/rails).
14
+ # To use Rails without a database, you must remove the Active Record framework
15
+ # config.frameworks -= [ :action_mailer ]
16
+
17
+ # Only load the extensions named here, in the order given. By default all
18
+ # extensions in vendor/extensions are loaded, in alphabetical order. :all
19
+ # can be used as a placeholder for all extensions not explicitly named.
20
+ # config.extensions = [ :all ]
21
+
22
+ # Unload the extensions named here.
23
+ # config.ignore_extensions []
24
+
25
+ # Your secret key for verifying cookie session data integrity.
26
+ # If you change this key, all old sessions will become invalid!
27
+ # Make sure the secret is at least 30 characters and all random,
28
+ # no regular words or you'll be exposed to dictionary attacks.
29
+ config.action_controller.session = {
30
+ :key => '_testthegemgeneration_session',
31
+ :secret => '862d9e8dfd24ebe750e9eb234d47bb0972c47791'
32
+ }
33
+
34
+ # Comment out this line if you want to turn off all caching, or
35
+ # add options to modify the behavior. In the majority of deployment
36
+ # scenarios it is desirable to leave Radiant's cache enabled and in
37
+ # the default configuration.
38
+ #
39
+ # Additional options:
40
+ # :use_x_sendfile => true
41
+ # Turns on X-Sendfile support for Apache with mod_xsendfile or lighttpd.
42
+ # :use_x_accel_redirect => '/some/virtual/path'
43
+ # Turns on X-Accel-Redirect support for nginx. You have to provide
44
+ # a path that corresponds to a virtual location in your webserver
45
+ # configuration.
46
+ # :entitystore => "radiant:tmp/cache/entity"
47
+ # Sets the entity store type (preceding the colon) and storage
48
+ # location (following the colon, relative to Rails.root).
49
+ # We recommend you use radiant: since this will enable manual expiration.
50
+ # :metastore => "radiant:tmp/cache/meta"
51
+ # Sets the meta store type and storage location. We recommend you use
52
+ # radiant: since this will enable manual expiration and acceleration headers.
53
+ config.middleware.use ::Radiant::Cache
54
+
55
+ # Use the database for sessions instead of the cookie-based default,
56
+ # which shouldn't be used to store highly confidential information
57
+ # (create the session table with 'rake db:sessions:create')
58
+ config.action_controller.session_store = :cookie_store
59
+
60
+ # Activate observers that should always be running
61
+ config.active_record.observers = :user_action_observer
62
+
63
+ # Make Active Record use UTC-base instead of local time
64
+ config.time_zone = 'UTC'
65
+
66
+ # Set the default field error proc
67
+ config.action_view.field_error_proc = Proc.new do |html, instance|
68
+ if html !~ /label/
69
+ %{<span class="error-with-field">#{html} <span class="error">#{[instance.error_message].flatten.first}</span></span>}
70
+ else
71
+ html
72
+ end
73
+ end
74
+
75
+ config.after_initialize do
76
+ # Add new inflection rules using the following format:
77
+ ActiveSupport::Inflector.inflections do |inflect|
78
+ inflect.uncountable 'config'
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,22 @@
1
+ # Edit at your own peril - it's recommended to regenerate this file
2
+ # in the future when you upgrade to a newer version of Cucumber.
3
+
4
+ # IMPORTANT: Setting config.cache_classes to false is known to
5
+ # break Cucumber's use_transactional_fixtures method.
6
+ # For more information see https://rspec.lighthouseapp.com/projects/16211/tickets/165
7
+ config.cache_classes = true
8
+
9
+ # Log error messages when you accidentally call methods on nil.
10
+ config.whiny_nils = true
11
+
12
+ # Show full error reports and disable caching
13
+ config.action_controller.consider_all_requests_local = true
14
+ config.action_controller.perform_caching = false
15
+
16
+ # Disable request forgery protection in test environment
17
+ config.action_controller.allow_forgery_protection = false
18
+
19
+ # Tell Action Mailer not to deliver emails to the real world.
20
+ # The :test delivery method accumulates sent emails in the
21
+ # ActionMailer::Base.deliveries array.
22
+ config.action_mailer.delivery_method = :test
@@ -0,0 +1,17 @@
1
+ # Settings specified here will take precedence over those in config/environment.rb
2
+
3
+ # In the development environment your application's code is reloaded on
4
+ # every request. This slows down response time but is perfect for development
5
+ # since you don't have to restart the webserver when you make code changes.
6
+ config.cache_classes = false
7
+
8
+ # Log error messages when you accidentally call methods on nil.
9
+ config.whiny_nils = true
10
+
11
+ # Show full error reports and caching is turned off
12
+ config.action_controller.consider_all_requests_local = true
13
+ config.action_view.debug_rjs = true
14
+ config.action_controller.perform_caching = false
15
+
16
+ # Don't care if the mailer can't send
17
+ config.action_mailer.raise_delivery_errors = false
@@ -0,0 +1,24 @@
1
+ # Settings specified here will take precedence over those in config/environment.rb
2
+
3
+ # The production environment is meant for finished, "live" apps.
4
+ # Code is not reloaded between requests
5
+ config.cache_classes = true
6
+
7
+ # Use a different logger for distributed setups
8
+ # config.logger = SyslogLogger.new
9
+
10
+
11
+ # Full error reports are disabled and caching is on
12
+ config.action_controller.consider_all_requests_local = false
13
+ config.action_controller.perform_caching = true
14
+
15
+ # Enable serving of images, stylesheets, and javascripts from an asset server
16
+ # config.action_controller.asset_host = "http://assets.example.com"
17
+
18
+ # Disable delivery errors if you bad email addresses should just be ignored
19
+ # config.action_mailer.raise_delivery_errors = false
20
+
21
+ # Cache your content for a longer time, the default is 5.minutes
22
+ # config.after_initialize do
23
+ # SiteController.cache_timeout = 12.hours
24
+ # end
@@ -0,0 +1,32 @@
1
+ # Settings specified here will take precedence over those in config/environment.rb
2
+
3
+ # The test environment is used exclusively to run your application's
4
+ # test suite. You never need to work with it otherwise. Remember that
5
+ # your test database is "scratch space" for the test suite and is wiped
6
+ # and recreated between test runs. Don't rely on the data there!
7
+ config.cache_classes = true
8
+
9
+ # ensure test extensions are loaded
10
+ # test_extension_dir = File.join(File.expand_path(RADIANT_ROOT), 'test', 'fixtures', 'extensions')
11
+ # config.extension_paths.unshift test_extension_dir
12
+ # config.extension_paths.uniq!
13
+ # if !config.extensions.include?(:all)
14
+ # config.extensions.concat(Dir["#{test_extension_dir}/*"].sort.map {|x| File.basename(x).sub(/^\d+_/,'')})
15
+ # config.extensions.uniq!
16
+ # end
17
+
18
+ # Log error messages when you accidentally call methods on nil.
19
+ config.whiny_nils = true
20
+
21
+ # Show full error reports and disable caching
22
+ config.action_controller.consider_all_requests_local = true
23
+ config.action_controller.perform_caching = false
24
+
25
+ # Disable request forgery protection in test environment
26
+ config.action_controller.allow_forgery_protection = false
27
+
28
+ # Tell ActionMailer not to deliver emails to the real world.
29
+ # The :test delivery method accumulates sent emails in the
30
+ # ActionMailer::Base.deliveries array.
31
+ config.action_mailer.delivery_method = :test
32
+