skylinecms 3.1.0 → 3.2.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 (540) hide show
  1. data/.gitignore +5 -0
  2. data/CHANGELOG +51 -1
  3. data/Gemfile +8 -0
  4. data/Rakefile +0 -43
  5. data/app/controllers/skyline/application_controller.rb +30 -26
  6. data/app/controllers/skyline/articles_controller.rb +8 -28
  7. data/app/controllers/skyline/authentications_controller.rb +6 -8
  8. data/app/controllers/skyline/browser/links_controller.rb +12 -8
  9. data/app/controllers/skyline/browser/tabs/linkables_controller.rb +9 -0
  10. data/app/controllers/skyline/browser/tabs/media_library/media_files_controller.rb +0 -12
  11. data/app/controllers/skyline/content/editors/editable_list_controller.rb +0 -4
  12. data/app/controllers/skyline/content/editors/joinable_list_controller.rb +1 -19
  13. data/app/controllers/skyline/content_controller.rb +14 -30
  14. data/app/controllers/skyline/content_items_controller.rb +3 -9
  15. data/app/controllers/skyline/content_sections_controller.rb +3 -10
  16. data/app/controllers/skyline/link_section_links_controller.rb +2 -10
  17. data/app/controllers/skyline/media/data_controller.rb +24 -14
  18. data/app/controllers/skyline/media/dirs_controller.rb +12 -26
  19. data/app/controllers/skyline/media/files_controller.rb +12 -28
  20. data/app/controllers/skyline/publications_controller.rb +0 -12
  21. data/app/controllers/skyline/published_publications_controller.rb +0 -4
  22. data/app/controllers/skyline/sections_controller.rb +4 -18
  23. data/app/controllers/skyline/site/media_files_data_controller.rb +11 -13
  24. data/app/controllers/skyline/site/pages_controller.rb +4 -3
  25. data/app/controllers/skyline/skyline2_controller.rb +1 -1
  26. data/app/controllers/skyline/users_controller.rb +7 -31
  27. data/app/controllers/skyline/variant_current_editor_controller.rb +5 -5
  28. data/app/controllers/skyline/variants_controller.rb +3 -3
  29. data/app/helpers/skyline/application_helper.rb +16 -5
  30. data/app/helpers/skyline/button_helper.rb +12 -18
  31. data/app/helpers/skyline/content_helper.rb +11 -11
  32. data/app/helpers/skyline/dialog_helper.rb +3 -2
  33. data/app/helpers/skyline/editors/checkable_list.rb +4 -2
  34. data/app/helpers/skyline/editors/date_time.rb +1 -1
  35. data/app/helpers/skyline/editors/display.rb +1 -1
  36. data/app/helpers/skyline/editors/editable_list.rb +13 -8
  37. data/app/helpers/skyline/editors/editor.rb +10 -10
  38. data/app/helpers/skyline/editors/list.rb +2 -2
  39. data/app/helpers/skyline/editors/page_browser.rb +1 -0
  40. data/app/helpers/skyline/editors/wysiwyg.rb +2 -3
  41. data/app/helpers/skyline/form_helper.rb +36 -0
  42. data/app/helpers/skyline/media/files_helper.rb +1 -1
  43. data/app/helpers/skyline/message_generator.rb +13 -4
  44. data/app/helpers/skyline/pages_helper.rb +1 -1
  45. data/app/helpers/skyline/plugin_helper.rb +1 -1
  46. data/app/helpers/skyline/presenters/presenter.rb +12 -8
  47. data/app/helpers/skyline/ref_object_helper.rb +9 -7
  48. data/app/helpers/skyline/translation_helper.rb +1 -1
  49. data/app/helpers/skyline/tree_helper.rb +1 -3
  50. data/app/middleware/skyline/flash_session_cookie_middleware.rb +6 -1
  51. data/app/middleware/skyline/plugins_loader_middleware.rb +1 -1
  52. data/app/middleware/skyline/sprockets_middleware.rb +1 -1
  53. data/app/models/skyline/article.rb +94 -26
  54. data/app/models/skyline/article_version.rb +22 -9
  55. data/app/models/skyline/image_ref.rb +1 -1
  56. data/app/models/skyline/inline_ref.rb +78 -62
  57. data/app/models/skyline/link_ref.rb +1 -1
  58. data/app/models/skyline/media_cache.rb +4 -2
  59. data/app/models/skyline/media_file.rb +2 -5
  60. data/app/models/skyline/media_node.rb +2 -2
  61. data/app/models/skyline/object_ref.rb +2 -2
  62. data/app/models/skyline/page.rb +8 -6
  63. data/app/models/skyline/page_fragment.rb +4 -2
  64. data/app/models/skyline/publication.rb +1 -1
  65. data/app/models/skyline/sections/content_collection_section.rb +1 -1
  66. data/app/models/skyline/sections/link_section.rb +1 -1
  67. data/app/models/skyline/user.rb +17 -7
  68. data/app/models/skyline/user_preference.rb +1 -1
  69. data/app/models/skyline/variant.rb +11 -5
  70. data/app/templates/skyline/page/default/index.html.erb +1 -1
  71. data/app/templates/skyline/sections/raw_section/default/index.html.erb +1 -1
  72. data/app/templates/skyline/sections/wysiwyg_section/default/index.html.erb +1 -1
  73. data/app/views/skyline/articles/_currently_editing.html.erb +1 -1
  74. data/app/views/skyline/articles/_meta.html.erb +24 -11
  75. data/app/views/skyline/articles/_security.html.erb +2 -2
  76. data/app/views/skyline/articles/_takeover_action.html.erb +1 -1
  77. data/app/views/skyline/articles/edit.html.erb +29 -16
  78. data/app/views/skyline/articles/edit_preview_only.html.erb +2 -2
  79. data/app/views/skyline/articles/index.html.erb +2 -2
  80. data/app/views/skyline/articles/page/_header.html.erb +1 -1
  81. data/app/views/skyline/articles/page/_index.html.erb +9 -3
  82. data/app/views/skyline/articles/page_fragment/_index.html.erb +7 -2
  83. data/app/views/skyline/articles/update.js.erb +20 -0
  84. data/app/views/skyline/authentications/new.html.erb +1 -1
  85. data/app/views/skyline/browser/links/_index.html.erb +2 -0
  86. data/app/views/skyline/browser/tabs/linkables/_index.html.erb +29 -0
  87. data/app/views/skyline/browser/tabs/linkables/_show.html.erb +67 -0
  88. data/app/views/skyline/browser/tabs/linkables/show.js.erb +4 -0
  89. data/app/views/skyline/browser/tabs/media_library/_index.html.erb +2 -2
  90. data/app/views/skyline/browser/tabs/media_library/media_files/_index.html.erb +4 -35
  91. data/app/views/skyline/browser/tabs/media_library/media_files/_show.html.erb +1 -3
  92. data/app/views/skyline/browser/tabs/media_library/media_files/index.js.erb +1 -0
  93. data/app/views/skyline/browser/tabs/media_library/media_files/show.js.erb +1 -0
  94. data/app/views/skyline/browser/tabs/pages/_index.html.erb +1 -1
  95. data/app/views/skyline/content/_add.rhtml +6 -1
  96. data/app/views/skyline/content/_filter.rhtml +1 -1
  97. data/app/views/skyline/content/_import.html.erb +1 -1
  98. data/app/views/skyline/content/_index.html.erb +2 -2
  99. data/app/views/skyline/content/_meta.html.erb +2 -2
  100. data/app/views/skyline/content/create.rhtml +1 -1
  101. data/app/views/skyline/content/edit.rhtml +1 -1
  102. data/app/views/skyline/content/editors/editable_list/new.js.erb +2 -0
  103. data/app/views/skyline/content/editors/joinable_list/_add.html.erb +17 -10
  104. data/app/views/skyline/content/editors/joinable_list/_list.html.erb +24 -8
  105. data/app/views/skyline/content/editors/joinable_list/cancel.js.erb +1 -0
  106. data/app/views/skyline/content/editors/joinable_list/index.js.erb +1 -0
  107. data/app/views/skyline/content/editors/joinable_list/new.js.erb +5 -0
  108. data/app/views/skyline/content/field.js.erb +2 -0
  109. data/app/views/skyline/content/import.js.erb +4 -0
  110. data/app/views/skyline/content/order.js.erb +6 -0
  111. data/app/views/skyline/content/presenters/_table.html.erb +1 -1
  112. data/app/views/skyline/content_items/_content_item.html.erb +2 -2
  113. data/app/views/skyline/content_items/new.js.erb +6 -0
  114. data/app/views/skyline/content_sections/_tags.html.erb +2 -2
  115. data/app/views/skyline/content_sections/new.js.erb +6 -0
  116. data/app/views/skyline/link_section_links/_form.html.erb +1 -1
  117. data/app/views/skyline/link_section_links/new.js.erb +4 -0
  118. data/app/views/skyline/locales/show.js.erb +3 -3
  119. data/app/views/skyline/media/dirs/_edit.html.erb +9 -7
  120. data/app/views/skyline/media/dirs/edit.js.erb +1 -0
  121. data/app/views/skyline/media/dirs/index.html.erb +16 -6
  122. data/app/views/skyline/media/dirs/index.js.erb +6 -0
  123. data/app/views/skyline/media/dirs/show.js.erb +5 -0
  124. data/app/views/skyline/media/files/_edit.html.erb +13 -11
  125. data/app/views/skyline/media/files/_index.html.erb +2 -2
  126. data/app/views/skyline/media/files/_new.html.erb +2 -2
  127. data/app/views/skyline/media/files/edit.js.erb +4 -0
  128. data/app/views/skyline/media/files/index.js.erb +4 -0
  129. data/app/views/skyline/media/files/update.js.erb +8 -0
  130. data/app/views/skyline/publications/_index.html.erb +2 -2
  131. data/app/views/skyline/publications/index.js.erb +9 -0
  132. data/app/views/skyline/sections/_content_collection_section.html.erb +6 -6
  133. data/app/views/skyline/sections/_content_item_section.html.erb +1 -1
  134. data/app/views/skyline/sections/_form.html.erb +4 -4
  135. data/app/views/skyline/sections/_link_section.html.erb +6 -1
  136. data/app/views/skyline/sections/_splitter_section.html.erb +1 -1
  137. data/app/views/skyline/sections/_wysiwyg_section.html.erb +2 -2
  138. data/app/views/skyline/sections/new.js.erb +12 -0
  139. data/app/views/skyline/settings/edit.html.erb +1 -1
  140. data/app/views/skyline/shared/_head.html.erb +3 -0
  141. data/app/views/skyline/shared/_header_area.html.erb +5 -5
  142. data/app/views/skyline/users/_edit.html.erb +1 -1
  143. data/app/views/skyline/users/_form.html.erb +1 -1
  144. data/app/views/skyline/users/_new.html.erb +1 -1
  145. data/app/views/skyline/users/create.js.erb +2 -0
  146. data/app/views/skyline/users/edit.js.erb +1 -0
  147. data/app/views/skyline/users/index.html.erb +21 -6
  148. data/app/views/skyline/users/new.js.erb +1 -0
  149. data/app/views/skyline/users/update.js.erb +2 -0
  150. data/config/initializers/dependencies.rb +1 -17
  151. data/config/initializers/gem_dependencies.rb +10 -0
  152. data/config/initializers/locales.rb +8 -1
  153. data/config/initializers/middlewares.rb +7 -3
  154. data/config/initializers/observers.rb +6 -4
  155. data/config/locales/en-US.yml +44 -34
  156. data/config/locales/nl-NL.yml +45 -33
  157. data/config/routes.rb +65 -74
  158. data/db/migrate/20090508145820_create_skyline_pages.rb +2 -2
  159. data/db/migrate/20090508145852_create_skyline_page_versions.rb +2 -2
  160. data/db/migrate/20090508150149_create_skyline_sections.rb +1 -1
  161. data/db/migrate/20090610142139_add_skyline_tags_taggable_type.rb +2 -2
  162. data/db/migrate/20090624154251_create_skyline_link_section_links.rb +1 -1
  163. data/db/migrate/20100120113953_remove_unused_articles_index.rb +1 -1
  164. data/db/migrate/20110816080626_add_skyline_test_article_data.rb +13 -0
  165. data/db/migrate/20111101092405_rename_indexes.rb +24 -0
  166. data/doc/INSTALL.md +54 -27
  167. data/doc/MIGRATION.md +27 -2
  168. data/lib/skyline.rb +2 -1
  169. data/lib/skyline/authentication/user.rb +80 -0
  170. data/lib/skyline/belongs_to_referable.rb +1 -1
  171. data/lib/skyline/cli/init.rb +14 -26
  172. data/lib/skyline/cli/init/templates/config/initializers/skyline_configuration.rb +0 -1
  173. data/lib/skyline/configuration.rb +74 -32
  174. data/lib/skyline/content/content.rb +7 -6
  175. data/lib/skyline/content/field_meta_data.rb +2 -2
  176. data/lib/skyline/content/stack.rb +1 -1
  177. data/lib/skyline/content_item_section_selectable.rb +4 -4
  178. data/lib/skyline/deprecated/version3_0_8.rb +2 -2
  179. data/lib/skyline/engine.rb +37 -0
  180. data/lib/skyline/form_builder.rb +8 -8
  181. data/lib/skyline/linkable.rb +28 -0
  182. data/lib/skyline/plugins/manager.rb +77 -0
  183. data/lib/skyline/plugins/plugin.rb +89 -0
  184. data/lib/skyline/rendering/helpers/renderer_helper.rb +1 -1
  185. data/lib/skyline/rendering/renderer.rb +27 -13
  186. data/lib/skyline/route_constraint.rb +15 -0
  187. data/lib/skyline/settings.rb +9 -7
  188. data/lib/skyline/taggable.rb +2 -2
  189. data/lib/skyline/version.rb +4 -4
  190. data/lib/skylinecms.rb +5 -3
  191. data/lib/tasks/database.rake +2 -2
  192. data/public/skyline/javascripts/src/application.js +5 -4
  193. data/public/skyline/javascripts/src/rails.js +165 -0
  194. data/public/skyline/javascripts/src/sections.js +6 -9
  195. data/public/skyline/javascripts/src/skyline.editor/src/plugins/autoresize/editor_plugin.js +72 -27
  196. data/public/skyline/javascripts/src/skyline.editor/src/plugins/skylineimage/dialog.js +13 -12
  197. data/public/skyline/javascripts/src/skyline.editor/src/plugins/skylinelink/dialog.js +7 -7
  198. data/public/skyline/javascripts/src/skyline.editor/src/skyline.editor.js +4 -3
  199. data/public/skyline/javascripts/src/skyline.editor/src/theme.js +101 -536
  200. data/public/skyline/javascripts/src/skyline.editor/test/multiple_editors.html +1 -0
  201. data/public/skyline/javascripts/src/skyline.editor/test/single.html +56 -0
  202. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/changelog.txt +1410 -1091
  203. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/accessibility.html +101 -0
  204. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/custom_formats.html +1 -1
  205. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/full.html +12 -12
  206. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/lists/media_list.js +5 -1
  207. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/media/sample.flv +0 -0
  208. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/menu.html +2 -1
  209. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/skins.html +4 -4
  210. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/word.html +3 -2
  211. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/langs/en.js +1 -170
  212. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advhr/langs/en_dlg.js +1 -5
  213. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advhr/rule.htm +30 -29
  214. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin.js +1 -1
  215. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin_src.js +1 -1
  216. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advimage/image.htm +34 -31
  217. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advimage/js/image.js +32 -13
  218. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advimage/langs/en_dlg.js +1 -43
  219. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advlink/js/advlink.js +21 -17
  220. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advlink/langs/en_dlg.js +1 -52
  221. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advlink/link.htm +35 -30
  222. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advlist/editor_plugin.js +1 -1
  223. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advlist/editor_plugin_src.js +31 -9
  224. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/autolink/editor_plugin.js +1 -0
  225. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/autolink/editor_plugin_src.js +172 -0
  226. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/autoresize/editor_plugin.js +1 -1
  227. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/autoresize/editor_plugin_src.js +23 -5
  228. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/autosave/editor_plugin.js +1 -1
  229. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/autosave/editor_plugin_src.js +14 -5
  230. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin.js +1 -1
  231. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js +1 -1
  232. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin.js +1 -1
  233. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js +34 -21
  234. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/emotions.htm +15 -14
  235. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif +0 -0
  236. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-laughing.gif +0 -0
  237. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-sealed.gif +0 -0
  238. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-smile.gif +0 -0
  239. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-surprised.gif +0 -0
  240. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-wink.gif +0 -0
  241. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/langs/en_dlg.js +1 -20
  242. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/example_dependency/editor_plugin.js +1 -0
  243. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/example_dependency/editor_plugin_src.js +50 -0
  244. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullpage/css/fullpage.css +3 -42
  245. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin.js +1 -1
  246. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin_src.js +315 -63
  247. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullpage/fullpage.htm +18 -330
  248. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullpage/js/fullpage.js +199 -438
  249. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/en_dlg.js +1 -85
  250. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin.js +1 -1
  251. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js +12 -4
  252. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullscreen/fullscreen.htm +2 -1
  253. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin.js +1 -1
  254. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin_src.js +80 -16
  255. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif +0 -0
  256. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif +0 -0
  257. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif +0 -0
  258. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif +0 -0
  259. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif +0 -0
  260. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css +1 -1
  261. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin.js +1 -1
  262. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin_src.js +2 -0
  263. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin.js +1 -1
  264. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin_src.js +31 -28
  265. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin.js +1 -0
  266. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin_src.js +781 -0
  267. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/css/media.css +5 -4
  268. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin.js +1 -1
  269. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin_src.js +703 -295
  270. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/js/media.js +361 -602
  271. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/langs/en_dlg.js +1 -103
  272. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/media.htm +365 -285
  273. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/moxieplayer.swf +0 -0
  274. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin.js +1 -1
  275. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin_src.js +4 -3
  276. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin.js +1 -1
  277. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin_src.js +7 -2
  278. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin.js +1 -1
  279. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin_src.js +1 -4
  280. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin.js +1 -1
  281. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin_src.js +148 -239
  282. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/paste/langs/en_dlg.js +1 -5
  283. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin.js +1 -1
  284. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin_src.js +4 -0
  285. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/searchreplace/js/searchreplace.js +18 -6
  286. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/en_dlg.js +1 -16
  287. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/searchreplace/searchreplace.htm +17 -16
  288. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin.js +1 -1
  289. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js +55 -38
  290. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/style/js/props.js +3 -9
  291. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/style/langs/en_dlg.js +1 -63
  292. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/style/props.htm +515 -398
  293. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin.js +1 -1
  294. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin_src.js +122 -112
  295. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/cell.htm +16 -14
  296. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin.js +1 -1
  297. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin_src.js +1364 -1139
  298. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/js/cell.js +44 -11
  299. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/js/row.js +18 -18
  300. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/js/table.js +15 -14
  301. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/langs/en_dlg.js +1 -74
  302. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/merge_cells.htm +11 -11
  303. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/row.htm +12 -9
  304. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/table.htm +54 -53
  305. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/template/js/template.js +1 -1
  306. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/template/langs/en_dlg.js +1 -15
  307. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin.js +1 -1
  308. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin_src.js +1 -1
  309. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin.js +1 -1
  310. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin_src.js +36 -20
  311. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/abbr.htm +6 -5
  312. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/acronym.htm +6 -5
  313. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/attributes.htm +6 -5
  314. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/cite.htm +5 -4
  315. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/del.htm +9 -8
  316. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin.js +1 -1
  317. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js +6 -6
  318. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/ins.htm +11 -10
  319. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/attributes.js +1 -16
  320. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/del.js +2 -12
  321. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/element_common.js +3 -5
  322. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/ins.js +4 -13
  323. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/en_dlg.js +1 -32
  324. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/about.htm +3 -5
  325. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/anchor.htm +5 -5
  326. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/charmap.htm +39 -40
  327. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/color_picker.htm +10 -9
  328. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/editor_template.js +1 -1
  329. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/editor_template_src.js +195 -54
  330. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/image.htm +51 -51
  331. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/img/colorpicker.jpg +0 -0
  332. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/img/flash.gif +0 -0
  333. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/img/icons.gif +0 -0
  334. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/img/iframe.gif +0 -0
  335. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/{plugins/pagebreak → themes/advanced}/img/pagebreak.gif +0 -0
  336. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/img/quicktime.gif +0 -0
  337. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/{plugins/media → themes/advanced}/img/realmedia.gif +0 -0
  338. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/img/shockwave.gif +0 -0
  339. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/{plugins/media → themes/advanced}/img/trans.gif +0 -0
  340. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/img/video.gif +0 -0
  341. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/{plugins/media → themes/advanced}/img/windowsmedia.gif +0 -0
  342. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/js/about.js +1 -0
  343. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/js/anchor.js +5 -0
  344. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/js/charmap.js +26 -6
  345. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/js/color_picker.js +108 -32
  346. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/js/image.js +12 -6
  347. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/js/link.js +4 -7
  348. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/js/source_editor.js +6 -12
  349. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/langs/en.js +1 -62
  350. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/langs/en_dlg.js +1 -51
  351. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/link.htm +27 -28
  352. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/shortcuts.htm +47 -0
  353. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/content.css +14 -1
  354. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/buttons.png +0 -0
  355. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/items.gif +0 -0
  356. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/tabs.gif +0 -0
  357. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/ui.css +5 -4
  358. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/content.css +24 -0
  359. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/dialog.css +105 -0
  360. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/ui.css +102 -0
  361. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/content.css +12 -0
  362. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css +1 -0
  363. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png +0 -0
  364. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png +0 -0
  365. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png +0 -0
  366. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui.css +8 -6
  367. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css +1 -1
  368. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css +1 -1
  369. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/source_editor.htm +3 -3
  370. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/simple/editor_template.js +1 -1
  371. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/simple/editor_template_src.js +1 -2
  372. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/simple/img/icons.gif +0 -0
  373. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/simple/langs/en.js +1 -11
  374. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/tiny_mce.js +1 -1
  375. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/tiny_mce_popup.js +1 -1
  376. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/tiny_mce_src.js +7838 -5579
  377. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/utils/editable_selects.js +1 -1
  378. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/utils/form_utils.js +14 -4
  379. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/utils/mctabs.js +95 -10
  380. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/utils/validate.js +35 -3
  381. data/public/skyline/javascripts/src/skyline/src/drag.js +10 -7
  382. data/public/skyline/javascripts/src/skyline/src/layout.js +13 -12
  383. data/public/skyline/javascripts/src/skyline/src/menubutton.js +1 -3
  384. data/public/skyline/javascripts/src/skyline/src/sortable.js +7 -5
  385. data/public/skyline/javascripts/src/skyline/src/tree.js +8 -4
  386. data/public/skyline/javascripts/src/skyline/test/sortable.html +73 -12
  387. data/public/skyline/javascripts/src/skyline/vendor/mootools/mootools-core.js +485 -2
  388. data/public/skyline/javascripts/src/skyline/vendor/mootools/mootools-more.js +130 -81
  389. data/public/skyline/stylesheets/general.css +23 -6
  390. data/skylinecms.gemspec +45 -0
  391. data/test/mocks/test_article.rb +11 -0
  392. data/test/mocks/test_section.rb +1 -1
  393. data/test/test_helper.rb +2 -1
  394. data/test/unit/article_test.rb +142 -0
  395. data/test/unit/inline_ref_test.rb +38 -16
  396. data/test/unit/test_content_object_test.rb +2 -1
  397. data/vendor/digitpaint/nested_attributes_positioning.rb +1 -1
  398. metadata +207 -487
  399. data/app/helpers/skyline/media_files_helper.rb +0 -7
  400. data/config/initializers/javascript_generator_methods.rb +0 -4
  401. data/config/initializers/rails_defaults.rb +0 -6
  402. data/doc/Bundler.md +0 -76
  403. data/lib/skyline/plugins_manager.rb +0 -150
  404. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/translate.html +0 -84
  405. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/css/content.css +0 -6
  406. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/img/flash.gif +0 -0
  407. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/img/flv_player.swf +0 -0
  408. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/img/quicktime.gif +0 -0
  409. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/img/shockwave.gif +0 -0
  410. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/pagebreak/css/content.css +0 -1
  411. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/pagebreak/img/trans.gif +0 -0
  412. data/rails/init.rb +0 -32
  413. data/vendor/digitpaint/personify/README.md +0 -86
  414. data/vendor/digitpaint/personify/lib/parser/personify.rb +0 -838
  415. data/vendor/digitpaint/personify/lib/parser/personify.treetop +0 -126
  416. data/vendor/digitpaint/personify/lib/parser/personify_node_classes.rb +0 -7
  417. data/vendor/digitpaint/personify/lib/template.rb +0 -16
  418. data/vendor/digitpaint/personify/personify.rb +0 -7
  419. data/vendor/digitpaint/personify/script/generate_parser.rb +0 -6
  420. data/vendor/digitpaint/personify/test/fixtures/multiple_tags.txt +0 -8
  421. data/vendor/digitpaint/personify/test/parse_runner.rb +0 -25
  422. data/vendor/digitpaint/personify/test/parser_test.rb +0 -109
  423. data/vendor/digitpaint/personify/test/test_helper.rb +0 -16
  424. data/vendor/digitpaint/personify/vendor/treetop/.gitignore +0 -5
  425. data/vendor/digitpaint/personify/vendor/treetop/History.txt +0 -9
  426. data/vendor/digitpaint/personify/vendor/treetop/README +0 -164
  427. data/vendor/digitpaint/personify/vendor/treetop/Rakefile +0 -20
  428. data/vendor/digitpaint/personify/vendor/treetop/Treetop.tmbundle/Snippets/grammar ___ end.tmSnippet +0 -20
  429. data/vendor/digitpaint/personify/vendor/treetop/Treetop.tmbundle/Snippets/rule ___ end.tmSnippet +0 -18
  430. data/vendor/digitpaint/personify/vendor/treetop/Treetop.tmbundle/Syntaxes/Treetop Grammar.tmLanguage +0 -251
  431. data/vendor/digitpaint/personify/vendor/treetop/Treetop.tmbundle/info.plist +0 -10
  432. data/vendor/digitpaint/personify/vendor/treetop/bin/tt +0 -28
  433. data/vendor/digitpaint/personify/vendor/treetop/doc/contributing_and_planned_features.markdown +0 -103
  434. data/vendor/digitpaint/personify/vendor/treetop/doc/grammar_composition.markdown +0 -65
  435. data/vendor/digitpaint/personify/vendor/treetop/doc/index.markdown +0 -90
  436. data/vendor/digitpaint/personify/vendor/treetop/doc/pitfalls_and_advanced_techniques.markdown +0 -51
  437. data/vendor/digitpaint/personify/vendor/treetop/doc/semantic_interpretation.markdown +0 -189
  438. data/vendor/digitpaint/personify/vendor/treetop/doc/site.rb +0 -110
  439. data/vendor/digitpaint/personify/vendor/treetop/doc/sitegen.rb +0 -60
  440. data/vendor/digitpaint/personify/vendor/treetop/doc/syntactic_recognition.markdown +0 -100
  441. data/vendor/digitpaint/personify/vendor/treetop/doc/using_in_ruby.markdown +0 -21
  442. data/vendor/digitpaint/personify/vendor/treetop/examples/lambda_calculus/arithmetic.rb +0 -551
  443. data/vendor/digitpaint/personify/vendor/treetop/examples/lambda_calculus/arithmetic.treetop +0 -97
  444. data/vendor/digitpaint/personify/vendor/treetop/examples/lambda_calculus/arithmetic_node_classes.rb +0 -7
  445. data/vendor/digitpaint/personify/vendor/treetop/examples/lambda_calculus/arithmetic_test.rb +0 -54
  446. data/vendor/digitpaint/personify/vendor/treetop/examples/lambda_calculus/lambda_calculus +0 -0
  447. data/vendor/digitpaint/personify/vendor/treetop/examples/lambda_calculus/lambda_calculus.rb +0 -718
  448. data/vendor/digitpaint/personify/vendor/treetop/examples/lambda_calculus/lambda_calculus.treetop +0 -132
  449. data/vendor/digitpaint/personify/vendor/treetop/examples/lambda_calculus/lambda_calculus_node_classes.rb +0 -5
  450. data/vendor/digitpaint/personify/vendor/treetop/examples/lambda_calculus/lambda_calculus_test.rb +0 -89
  451. data/vendor/digitpaint/personify/vendor/treetop/examples/lambda_calculus/test_helper.rb +0 -18
  452. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop.rb +0 -11
  453. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/bootstrap_gen_1_metagrammar.rb +0 -45
  454. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler.rb +0 -6
  455. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/grammar_compiler.rb +0 -40
  456. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/lexical_address_space.rb +0 -17
  457. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/metagrammar.rb +0 -2955
  458. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/metagrammar.treetop +0 -404
  459. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes.rb +0 -19
  460. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/anything_symbol.rb +0 -20
  461. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/atomic_expression.rb +0 -14
  462. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/character_class.rb +0 -22
  463. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/choice.rb +0 -31
  464. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/declaration_sequence.rb +0 -24
  465. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/grammar.rb +0 -28
  466. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/inline_module.rb +0 -27
  467. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/nonterminal.rb +0 -13
  468. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/optional.rb +0 -19
  469. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/parenthesized_expression.rb +0 -9
  470. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/parsing_expression.rb +0 -138
  471. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/parsing_rule.rb +0 -55
  472. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/predicate.rb +0 -45
  473. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/repetition.rb +0 -55
  474. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/sequence.rb +0 -68
  475. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/terminal.rb +0 -20
  476. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/transient_prefix.rb +0 -9
  477. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/treetop_file.rb +0 -9
  478. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/ruby_builder.rb +0 -113
  479. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/ruby_extensions.rb +0 -2
  480. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/ruby_extensions/string.rb +0 -42
  481. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/runtime.rb +0 -5
  482. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/runtime/compiled_parser.rb +0 -95
  483. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/runtime/interval_skip_list.rb +0 -4
  484. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/runtime/interval_skip_list/head_node.rb +0 -15
  485. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/runtime/interval_skip_list/interval_skip_list.rb +0 -200
  486. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/runtime/interval_skip_list/node.rb +0 -164
  487. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/runtime/syntax_node.rb +0 -72
  488. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/runtime/terminal_parse_failure.rb +0 -16
  489. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/runtime/terminal_syntax_node.rb +0 -17
  490. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/version.rb +0 -9
  491. data/vendor/digitpaint/personify/vendor/treetop/script/generate_metagrammar.rb +0 -14
  492. data/vendor/digitpaint/personify/vendor/treetop/script/svnadd +0 -11
  493. data/vendor/digitpaint/personify/vendor/treetop/script/svnrm +0 -11
  494. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/and_predicate_spec.rb +0 -36
  495. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/anything_symbol_spec.rb +0 -52
  496. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/character_class_spec.rb +0 -188
  497. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/choice_spec.rb +0 -80
  498. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/circular_compilation_spec.rb +0 -28
  499. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/failure_propagation_functional_spec.rb +0 -21
  500. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/grammar_compiler_spec.rb +0 -84
  501. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/grammar_spec.rb +0 -41
  502. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/nonterminal_symbol_spec.rb +0 -40
  503. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/not_predicate_spec.rb +0 -38
  504. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/one_or_more_spec.rb +0 -35
  505. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/optional_spec.rb +0 -37
  506. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/parenthesized_expression_spec.rb +0 -19
  507. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/parsing_rule_spec.rb +0 -32
  508. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/sequence_spec.rb +0 -115
  509. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/terminal_spec.rb +0 -81
  510. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/terminal_symbol_spec.rb +0 -37
  511. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/test_grammar.treetop +0 -7
  512. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/test_grammar.tt +0 -7
  513. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/test_grammar_do.treetop +0 -7
  514. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/zero_or_more_spec.rb +0 -56
  515. data/vendor/digitpaint/personify/vendor/treetop/spec/composition/a.treetop +0 -11
  516. data/vendor/digitpaint/personify/vendor/treetop/spec/composition/b.treetop +0 -11
  517. data/vendor/digitpaint/personify/vendor/treetop/spec/composition/c.treetop +0 -10
  518. data/vendor/digitpaint/personify/vendor/treetop/spec/composition/d.treetop +0 -10
  519. data/vendor/digitpaint/personify/vendor/treetop/spec/composition/grammar_composition_spec.rb +0 -26
  520. data/vendor/digitpaint/personify/vendor/treetop/spec/ruby_extensions/string_spec.rb +0 -32
  521. data/vendor/digitpaint/personify/vendor/treetop/spec/runtime/compiled_parser_spec.rb +0 -101
  522. data/vendor/digitpaint/personify/vendor/treetop/spec/runtime/interval_skip_list/delete_spec.rb +0 -147
  523. data/vendor/digitpaint/personify/vendor/treetop/spec/runtime/interval_skip_list/expire_range_spec.rb +0 -349
  524. data/vendor/digitpaint/personify/vendor/treetop/spec/runtime/interval_skip_list/insert_and_delete_node.rb +0 -385
  525. data/vendor/digitpaint/personify/vendor/treetop/spec/runtime/interval_skip_list/insert_spec.rb +0 -660
  526. data/vendor/digitpaint/personify/vendor/treetop/spec/runtime/interval_skip_list/interval_skip_list_spec.graffle +0 -6175
  527. data/vendor/digitpaint/personify/vendor/treetop/spec/runtime/interval_skip_list/interval_skip_list_spec.rb +0 -58
  528. data/vendor/digitpaint/personify/vendor/treetop/spec/runtime/interval_skip_list/palindromic_fixture.rb +0 -23
  529. data/vendor/digitpaint/personify/vendor/treetop/spec/runtime/interval_skip_list/palindromic_fixture_spec.rb +0 -164
  530. data/vendor/digitpaint/personify/vendor/treetop/spec/runtime/interval_skip_list/spec_helper.rb +0 -84
  531. data/vendor/digitpaint/personify/vendor/treetop/spec/runtime/syntax_node_spec.rb +0 -53
  532. data/vendor/digitpaint/personify/vendor/treetop/spec/spec_helper.rb +0 -106
  533. data/vendor/digitpaint/personify/vendor/treetop/spec/spec_suite.rb +0 -4
  534. data/vendor/digitpaint/personify/vendor/treetop/treetop.gemspec +0 -18
  535. data/vendor/mootools-on-rails/README +0 -54
  536. data/vendor/mootools-on-rails/Rakefile +0 -22
  537. data/vendor/mootools-on-rails/lib/mootools_on_rails.rb +0 -30
  538. data/vendor/mootools-on-rails/lib/mootools_on_rails/mootools_helper.rb +0 -510
  539. data/vendor/mootools-on-rails/test/mootools_helper_test.rb +0 -138
  540. data/vendor/mootools-on-rails/test/test_helper.rb +0 -5
@@ -1,4 +0,0 @@
1
- dir = File.dirname(__FILE__)
2
- Dir.glob("#{dir}/**/*_spec.rb") do |spec_file|
3
- require spec_file
4
- end
@@ -1,18 +0,0 @@
1
- require "lib/treetop/version"
2
- $gemspec = Gem::Specification.new do |s|
3
- s.name = "treetop"
4
- s.version = Treetop::VERSION::STRING
5
- s.author = "Nathan Sobo"
6
- s.email = "nathansobo@gmail.com"
7
- s.homepage = "http://functionalform.blogspot.com"
8
- s.platform = Gem::Platform::RUBY
9
- s.summary = "A Ruby-based text parsing and interpretation DSL"
10
- s.files = ["README", "Rakefile", "{test,lib,bin,doc,examples}/**/*"].map{|p| Dir[p]}.flatten
11
- s.bindir = "bin"
12
- s.executables = ["tt"]
13
- s.require_path = "lib"
14
- s.autorequire = "treetop"
15
- s.has_rdoc = false
16
- s.add_dependency "polyglot"
17
- end
18
-
@@ -1,54 +0,0 @@
1
- = Mootools On Rails
2
-
3
- == WARNING
4
- This is a heavily modified version of Mootools on rails!! It only works with Skyline.
5
-
6
- == How to install
7
-
8
- Just follow these three steps :
9
-
10
- 1. You must run the following task :
11
- rake mootools_on_rails:install
12
-
13
- 2. You must add the following line in your layout :
14
- <%= javascript_include_tag :mootools %>
15
-
16
- 3. You must add the following line in your RAILS_ROOT/config/routes.rb
17
- ActionController::Routing::Routes.draw do |map|
18
- ...
19
- MootoolsOnRails.routes
20
- ...
21
- end
22
-
23
- That's all !
24
-
25
-
26
- == How to use
27
-
28
- === Event behaviour
29
-
30
- In your view :
31
-
32
- <% add_event('link', 'click') do |page|
33
- page.alert('coucou div 2')
34
- end %>
35
-
36
- <%= content_tag(:a, "My Link", :id => 'link') %>
37
-
38
-
39
-
40
- == More documentations
41
-
42
- http://dev.kawooa.org/projects/mootools-on-rails/wiki/Mootools+On+Rails
43
-
44
- == Contributors
45
-
46
- Thank you to them :
47
-
48
- - Grzegorz Kazulak
49
-
50
-
51
- == Credits
52
-
53
- * This plugin is inspired by the "YUI On Rails" plugin by "PJ Hyett".
54
- * The unobtrusive_javascript plugin is by Luke Redpath (http://www.lukeredpath.co.uk) and Dan Webb (http://www.vivabit.com/bollocks).
@@ -1,22 +0,0 @@
1
- require 'rake'
2
- require 'rake/testtask'
3
- require 'rake/rdoctask'
4
-
5
- desc 'Default: run unit tests.'
6
- task :default => :test
7
-
8
- desc 'Test the mootools_helper plugin.'
9
- Rake::TestTask.new(:test) do |t|
10
- t.libs << 'lib'
11
- t.pattern = 'test/**/*_test.rb'
12
- t.verbose = true
13
- end
14
-
15
- desc 'Generate documentation for the mootools_helper plugin.'
16
- Rake::RDocTask.new(:rdoc) do |rdoc|
17
- rdoc.rdoc_dir = 'rdoc'
18
- rdoc.title = 'MootoolsHelper'
19
- rdoc.options << '--line-numbers' << '--inline-source'
20
- rdoc.rdoc_files.include('README')
21
- rdoc.rdoc_files.include('lib/**/*.rb')
22
- end
@@ -1,30 +0,0 @@
1
- require File.dirname(__FILE__) + '/mootools_on_rails/mootools_helper'
2
-
3
- ActionView::Helpers::PrototypeHelper.instance_methods.each do |method|
4
- ActionView::Helpers::PrototypeHelper.send :remove_method, method
5
- end
6
-
7
- ActionView::Base.class_eval do
8
- include ActionView::Helpers::MootoolsHelper
9
- end
10
-
11
- # hack to render rjs code within controller thru the following syntax "render :update do |page| ...."
12
- # definitively not the best way to handle this but since Rails is deeply tied to Prototype + Scriptaculous,
13
- # we can not do much more than that.
14
-
15
- module Mootools
16
- module JavascriptGeneratorShunt
17
- def include_helpers_from_context
18
- extend @context.helpers if @context.respond_to?(:helpers)
19
- extend ActionView::Helpers::MootoolsHelper::JavaScriptGenerator::GeneratorMethods
20
- end
21
- end
22
- end
23
-
24
- # remove the original method...
25
- ActionView::Helpers::PrototypeHelper::JavaScriptGenerator.send(:remove_method, :include_helpers_from_context)
26
-
27
- # ...and replace it by the mootools one :-)
28
- ActionView::Helpers::PrototypeHelper::JavaScriptGenerator.class_eval do
29
- include Mootools::JavascriptGeneratorShunt
30
- end
@@ -1,510 +0,0 @@
1
- module ActionView
2
- module Helpers
3
- module MootoolsHelper
4
- CALLBACKS = Set.new([:complete, :start, :cancel] +
5
- (100..599).to_a)
6
-
7
-
8
- # Returns a link to a remote action defined by <tt>options[:url]</tt>
9
- # (using the url_for format) that's called in the background using
10
- # XMLHttpRequest. The result of that requestx can then be inserted into a
11
- # DOM object whose id can be specified with <tt>options[:update]</tt>.
12
- # Usually, the result would be a partial prepared by the controller with
13
- # render :partial.
14
- #
15
- # Examples:
16
- # link_to_remote "Delete this post", :update => "posts",
17
- # :url => { :action => "destroy", :id => post.id }
18
- # link_to_remote(image_tag("refresh"), :update => "emails",
19
- # :url => { :action => "list_emails" })
20
- #
21
- # You can override the generated HTML options by specifying a hash in
22
- # <tt>options[:html]</tt>.
23
- #
24
- # link_to_remote "Delete this post", :update => "posts",
25
- # :url => post_url(@post), :method => :delete,
26
- # :html => { :class => "destructive" }
27
- #
28
- # You can also specify a hash for <tt>options[:update]</tt> to allow for
29
- # easy redirection of output to an other DOM element if a server-side
30
- # error occurs:
31
- #
32
- # Example:
33
- # link_to_remote "Delete this post",
34
- # :url => { :action => "destroy", :id => post.id },
35
- # :update => { :success => "posts", :failure => "error" }
36
- #
37
- # Optionally, you can use the <tt>options[:position]</tt> parameter to
38
- # influence how the target DOM element is updated. It must be one of
39
- # <tt>:before</tt>, <tt>:top</tt>, <tt>:bottom</tt>, or <tt>:after</tt>.
40
- #
41
- # The method used is by default POST. You can also specify GET or you
42
- # can simulate PUT or DELETE over POST. All specified with <tt>options[:method]</tt>
43
- #
44
- # Example:
45
- # link_to_remote "Destroy", :url => person_url(:id => person), :method => :delete
46
- #
47
- # By default, these remote requests are processed asynchronous during
48
- # which various JavaScript callbacks can be triggered (for progress
49
- # indicators and the likes). All callbacks get access to the
50
- # <tt>request</tt> object, which holds the underlying XMLHttpRequest.
51
- #
52
- # To access the server response, use <tt>request.responseText</tt>, to
53
- # find out the HTTP status, use <tt>request.status</tt>.
54
- #
55
- # Example:
56
- # link_to_remote word,
57
- # :url => { :action => "undo", :n => word_counter },
58
- # :complete => "undoRequestCompleted(request)"
59
- #
60
- # The callbacks that may be specified are (in order):
61
- #
62
- # <tt>:loading</tt>:: Called when the remote document is being
63
- # loaded with data by the browser.
64
- # <tt>:loaded</tt>:: Called when the browser has finished loading
65
- # the remote document.
66
- # <tt>:interactive</tt>:: Called when the user can interact with the
67
- # remote document, even though it has not
68
- # finished loading.
69
- # <tt>:success</tt>:: Called when the XMLHttpRequest is completed,
70
- # and the HTTP status code is in the 2XX range.
71
- # <tt>:failure</tt>:: Called when the XMLHttpRequest is completed,
72
- # and the HTTP status code is not in the 2XX
73
- # range.
74
- # <tt>:complete</tt>:: Called when the XMLHttpRequest is complete
75
- # (fires after success/failure if they are
76
- # present).
77
- #
78
- # You can further refine <tt>:success</tt> and <tt>:failure</tt> by
79
- # adding additional callbacks for specific status codes.
80
- #
81
- # Example:
82
- # link_to_remote word,
83
- # :url => { :action => "action" },
84
- # 404 => "alert('Not found...? Wrong URL...?')",
85
- # :failure => "alert('HTTP Error ' + request.status + '!')"
86
- #
87
- # A status code callback overrides the success/failure handlers if
88
- # present.
89
- #
90
- # If you for some reason or another need synchronous processing (that'll
91
- # block the browser while the request is happening), you can specify
92
- # <tt>options[:type] = :synchronous</tt>.
93
- #
94
- # You can customize further browser side call logic by passing in
95
- # JavaScript code snippets via some optional parameters. In their order
96
- # of use these are:
97
- #
98
- # <tt>:confirm</tt>:: Adds confirmation dialog.
99
- # <tt>:condition</tt>:: Perform remote request conditionally
100
- # by this expression. Use this to
101
- # describe browser-side conditions when
102
- # request should not be initiated.
103
- # <tt>:before</tt>:: Called before request is initiated.
104
- # <tt>:after</tt>:: Called immediately after request was
105
- # initiated and before <tt>:loading</tt>.
106
- # <tt>:submit</tt>:: Specifies the DOM element ID that's used
107
- # as the parent of the form elements. By
108
- # default this is the current form, but
109
- # it could just as well be the ID of a
110
- # table row or any other DOM element.
111
- # <tt>:with</tt>:: A JavaScript expression specifying
112
- # the parameters for the XMLHttpRequest.
113
- # Any expressions should return a valid
114
- # URL query string.
115
- #
116
- # Example:
117
- #
118
- # :with => "'name=' + $('name').value"
119
- #
120
- # You can generate a link that uses AJAX in the general case, while
121
- # degrading gracefully to plain link behavior in the absence of
122
- # JavaScript by setting <tt>html_options[:href]</tt> to an alternate URL.
123
- # Note the extra curly braces around the <tt>options</tt> hash separate
124
- # it as the second parameter from <tt>html_options</tt>, the third.
125
- #
126
- # Example:
127
- # link_to_remote "Delete this post",
128
- # { :update => "posts", :url => { :action => "destroy", :id => post.id } },
129
- # :href => url_for(:action => "destroy", :id => post.id)
130
- def link_to_remote(name, options = {}, html_options = nil)
131
- link_to_function(name, remote_function(options), html_options || options.delete(:html))
132
- end
133
-
134
- # Creates a form that will submit using XMLHttpRequest in the background
135
- # instead of the regular reloading POST arrangement and a scope around a
136
- # specific resource that is used as a base for questioning about
137
- # values for the fields.
138
- #
139
- # === Resource
140
- #
141
- # Example:
142
- # <% remote_form_for(@post) do |f| %>
143
- # ...
144
- # <% end %>
145
- #
146
- # This will expand to be the same as:
147
- #
148
- # <% remote_form_for :post, @post, :url => post_path(@post), :html => { :method => :put, :class => "edit_post", :id => "edit_post_45" } do |f| %>
149
- # ...
150
- # <% end %>
151
- #
152
- # === Nested Resource
153
- #
154
- # Example:
155
- # <% remote_form_for([@post, @comment]) do |f| %>
156
- # ...
157
- # <% end %>
158
- #
159
- # This will expand to be the same as:
160
- #
161
- # <% remote_form_for :comment, @comment, :url => post_comment_path(@post, @comment), :html => { :method => :put, :class => "edit_comment", :id => "edit_comment_45" } do |f| %>
162
- # ...
163
- # <% end %>
164
- #
165
- # If you don't need to attach a form to a resource, then check out form_remote_tag.
166
- #
167
- # See FormHelper#form_for for additional semantics.
168
- def remote_form_for(record_or_name_or_array, *args, &proc)
169
- options = args.extract_options!
170
-
171
- case record_or_name_or_array
172
- when String, Symbol
173
- object_name = record_or_name_or_array
174
- when Array
175
- object = record_or_name_or_array.last
176
- object_name = ActionController::RecordIdentifier.singular_class_name(object)
177
- apply_form_for_options!(record_or_name_or_array, options)
178
- args.unshift object
179
- else
180
- object = record_or_name_or_array
181
- object_name = ActionController::RecordIdentifier.singular_class_name(record_or_name_or_array)
182
- apply_form_for_options!(object, options)
183
- args.unshift object
184
- end
185
-
186
- concat(form_remote_tag(options))
187
- fields_for(object_name, *(args << options), &proc)
188
- concat('</form>')
189
- end
190
- alias_method :form_remote_for, :remote_form_for
191
-
192
-
193
-
194
- class JavaScriptGenerator
195
-
196
- def initialize(context, &block) #:nodoc:
197
- @context, @lines = context, []
198
- include_helpers_from_context
199
- @context.instance_exec(self, &block)
200
- end
201
-
202
- private
203
- def include_helpers_from_context
204
- extend @context.helpers if @context.respond_to?(:helpers)
205
- extend GeneratorMethods
206
- end
207
-
208
- # JavaScriptGenerator generates blocks of JavaScript code that allow you
209
- # to change the content and presentation of multiple DOM elements. Use
210
- # this in your Ajax response bodies, either in a <script> tag or as plain
211
- # JavaScript sent with a Content-type of "text/javascript".
212
- #
213
- # Create new instances with PrototypeHelper#update_page or with
214
- # ActionController::Base#render, then call #insert_html, #replace_html,
215
- # #remove, #show, #hide, #visual_effect, or any other of the built-in
216
- # methods on the yielded generator in any order you like to modify the
217
- # content and appearance of the current page.
218
- #
219
- # Example:
220
- #
221
- # update_page do |page|
222
- # page.insert_html :bottom, 'list', "<li>#{@item.name}</li>"
223
- # page.visual_effect :highlight, 'list'
224
- # page.hide 'status-indicator', 'cancel-link'
225
- # end
226
- #
227
- # generates the following JavaScript:
228
- #
229
- # new Insertion.Bottom("list", "<li>Some item</li>");
230
- # new Effect.Highlight("list");
231
- # ["status-indicator", "cancel-link"].each(Element.hide);
232
- #
233
- # Helper methods can be used in conjunction with JavaScriptGenerator.
234
- # When a helper method is called inside an update block on the +page+
235
- # object, that method will also have access to a +page+ object.
236
- #
237
- # Example:
238
- #
239
- # module ApplicationHelper
240
- # def update_time
241
- # page.replace_html 'time', Time.now.to_s(:db)
242
- # page.visual_effect :highlight, 'time'
243
- # end
244
- # end
245
- #
246
- # # Controller action
247
- # def poll
248
- # render(:update) { |page| page.update_time }
249
- # end
250
- #
251
- # You can also use PrototypeHelper#update_page_tag instead of
252
- # PrototypeHelper#update_page to wrap the generated JavaScript in a
253
- # <script> tag.
254
- module GeneratorMethods
255
-
256
- def to_s #:nodoc:
257
- (@lines * $/).tap{|javascript|
258
- if ActionView::Base.debug_rjs
259
- source = javascript.dup
260
- javascript.replace "try {\n#{source}\n} catch (e) "
261
- javascript << "{ alert('RJS error:\\n\\n' + e.toString()); alert('#{source.gsub('\\','\0\0').gsub(/\r\n|\n|\r/, "\\n").gsub(/["']/) { |m| "\\#{m}" }}'); throw e }"
262
- end
263
- }
264
-
265
- #
266
- # returning javascript = @lines * $/ do
267
- # if ActionView::Base.debug_rjs
268
- # source = javascript.dup
269
- # javascript.replace "try {\n#{source}\n} catch (e) "
270
- # javascript << "{ alert('RJS error:\\n\\n' + e.toString()); alert('#{source.gsub('\\','\0\0').gsub(/\r\n|\n|\r/, "\\n").gsub(/["']/) { |m| "\\#{m}" }}'); throw e }"
271
- # end
272
- # end
273
- end
274
-
275
- # Insert an element (before, after) an other
276
- # NOTE : This method use mootools_patch.js
277
- def insert_html(position, id, *options_for_render)
278
- insertion = position.to_s.camelize
279
- call "$('#{id}').append#{insertion}", render(*options_for_render)
280
- end
281
-
282
- # Replace an element
283
- def replace(id, *options_for_render)
284
- assign "var text", render(*options_for_render)
285
- record "$('#{id}').replace(text)"
286
- end
287
-
288
- # Replace the content of an element
289
- def replace_html(id, *options_for_render)
290
- assign "var text", render(*options_for_render)
291
- record "var scripts = \"\""
292
- record "var html = text.stripScripts(function(scr){scripts = scr;})"
293
- record "$('#{id}').set('html',html)"
294
- record "$exec(scripts)"
295
- end
296
-
297
- # Highlight an element
298
- def highlight(id, start_color='#FF8', end_color=nil)
299
- call("$('#{id}').highlight", *[start_color, end_color].compact)
300
- end
301
-
302
- # Shows hidden DOM elements with the given +ids+.
303
- def show(*ids)
304
- loop_on_multiple_args "setStyles({display:''})", ids
305
- end
306
-
307
- # Hides the visible DOM elements with the given +ids+.
308
- def hide(*ids)
309
- loop_on_multiple_args "setStyles({display:'none'})", ids
310
- end
311
-
312
- # Displays an alert dialog with the given +message+.
313
- def alert(message)
314
- call 'alert', message
315
- end
316
-
317
- # Fire an event
318
- # TODO [mathieu] : with another element than 'window'
319
- def fire_event(event)
320
- call 'document.fireEvent', event
321
- end
322
-
323
- # Calls the JavaScript +function+, optionally with the given +arguments+.
324
- #
325
- # If a block is given, the block will be passed to a new JavaScriptGenerator;
326
- # the resulting JavaScript code will then be wrapped inside <tt>function() { ... }</tt>
327
- # and passed as the called function's final argument.
328
- def call(function, *arguments, &block)
329
- record "#{function}(#{arguments_for_call(arguments, block)})"
330
- end
331
-
332
- # Assigns the JavaScript +variable+ the given +value+.
333
- def assign(variable, value)
334
- record "#{variable} = #{javascript_object_for(value)}"
335
- end
336
-
337
- def redirect_to(location)
338
- assign 'window.location.href', @context.url_for(location)
339
- end
340
-
341
- # Writes raw JavaScript to the page.
342
- def <<(javascript)
343
- @lines << javascript
344
- end
345
-
346
- # Executes the content of the block after a delay of +seconds+. Example:
347
- #
348
- # page.delay(20) do
349
- # page.visual_effect :fade, 'notice'
350
- # end
351
- def delay(seconds = 1)
352
- record "setTimeout(function() {\n\n"
353
- yield
354
- record "}, #{(seconds * 1000).to_i})"
355
- end
356
-
357
-
358
- private
359
- def loop_on_multiple_args(method, ids)
360
- record(ids.size>1 ?
361
- "#{javascript_object_for(ids)}.each(function(element){$(element).#{method};})" :
362
- "$(#{ids.first.to_json}).#{method}")
363
- end
364
-
365
- def record(line)
366
- "#{line.to_s.chomp.gsub(/\;\z/, '')};".tap{|line|
367
- self << line
368
- }
369
- end
370
-
371
- def page
372
- self
373
- end
374
-
375
- def parse_transition_options(javascript_hash)
376
- javascript_hash.gsub(/(.*)transition: "(.*)"(.*)/,'\1transition: \2\3')
377
- end
378
-
379
- def render(*options_for_render)
380
- Hash === options_for_render.first ?
381
- @context.render(*options_for_render) :
382
- options_for_render.first.to_s
383
- end
384
-
385
- def javascript_object_for(object)
386
- object.respond_to?(:to_json) ? object.to_json : object.inspect
387
- end
388
-
389
- def arguments_for_call(arguments, block = nil)
390
- arguments << block_to_function(block) if block
391
- arguments.map { |argument| javascript_object_for(argument) }.join ', '
392
- end
393
-
394
-
395
-
396
- def block_to_function(block)
397
- generator = self.class.new(@context, &block)
398
- literal("function() { #{generator.to_s} }")
399
- end
400
-
401
- def method_missing(method, *arguments)
402
- JavaScriptProxy.new(self, method.to_s.camelize)
403
- end
404
- end # End GeneratorMethods
405
- end
406
-
407
- # Yields a JavaScriptGenerator and returns the generated JavaScript code.
408
- # Use this to update multiple elements on a page in an Ajax response.
409
- # See JavaScriptGenerator for more information.
410
- def update_page(&block)
411
- JavaScriptGenerator.new(@template, &block).to_s
412
- end
413
-
414
- def remote_function(options)
415
- javascript_options = options_for_ajax(options)
416
-
417
- request_type = options[:request_type].blank? ? "" : ".#{options[:request_type].to_s.upcase}"
418
-
419
- function = "new Request#{request_type}(#{javascript_options}).send()"
420
- function = "#{options[:before]}; #{function}" if options[:before]
421
- function = "#{function}; #{options[:after]}" if options[:after]
422
- function = "if (#{options[:condition]}) { #{function}; }" if options[:condition]
423
- function = "if (confirm('#{escape_javascript(options[:confirm])}')) { #{function}; }" if options[:confirm]
424
-
425
- return function
426
- end
427
-
428
- def form_remote_tag(options = {}, &block)
429
- options[:form] = true
430
- options[:data] = ""
431
-
432
- request_type = options[:request_type].blank? ? "" : ".#{options[:request_type].to_s.upcase}"
433
-
434
- options[:html] ||= {}
435
- options[:html][:onsubmit] =
436
- (options[:html][:onsubmit] ? options[:html][:onsubmit] + "; " : "") +
437
- "new Request#{request_type}($merge({data: $(this).toQueryString()}, #{options_for_ajax(options)})).send(); return false;"
438
-
439
- form_tag(options[:html].delete(:action) || url_for(options[:url]), options[:html], &block)
440
- end
441
-
442
- def dom_ready(script=nil)
443
- js = "window.addEvent('domready', function() {"
444
- js << script
445
- js << "});"
446
- js
447
- end
448
-
449
- def add_event(id, event, script=nil, &block)
450
- result = id.is_a?(Symbol) ? id.to_s : "$('#{id}')"
451
- result << ".addEvent('#{event}', function() {\n"
452
- result << (block_given? ? JavaScriptGenerator.new(@template, &block).to_s : script)
453
- result << "\n})"
454
- @controller.add_javascript(dom_ready(result))
455
- dom_ready(result)
456
- end
457
-
458
- protected
459
-
460
- def options_for_ajax(options)
461
- # FIXME (Did): callbacks are different from Prototype ones: before, we had: js_options = build_callbacks(options)
462
- js_options = {}
463
-
464
- url_options = options[:url]
465
- url_options = url_options.merge(:escape => false) if url_options.is_a?(Hash)
466
- js_options['url'] = "'#{url_for(url_options)}'"
467
- js_options['method'] = method_option_to_s(options[:method]) if options[:method]
468
- js_options['evalScripts'] = options[:script].nil? || options[:script]
469
- js_options['update'] = "$('#{options[:update]}')" if options[:update]
470
- js_options['onSuccess'] = "function(responseText, responseXML) { #{options[:success]} }" unless options[:success].blank?
471
- js_options['onRequest'] = "function() { #{options[:loading]} }" unless options[:loading].blank?
472
- js_options['onFailure'] = "function(args) { #{options[:failure]} }" unless options[:failure].blank?
473
-
474
- # actually, only for Request.HTML requests type.
475
- js_options['onComplete'] = "function(responseTree, responseElements, responseHTML, responseJavaScript) { #{options[:complete]} }" unless options[:complete].blank?
476
-
477
- unless options[:form]
478
- if protect_against_forgery?
479
- if options[:data]
480
- js_options['data'] = "#{options[:data]} + '&' + "
481
- else
482
- js_options['data'] = ""
483
- end
484
- js_options['data'] << "'#{request_forgery_protection_token}=' + encodeURIComponent('#{escape_javascript form_authenticity_token}')"
485
- else
486
- js_options['data'] = "#{options[:data]}" unless options[:data].blank?
487
- end
488
- end
489
-
490
- options_for_javascript(js_options)
491
- end
492
-
493
- # DEPRECATED: should not be used (mootools callbacks different from Prototype ones)
494
- def build_callbacks(options)
495
- callbacks = {}
496
- options.each do |callback, code|
497
- if CALLBACKS.include?(callback)
498
- name = 'on' + callback.to_s.capitalize
499
- callbacks[name] = "function(request){#{code}}"
500
- end
501
- end
502
- callbacks
503
- end
504
-
505
- def method_option_to_s(method)
506
- (method.is_a?(String) and !method.index("'").nil?) ? method : "'#{method}'"
507
- end
508
- end
509
- end
510
- end