typo 5.3 → 5.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1662) hide show
  1. data/CHANGELOG +30 -627
  2. data/app/controllers/accounts_controller.rb +28 -8
  3. data/app/controllers/admin/base_controller.rb +0 -2
  4. data/app/controllers/admin/blacklist_controller.rb +1 -1
  5. data/app/controllers/admin/categories_controller.rb +1 -1
  6. data/app/controllers/admin/content_controller.rb +40 -20
  7. data/app/controllers/admin/dashboard_controller.rb +2 -0
  8. data/app/controllers/admin/feedback_controller.rb +5 -4
  9. data/app/controllers/admin/pages_controller.rb +1 -3
  10. data/app/controllers/admin/previews_controller.rb +10 -0
  11. data/app/controllers/admin/profiles_controller.rb +9 -27
  12. data/app/controllers/admin/resources_controller.rb +1 -4
  13. data/app/controllers/admin/settings_controller.rb +11 -5
  14. data/app/controllers/admin/tags_controller.rb +1 -1
  15. data/app/controllers/admin/themes_controller.rb +2 -0
  16. data/app/controllers/admin/users_controller.rb +6 -15
  17. data/app/controllers/application_controller.rb +76 -0
  18. data/app/controllers/articles_controller.rb +4 -8
  19. data/app/controllers/authors_controller.rb +21 -0
  20. data/app/controllers/backend_controller.rb +0 -1
  21. data/app/controllers/content_controller.rb +1 -5
  22. data/app/controllers/feedback_controller.rb +0 -1
  23. data/app/controllers/grouping_controller.rb +29 -7
  24. data/app/controllers/previews_controller.rb +10 -0
  25. data/app/controllers/redirect_controller.rb +3 -1
  26. data/app/controllers/theme_controller.rb +0 -4
  27. data/app/controllers/xml_controller.rb +7 -5
  28. data/app/helpers/admin/base_helper.rb +19 -13
  29. data/app/helpers/admin/users_helper.rb +12 -0
  30. data/app/helpers/application_helper.rb +20 -58
  31. data/app/helpers/articles_helper.rb +2 -2
  32. data/app/helpers/authors_helper.rb +5 -0
  33. data/app/models/article.rb +14 -28
  34. data/app/models/blog.rb +6 -38
  35. data/app/models/category.rb +2 -6
  36. data/app/models/content.rb +24 -18
  37. data/app/models/page.rb +0 -2
  38. data/app/models/page_cache.rb +4 -7
  39. data/app/models/sidebar.rb +6 -6
  40. data/app/models/text_filter.rb +1 -6
  41. data/app/models/theme.rb +7 -2
  42. data/app/models/trackback.rb +1 -5
  43. data/app/models/user.rb +13 -3
  44. data/app/views/accounts/confirm.html.erb +16 -0
  45. data/app/views/accounts/login.html.erb +30 -7
  46. data/app/views/accounts/signup.html.erb +16 -31
  47. data/app/views/admin/blacklist/_blacklist_patterns.html.erb +2 -1
  48. data/app/views/admin/blacklist/_form.html.erb +1 -1
  49. data/app/views/admin/blacklist/destroy.html.erb +7 -7
  50. data/app/views/admin/categories/_categories.html.erb +0 -4
  51. data/app/views/admin/categories/_form.html.erb +18 -20
  52. data/app/views/admin/categories/new.html.erb +5 -8
  53. data/app/views/admin/content/_article_list.html.erb +1 -5
  54. data/app/views/admin/content/_drafts.html.erb +4 -4
  55. data/app/views/admin/content/_form.html.erb +97 -87
  56. data/app/views/admin/content/_simple_editor.html.erb +4 -4
  57. data/app/views/admin/content/_visual_editor.html.erb +6 -5
  58. data/app/views/admin/content/index.html.erb +3 -5
  59. data/app/views/admin/content/new.html.erb +1 -1
  60. data/app/views/admin/dashboard/_comments.html.erb +2 -3
  61. data/app/views/admin/dashboard/_inbound.html.erb +2 -5
  62. data/app/views/admin/dashboard/_popular.html.erb +1 -1
  63. data/app/views/admin/dashboard/_posts.html.erb +1 -2
  64. data/app/views/admin/dashboard/_sysinfo.html.erb +4 -6
  65. data/app/views/admin/dashboard/_typo_dev.html.erb +4 -4
  66. data/app/views/admin/dashboard/_welcome.html.erb +3 -3
  67. data/app/views/admin/dashboard/index.html.erb +14 -8
  68. data/app/views/admin/feedback/_button.html.erb +6 -6
  69. data/app/views/admin/feedback/_form.html.erb +29 -18
  70. data/app/views/admin/feedback/article.html.erb +1 -1
  71. data/app/views/admin/feedback/index.html.erb +18 -10
  72. data/app/views/admin/pages/_form.html.erb +65 -47
  73. data/app/views/admin/pages/_pages.html.erb +1 -3
  74. data/app/views/admin/pages/_visual_editor.html.erb +1 -1
  75. data/app/views/admin/profiles/index.html.erb +6 -0
  76. data/app/views/admin/resources/_resources.html.erb +3 -6
  77. data/app/views/admin/resources/index.html.erb +14 -9
  78. data/app/views/admin/settings/_submit.html.erb +2 -2
  79. data/app/views/admin/settings/feedback.html.erb +96 -90
  80. data/app/views/admin/settings/index.html.erb +78 -46
  81. data/app/views/admin/settings/seo.html.erb +72 -63
  82. data/app/views/admin/settings/write.html.erb +21 -29
  83. data/app/views/admin/sidebar/index.html.erb +2 -2
  84. data/app/views/admin/tags/index.html.erb +18 -9
  85. data/app/views/admin/themes/catalogue.html.erb +6 -14
  86. data/app/views/admin/themes/index.html.erb +6 -12
  87. data/app/views/admin/users/_form.html.erb +181 -63
  88. data/app/views/admin/users/edit.html.erb +2 -5
  89. data/app/views/admin/users/index.html.erb +24 -29
  90. data/app/views/admin/users/new.html.erb +1 -5
  91. data/app/views/articles/_article.html.erb +15 -1
  92. data/app/views/articles/_atom_feed.atom.builder +1 -1
  93. data/app/views/articles/_rss20_feed.rss.builder +4 -2
  94. data/app/views/articles/read.html.erb +3 -3
  95. data/app/views/articles/search.html.erb +1 -1
  96. data/app/views/authors/show.html.erb +37 -0
  97. data/app/views/layouts/accounts.html.erb +3 -4
  98. data/app/views/layouts/administration.html.erb +29 -32
  99. data/app/views/shared/_search.html.erb +10 -0
  100. data/app/views/xml/_atom10_item_article.atom.builder +1 -3
  101. data/bin/typo +4 -0
  102. data/config/boot.rb +3 -2
  103. data/config/environment.rb +32 -109
  104. data/config/environments/cucumber.rb +23 -0
  105. data/config/environments/development.rb +1 -1
  106. data/config/environments/test.rb +5 -0
  107. data/config/initializers/access_rules.rb +20 -23
  108. data/config/locales/nl.rb +103 -0
  109. data/config/routes.rb +10 -4
  110. data/db/migrate/001_initial_schema.rb +4 -0
  111. data/db/migrate/057_add_categorization_model.rb +12 -5
  112. data/db/migrate/060_cleanup_contents_table.rb +9 -1
  113. data/db/migrate/067_remove_blog_ids.rb +9 -1
  114. data/db/migrate/075_move_editor_to_user.rb +1 -11
  115. data/db/migrate/078_add_textfilter_to_users.rb +1 -5
  116. data/db/migrate/079_move_editor_as_string.rb +1 -5
  117. data/db/migrate/080_add_state_to_user.rb +1 -5
  118. data/db/migrate/082_add_users_options.rb +35 -0
  119. data/db/migrate/083_add_users_display_perms.rb +19 -0
  120. data/db/migrate/084_move_users_to_profiles.rb +19 -0
  121. data/db/migrate/085_add_article_parent_draft.rb +9 -0
  122. data/db/migrate/086_add_user_last_connection.rb +9 -0
  123. data/db/schema.rb +18 -2
  124. data/doc/test_themes.rb +50 -0
  125. data/lang/fr_FR.rb +593 -538
  126. data/lang/he_IL.rb +2 -2
  127. data/lang/ja_JP.rb +449 -295
  128. data/lang/nl_NL.rb +657 -0
  129. data/lang/zh_TW.rb +597 -0
  130. data/lib/stateful.rb +1 -1
  131. data/lib/tasks/cucumber.rake +20 -0
  132. data/lib/tasks/release.rake +9 -5
  133. data/lib/tasks/rspec.rake +69 -44
  134. data/lib/tasks/sweep_cache.rake +0 -1
  135. data/lib/typo_version.rb +1 -1
  136. data/public/images/admin/blue_block_bottom_left.jpg +0 -0
  137. data/public/images/admin/blue_block_bottom_right.jpg +0 -0
  138. data/public/images/admin/blue_block_top_left.jpg +0 -0
  139. data/public/images/admin/blue_block_top_right.jpg +0 -0
  140. data/public/images/admin/editor_active_top_left.jpg +0 -0
  141. data/public/images/admin/editor_active_top_right.jpg +0 -0
  142. data/public/images/admin/editor_bottom_left.jpg +0 -0
  143. data/public/images/admin/editor_bottom_right.jpg +0 -0
  144. data/public/images/admin/input_text_left.jpg +0 -0
  145. data/public/images/admin/input_text_right.jpg +0 -0
  146. data/public/images/admin/input_text_small_left.jpg +0 -0
  147. data/public/images/admin/input_text_small_right.jpg +0 -0
  148. data/public/images/admin/publisher_bottom.jpg +0 -0
  149. data/public/images/admin/publisher_top.jpg +0 -0
  150. data/public/images/close.gif +0 -0
  151. data/public/images/loading.gif +0 -0
  152. data/public/images/nextlabel.gif +0 -0
  153. data/public/images/prevlabel.gif +0 -0
  154. data/public/javascripts/administration.js +1 -10
  155. data/public/javascripts/builder.js +136 -0
  156. data/public/javascripts/ckcustom.js +27 -0
  157. data/public/javascripts/ckeditor/.htaccess +24 -0
  158. data/public/javascripts/ckeditor/CHANGES.html +254 -0
  159. data/public/javascripts/ckeditor/INSTALL.html +92 -0
  160. data/public/javascripts/ckeditor/LICENSE.html +1334 -0
  161. data/public/javascripts/ckeditor/ckeditor.js +108 -0
  162. data/public/javascripts/ckeditor/ckeditor.pack +199 -0
  163. data/public/javascripts/ckeditor/ckeditor_basic.js +8 -0
  164. data/public/javascripts/ckeditor/ckeditor_basic_source.js +20 -0
  165. data/public/javascripts/ckeditor/ckeditor_source.js +25 -0
  166. data/public/javascripts/ckeditor/config.bak +11 -0
  167. data/public/javascripts/ckeditor/config.js +27 -0
  168. data/public/javascripts/ckeditor/contents.css +35 -0
  169. data/public/javascripts/{fckeditor/editor → ckeditor}/images/spacer.gif +0 -0
  170. data/public/javascripts/ckeditor/lang/_languages.js +6 -0
  171. data/public/javascripts/ckeditor/lang/_translationstatus.txt +59 -0
  172. data/public/javascripts/ckeditor/lang/af.js +6 -0
  173. data/public/javascripts/ckeditor/lang/ar.js +6 -0
  174. data/public/javascripts/ckeditor/lang/bg.js +6 -0
  175. data/public/javascripts/ckeditor/lang/bn.js +6 -0
  176. data/public/javascripts/ckeditor/lang/bs.js +6 -0
  177. data/public/javascripts/ckeditor/lang/ca.js +6 -0
  178. data/public/javascripts/ckeditor/lang/cs.js +6 -0
  179. data/public/javascripts/ckeditor/lang/da.js +6 -0
  180. data/public/javascripts/ckeditor/lang/de.js +6 -0
  181. data/public/javascripts/ckeditor/lang/el.js +6 -0
  182. data/public/javascripts/ckeditor/lang/en-au.js +6 -0
  183. data/public/javascripts/ckeditor/lang/en-ca.js +6 -0
  184. data/public/javascripts/ckeditor/lang/en-uk.js +6 -0
  185. data/public/javascripts/ckeditor/lang/en.js +6 -0
  186. data/public/javascripts/ckeditor/lang/eo.js +6 -0
  187. data/public/javascripts/ckeditor/lang/es.js +6 -0
  188. data/public/javascripts/ckeditor/lang/et.js +6 -0
  189. data/public/javascripts/ckeditor/lang/eu.js +6 -0
  190. data/public/javascripts/ckeditor/lang/fa.js +6 -0
  191. data/public/javascripts/ckeditor/lang/fi.js +6 -0
  192. data/public/javascripts/ckeditor/lang/fo.js +6 -0
  193. data/public/javascripts/ckeditor/lang/fr-ca.js +6 -0
  194. data/public/javascripts/ckeditor/lang/fr.js +6 -0
  195. data/public/javascripts/ckeditor/lang/gl.js +6 -0
  196. data/public/javascripts/ckeditor/lang/gu.js +6 -0
  197. data/public/javascripts/ckeditor/lang/he.js +6 -0
  198. data/public/javascripts/ckeditor/lang/hi.js +6 -0
  199. data/public/javascripts/ckeditor/lang/hr.js +6 -0
  200. data/public/javascripts/ckeditor/lang/hu.js +6 -0
  201. data/public/javascripts/ckeditor/lang/is.js +6 -0
  202. data/public/javascripts/ckeditor/lang/it.js +6 -0
  203. data/public/javascripts/ckeditor/lang/ja.js +6 -0
  204. data/public/javascripts/ckeditor/lang/km.js +6 -0
  205. data/public/javascripts/ckeditor/lang/ko.js +6 -0
  206. data/public/javascripts/ckeditor/lang/lt.js +6 -0
  207. data/public/javascripts/ckeditor/lang/lv.js +6 -0
  208. data/public/javascripts/ckeditor/lang/mn.js +6 -0
  209. data/public/javascripts/ckeditor/lang/ms.js +6 -0
  210. data/public/javascripts/ckeditor/lang/nb.js +6 -0
  211. data/public/javascripts/ckeditor/lang/nl.js +6 -0
  212. data/public/javascripts/ckeditor/lang/no.js +6 -0
  213. data/public/javascripts/ckeditor/lang/pl.js +6 -0
  214. data/public/javascripts/ckeditor/lang/pt-br.js +6 -0
  215. data/public/javascripts/ckeditor/lang/pt.js +6 -0
  216. data/public/javascripts/ckeditor/lang/ro.js +6 -0
  217. data/public/javascripts/ckeditor/lang/ru.js +6 -0
  218. data/public/javascripts/ckeditor/lang/sk.js +6 -0
  219. data/public/javascripts/ckeditor/lang/sl.js +6 -0
  220. data/public/javascripts/ckeditor/lang/sr-latn.js +6 -0
  221. data/public/javascripts/ckeditor/lang/sr.js +6 -0
  222. data/public/javascripts/ckeditor/lang/sv.js +6 -0
  223. data/public/javascripts/ckeditor/lang/th.js +6 -0
  224. data/public/javascripts/ckeditor/lang/tr.js +6 -0
  225. data/public/javascripts/ckeditor/lang/uk.js +6 -0
  226. data/public/javascripts/ckeditor/lang/vi.js +6 -0
  227. data/public/javascripts/ckeditor/lang/zh-cn.js +6 -0
  228. data/public/javascripts/ckeditor/lang/zh.js +6 -0
  229. data/public/javascripts/ckeditor/plugins/about/dialogs/about.js +6 -0
  230. data/public/javascripts/ckeditor/plugins/about/dialogs/logo_ckeditor.png +0 -0
  231. data/public/javascripts/ckeditor/plugins/about/plugin.js +6 -0
  232. data/public/javascripts/ckeditor/plugins/basicstyles/plugin.js +6 -0
  233. data/public/javascripts/ckeditor/plugins/blockquote/plugin.js +7 -0
  234. data/public/javascripts/ckeditor/plugins/button/plugin.js +7 -0
  235. data/public/javascripts/ckeditor/plugins/clipboard/dialogs/paste.js +7 -0
  236. data/public/javascripts/ckeditor/plugins/clipboard/plugin.js +6 -0
  237. data/public/javascripts/ckeditor/plugins/colorbutton/plugin.js +7 -0
  238. data/public/javascripts/ckeditor/plugins/colordialog/dialogs/colordialog.js +6 -0
  239. data/public/javascripts/ckeditor/plugins/colordialog/plugin.js +6 -0
  240. data/public/javascripts/ckeditor/plugins/contextmenu/plugin.js +6 -0
  241. data/public/javascripts/ckeditor/plugins/dialog/dialogDefinition.js +4 -0
  242. data/public/javascripts/ckeditor/plugins/dialog/plugin.js +17 -0
  243. data/public/javascripts/ckeditor/plugins/dialogui/plugin.js +11 -0
  244. data/public/javascripts/ckeditor/plugins/domiterator/plugin.js +7 -0
  245. data/public/javascripts/ckeditor/plugins/editingblock/plugin.js +6 -0
  246. data/public/javascripts/ckeditor/plugins/elementspath/plugin.js +6 -0
  247. data/public/javascripts/ckeditor/plugins/enterkey/plugin.js +7 -0
  248. data/public/javascripts/ckeditor/plugins/entities/plugin.js +6 -0
  249. data/public/javascripts/ckeditor/plugins/fakeobjects/plugin.js +6 -0
  250. data/public/javascripts/ckeditor/plugins/filebrowser/plugin.js +7 -0
  251. data/public/javascripts/ckeditor/plugins/find/dialogs/find.js +9 -0
  252. data/public/javascripts/ckeditor/plugins/find/plugin.js +6 -0
  253. data/public/javascripts/ckeditor/plugins/flash/dialogs/flash.js +9 -0
  254. data/public/javascripts/ckeditor/plugins/flash/images/placeholder.png +0 -0
  255. data/public/javascripts/ckeditor/plugins/flash/plugin.js +6 -0
  256. data/public/javascripts/ckeditor/plugins/floatpanel/plugin.js +7 -0
  257. data/public/javascripts/ckeditor/plugins/font/plugin.js +6 -0
  258. data/public/javascripts/ckeditor/plugins/format/plugin.js +6 -0
  259. data/public/javascripts/ckeditor/plugins/forms/dialogs/button.js +6 -0
  260. data/public/javascripts/ckeditor/plugins/forms/dialogs/checkbox.js +6 -0
  261. data/public/javascripts/ckeditor/plugins/forms/dialogs/form.js +6 -0
  262. data/public/javascripts/ckeditor/plugins/forms/dialogs/hiddenfield.js +6 -0
  263. data/public/javascripts/ckeditor/plugins/forms/dialogs/radio.js +6 -0
  264. data/public/javascripts/ckeditor/plugins/forms/dialogs/select.js +9 -0
  265. data/public/javascripts/ckeditor/plugins/forms/dialogs/textarea.js +6 -0
  266. data/public/javascripts/ckeditor/plugins/forms/dialogs/textfield.js +6 -0
  267. data/public/javascripts/ckeditor/plugins/forms/plugin.js +7 -0
  268. data/public/javascripts/ckeditor/plugins/horizontalrule/plugin.js +6 -0
  269. data/public/javascripts/ckeditor/plugins/htmldataprocessor/plugin.js +7 -0
  270. data/public/javascripts/ckeditor/plugins/htmlwriter/plugin.js +6 -0
  271. data/public/javascripts/ckeditor/plugins/iframedialog/plugin.js +6 -0
  272. data/public/javascripts/ckeditor/plugins/image/dialogs/image.js +12 -0
  273. data/public/javascripts/ckeditor/plugins/image/plugin.js +6 -0
  274. data/public/javascripts/ckeditor/plugins/indent/plugin.js +7 -0
  275. data/public/javascripts/ckeditor/plugins/justify/plugin.js +6 -0
  276. data/public/javascripts/ckeditor/plugins/keystrokes/plugin.js +6 -0
  277. data/public/javascripts/ckeditor/plugins/link/dialogs/anchor.js +6 -0
  278. data/public/javascripts/ckeditor/plugins/link/dialogs/link.js +11 -0
  279. data/public/javascripts/{fckeditor/editor → ckeditor/plugins/link}/images/anchor.gif +0 -0
  280. data/public/javascripts/ckeditor/plugins/link/plugin.js +6 -0
  281. data/public/javascripts/ckeditor/plugins/list/plugin.js +9 -0
  282. data/public/javascripts/ckeditor/plugins/listblock/plugin.js +7 -0
  283. data/public/javascripts/ckeditor/plugins/maximize/plugin.js +7 -0
  284. data/public/javascripts/ckeditor/plugins/menu/plugin.js +7 -0
  285. data/public/javascripts/ckeditor/plugins/menubutton/plugin.js +6 -0
  286. data/public/javascripts/ckeditor/plugins/newpage/plugin.js +6 -0
  287. data/public/javascripts/{fckeditor/editor/css/images/fck_pagebreak.gif → ckeditor/plugins/pagebreak/images/pagebreak.gif} +0 -0
  288. data/public/javascripts/ckeditor/plugins/pagebreak/plugin.js +6 -0
  289. data/public/javascripts/ckeditor/plugins/panel/plugin.js +7 -0
  290. data/public/javascripts/ckeditor/plugins/panelbutton/plugin.js +6 -0
  291. data/public/javascripts/ckeditor/plugins/pastefromword/dialogs/pastefromword.js +8 -0
  292. data/public/javascripts/ckeditor/plugins/pastefromword/plugin.js +6 -0
  293. data/public/javascripts/ckeditor/plugins/pastetext/dialogs/pastetext.js +6 -0
  294. data/public/javascripts/ckeditor/plugins/pastetext/plugin.js +6 -0
  295. data/public/javascripts/ckeditor/plugins/popup/plugin.js +6 -0
  296. data/public/javascripts/ckeditor/plugins/preview/plugin.js +6 -0
  297. data/public/javascripts/ckeditor/plugins/print/plugin.js +6 -0
  298. data/public/javascripts/ckeditor/plugins/removeformat/plugin.js +6 -0
  299. data/public/javascripts/ckeditor/plugins/resize/plugin.js +6 -0
  300. data/public/javascripts/ckeditor/plugins/richcombo/plugin.js +7 -0
  301. data/public/javascripts/ckeditor/plugins/save/plugin.js +6 -0
  302. data/public/javascripts/ckeditor/plugins/scayt/dialogs/options.js +8 -0
  303. data/public/javascripts/ckeditor/plugins/scayt/dialogs/toolbar.css +6 -0
  304. data/public/javascripts/ckeditor/plugins/scayt/plugin.js +8 -0
  305. data/public/javascripts/ckeditor/plugins/selection/plugin.js +9 -0
  306. data/public/javascripts/{fckeditor/editor/css → ckeditor/plugins/showblocks}/images/block_address.png +0 -0
  307. data/public/javascripts/{fckeditor/editor/css → ckeditor/plugins/showblocks}/images/block_blockquote.png +0 -0
  308. data/public/javascripts/{fckeditor/editor/css → ckeditor/plugins/showblocks}/images/block_div.png +0 -0
  309. data/public/javascripts/{fckeditor/editor/css → ckeditor/plugins/showblocks}/images/block_h1.png +0 -0
  310. data/public/javascripts/{fckeditor/editor/css → ckeditor/plugins/showblocks}/images/block_h2.png +0 -0
  311. data/public/javascripts/{fckeditor/editor/css → ckeditor/plugins/showblocks}/images/block_h3.png +0 -0
  312. data/public/javascripts/{fckeditor/editor/css → ckeditor/plugins/showblocks}/images/block_h4.png +0 -0
  313. data/public/javascripts/{fckeditor/editor/css → ckeditor/plugins/showblocks}/images/block_h5.png +0 -0
  314. data/public/javascripts/{fckeditor/editor/css → ckeditor/plugins/showblocks}/images/block_h6.png +0 -0
  315. data/public/javascripts/{fckeditor/editor/css → ckeditor/plugins/showblocks}/images/block_p.png +0 -0
  316. data/public/javascripts/{fckeditor/editor/css → ckeditor/plugins/showblocks}/images/block_pre.png +0 -0
  317. data/public/javascripts/ckeditor/plugins/showblocks/plugin.js +6 -0
  318. data/public/javascripts/ckeditor/plugins/smiley/dialogs/smiley.js +7 -0
  319. data/public/javascripts/ckeditor/plugins/smiley/images/angel_smile.gif +0 -0
  320. data/public/javascripts/ckeditor/plugins/smiley/images/angry_smile.gif +0 -0
  321. data/public/javascripts/ckeditor/plugins/smiley/images/broken_heart.gif +0 -0
  322. data/public/javascripts/ckeditor/plugins/smiley/images/confused_smile.gif +0 -0
  323. data/public/javascripts/ckeditor/plugins/smiley/images/cry_smile.gif +0 -0
  324. data/public/javascripts/ckeditor/plugins/smiley/images/devil_smile.gif +0 -0
  325. data/public/javascripts/ckeditor/plugins/smiley/images/embaressed_smile.gif +0 -0
  326. data/public/javascripts/ckeditor/plugins/smiley/images/envelope.gif +0 -0
  327. data/public/javascripts/ckeditor/plugins/smiley/images/heart.gif +0 -0
  328. data/public/javascripts/ckeditor/plugins/smiley/images/kiss.gif +0 -0
  329. data/public/javascripts/ckeditor/plugins/smiley/images/lightbulb.gif +0 -0
  330. data/public/javascripts/ckeditor/plugins/smiley/images/omg_smile.gif +0 -0
  331. data/public/javascripts/ckeditor/plugins/smiley/images/regular_smile.gif +0 -0
  332. data/public/javascripts/ckeditor/plugins/smiley/images/sad_smile.gif +0 -0
  333. data/public/javascripts/ckeditor/plugins/smiley/images/shades_smile.gif +0 -0
  334. data/public/javascripts/ckeditor/plugins/smiley/images/teeth_smile.gif +0 -0
  335. data/public/javascripts/ckeditor/plugins/smiley/images/thumbs_down.gif +0 -0
  336. data/public/javascripts/ckeditor/plugins/smiley/images/thumbs_up.gif +0 -0
  337. data/public/javascripts/ckeditor/plugins/smiley/images/tounge_smile.gif +0 -0
  338. data/public/javascripts/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif +0 -0
  339. data/public/javascripts/ckeditor/plugins/smiley/images/wink_smile.gif +0 -0
  340. data/public/javascripts/ckeditor/plugins/smiley/plugin.js +6 -0
  341. data/public/javascripts/ckeditor/plugins/sourcearea/plugin.js +6 -0
  342. data/public/javascripts/ckeditor/plugins/specialchar/dialogs/specialchar.js +7 -0
  343. data/public/javascripts/ckeditor/plugins/specialchar/plugin.js +6 -0
  344. data/public/javascripts/ckeditor/plugins/styles/plugin.js +10 -0
  345. data/public/javascripts/ckeditor/plugins/stylescombo/plugin.js +7 -0
  346. data/public/javascripts/ckeditor/plugins/stylescombo/styles/default.js +6 -0
  347. data/public/javascripts/ckeditor/plugins/tab/plugin.js +6 -0
  348. data/public/javascripts/ckeditor/plugins/table/dialogs/table.js +8 -0
  349. data/public/javascripts/ckeditor/plugins/table/plugin.js +6 -0
  350. data/public/javascripts/ckeditor/plugins/tabletools/dialogs/tableCell.js +7 -0
  351. data/public/javascripts/ckeditor/plugins/tabletools/plugin.js +9 -0
  352. data/public/javascripts/ckeditor/plugins/templates/dialogs/templates.js +6 -0
  353. data/public/javascripts/ckeditor/plugins/templates/plugin.js +6 -0
  354. data/public/javascripts/ckeditor/plugins/templates/templates/default.js +6 -0
  355. data/public/javascripts/{fckeditor/editor/dialog/fck_template → ckeditor/plugins/templates/templates}/images/template1.gif +0 -0
  356. data/public/javascripts/{fckeditor/editor/dialog/fck_template → ckeditor/plugins/templates/templates}/images/template2.gif +0 -0
  357. data/public/javascripts/{fckeditor/editor/dialog/fck_template → ckeditor/plugins/templates/templates}/images/template3.gif +0 -0
  358. data/public/javascripts/ckeditor/plugins/toolbar/plugin.js +7 -0
  359. data/public/javascripts/ckeditor/plugins/uicolor/dialogs/uicolor.js +7 -0
  360. data/public/javascripts/ckeditor/plugins/uicolor/lang/en.js +6 -0
  361. data/public/javascripts/ckeditor/plugins/uicolor/plugin.js +6 -0
  362. data/public/javascripts/ckeditor/plugins/uicolor/uicolor.gif +0 -0
  363. data/public/javascripts/ckeditor/plugins/uicolor/yui/assets/hue_bg.png +0 -0
  364. data/public/javascripts/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png +0 -0
  365. data/public/javascripts/ckeditor/plugins/uicolor/yui/assets/picker_mask.png +0 -0
  366. data/public/javascripts/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png +0 -0
  367. data/public/javascripts/ckeditor/plugins/uicolor/yui/assets/yui.css +6 -0
  368. data/public/javascripts/ckeditor/plugins/uicolor/yui/yui.js +76 -0
  369. data/public/javascripts/ckeditor/plugins/undo/plugin.js +7 -0
  370. data/public/javascripts/ckeditor/plugins/wsc/dialogs/ciframe.html +49 -0
  371. data/public/javascripts/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +52 -0
  372. data/public/javascripts/ckeditor/plugins/wsc/dialogs/wsc.css +6 -0
  373. data/public/javascripts/ckeditor/plugins/wsc/dialogs/wsc.js +7 -0
  374. data/public/javascripts/ckeditor/plugins/wsc/plugin.js +6 -0
  375. data/public/javascripts/ckeditor/plugins/wysiwygarea/plugin.js +8 -0
  376. data/public/javascripts/ckeditor/skins/kama/dialog.css +9 -0
  377. data/public/javascripts/ckeditor/skins/kama/editor.css +12 -0
  378. data/public/javascripts/ckeditor/skins/kama/icons.png +0 -0
  379. data/public/javascripts/ckeditor/skins/kama/images/dialog_sides.gif +0 -0
  380. data/public/javascripts/ckeditor/skins/kama/images/dialog_sides.png +0 -0
  381. data/public/javascripts/ckeditor/skins/kama/images/dialog_sides_rtl.png +0 -0
  382. data/public/javascripts/ckeditor/skins/kama/images/mini.gif +0 -0
  383. data/public/javascripts/ckeditor/skins/kama/images/noimage.png +0 -0
  384. data/public/javascripts/ckeditor/skins/kama/images/sprites.png +0 -0
  385. data/public/javascripts/ckeditor/skins/kama/images/sprites_ie6.png +0 -0
  386. data/public/javascripts/{fckeditor/editor/skins/silver/images/toolbar.start.gif → ckeditor/skins/kama/images/toolbar_start.gif} +0 -0
  387. data/public/javascripts/ckeditor/skins/kama/skin.js +7 -0
  388. data/public/javascripts/ckeditor/skins/kama/templates.css +6 -0
  389. data/public/javascripts/ckeditor/skins/office2003/dialog.css +8 -0
  390. data/public/javascripts/ckeditor/skins/office2003/editor.css +13 -0
  391. data/public/javascripts/ckeditor/skins/office2003/icons.png +0 -0
  392. data/public/javascripts/ckeditor/skins/office2003/images/dialog_sides.gif +0 -0
  393. data/public/javascripts/ckeditor/skins/office2003/images/dialog_sides.png +0 -0
  394. data/public/javascripts/ckeditor/skins/office2003/images/dialog_sides_rtl.png +0 -0
  395. data/public/javascripts/ckeditor/skins/office2003/images/mini.gif +0 -0
  396. data/public/javascripts/ckeditor/skins/office2003/images/noimage.png +0 -0
  397. data/public/javascripts/ckeditor/skins/office2003/images/sprites.png +0 -0
  398. data/public/javascripts/ckeditor/skins/office2003/images/sprites_ie6.png +0 -0
  399. data/public/javascripts/ckeditor/skins/office2003/skin.js +6 -0
  400. data/public/javascripts/ckeditor/skins/office2003/templates.css +6 -0
  401. data/public/javascripts/ckeditor/skins/v2/dialog.css +8 -0
  402. data/public/javascripts/ckeditor/skins/v2/editor.css +12 -0
  403. data/public/javascripts/ckeditor/skins/v2/icons.png +0 -0
  404. data/public/javascripts/ckeditor/skins/v2/images/dialog_sides.gif +0 -0
  405. data/public/javascripts/ckeditor/skins/v2/images/dialog_sides.png +0 -0
  406. data/public/javascripts/ckeditor/skins/v2/images/dialog_sides_rtl.png +0 -0
  407. data/public/javascripts/ckeditor/skins/v2/images/mini.gif +0 -0
  408. data/public/javascripts/ckeditor/skins/v2/images/noimage.png +0 -0
  409. data/public/javascripts/ckeditor/skins/v2/images/sprites.png +0 -0
  410. data/public/javascripts/ckeditor/skins/v2/images/sprites_ie6.png +0 -0
  411. data/public/javascripts/ckeditor/skins/v2/images/toolbar_start.gif +0 -0
  412. data/public/javascripts/ckeditor/skins/v2/skin.js +6 -0
  413. data/public/javascripts/ckeditor/skins/v2/templates.css +6 -0
  414. data/public/javascripts/ckeditor/themes/default/theme.js +7 -0
  415. data/public/javascripts/controls.js +72 -72
  416. data/public/javascripts/dragdrop.js +165 -164
  417. data/public/javascripts/effects.js +173 -165
  418. data/public/javascripts/lang/nl_NL.js +21 -0
  419. data/public/javascripts/lang/zh_TW.js +17 -0
  420. data/public/javascripts/lightbox.js +470 -175
  421. data/public/stylesheets/administration.css +404 -656
  422. data/public/stylesheets/border-radius-ie8.htc +34 -0
  423. data/public/stylesheets/lightbox.css +21 -56
  424. data/public/stylesheets/user-styles.css +4 -2
  425. data/script/autospec +1 -0
  426. data/script/spec +9 -3
  427. data/script/spec_server +5 -112
  428. data/spec/controllers/accounts_controller_spec.rb +30 -16
  429. data/spec/controllers/admin/blacklist_controller_spec.rb +7 -12
  430. data/spec/controllers/admin/cache_controller_spec.rb +0 -5
  431. data/spec/controllers/admin/categories_controller_spec.rb +11 -16
  432. data/spec/controllers/admin/content_controller_spec.rb +14 -19
  433. data/spec/controllers/admin/feedback_controller_spec.rb +12 -1
  434. data/spec/controllers/admin/pages_controller_spec.rb +20 -17
  435. data/spec/controllers/admin/profiles_controller_spec.rb +17 -8
  436. data/spec/controllers/admin/resources_controller_spec.rb +3 -14
  437. data/spec/controllers/admin/settings_controller_spec.rb +0 -5
  438. data/spec/controllers/admin/tags_controller_spec.rb +1 -7
  439. data/spec/controllers/admin/textfilters_controller_spec.rb +0 -5
  440. data/spec/controllers/admin/themes_controller_spec.rb +3 -3
  441. data/spec/controllers/admin/users_controller_spec.rb +59 -41
  442. data/spec/controllers/application_controller_spec.rb +18 -0
  443. data/spec/controllers/articles_controller_spec.rb +88 -39
  444. data/spec/controllers/authors_controller_spec.rb +42 -0
  445. data/spec/controllers/backend_controller_spec.rb +30 -35
  446. data/spec/controllers/categories_controller_spec.rb +20 -22
  447. data/spec/controllers/comments_controller_spec.rb +3 -3
  448. data/spec/controllers/previews_controller_spec.rb +28 -0
  449. data/spec/controllers/redirect_controller_spec.rb +36 -35
  450. data/spec/controllers/tags_controller_spec.rb +15 -10
  451. data/spec/controllers/textfilter_controller_spec.rb +11 -72
  452. data/spec/controllers/theme_controller_spec.rb +8 -12
  453. data/spec/controllers/xml_controller_spec.rb +59 -101
  454. data/spec/factories.rb +25 -0
  455. data/spec/models/article_closing_spec.rb +4 -4
  456. data/spec/models/article_spec.rb +119 -30
  457. data/spec/models/blacklist_pattern_spec.rb +1 -1
  458. data/spec/models/blog_spec.rb +0 -1
  459. data/spec/models/comment_spec.rb +0 -4
  460. data/spec/models/configuration_spec.rb +1 -1
  461. data/spec/models/content_state/feedback_states_spec.rb +4 -4
  462. data/spec/models/notification_spec.rb +2 -2
  463. data/spec/models/ping_pinger_spec.rb +3 -3
  464. data/spec/models/ping_spec.rb +34 -47
  465. data/spec/models/route_cache_spec.rb +2 -2
  466. data/spec/models/sidebar_spec.rb +2 -2
  467. data/spec/models/theme_spec.rb +4 -4
  468. data/spec/models/trigger_spec.rb +1 -0
  469. data/spec/models/user_spec.rb +92 -39
  470. data/spec/rcov.opts +2 -0
  471. data/spec/spec_helper.rb +92 -19
  472. data/spec/views/articles/index_spec.rb +2 -2
  473. data/spec/views/articles/read_spec.rb +16 -0
  474. data/spec/views/comments/html_sanitization_spec.rb +16 -0
  475. data/test/fixtures/contents.yml +28 -11
  476. data/test/fixtures/feedback.yml +14 -0
  477. data/test/fixtures/profiles.yml +1 -0
  478. data/test/fixtures/users.yml +9 -1
  479. data/test/test_helper.rb +2 -151
  480. data/themes/dirtylicious/layouts/default.html.erb +1 -1
  481. data/themes/dirtylicious/views/articles/_article.html.erb +14 -10
  482. data/themes/dirtylicious/views/articles/_comment_form.html.erb +1 -1
  483. data/themes/dirtylicious/views/articles/read.html.erb +4 -4
  484. data/themes/scribbish/layouts/default.html.erb +1 -1
  485. data/themes/scribbish/views/articles/_article.html.erb +13 -9
  486. data/themes/scribbish/views/articles/_comment_form.html.erb +1 -1
  487. data/themes/scribbish/views/articles/read.html.erb +4 -4
  488. data/themes/standard_issue/layouts/default.html.erb +1 -1
  489. data/themes/standard_issue/views/articles/_article.html.erb +13 -9
  490. data/themes/standard_issue/views/articles/_comment_form.html.erb +1 -1
  491. data/themes/standard_issue/views/articles/read.html.erb +4 -4
  492. data/themes/true-blue-3/README +3 -0
  493. data/themes/true-blue-3/about.markdown +3 -0
  494. data/themes/true-blue-3/helpers/theme_helper.rb +85 -0
  495. data/themes/true-blue-3/images/background.gif +0 -0
  496. data/themes/true-blue-3/images/bg_input.jpg +0 -0
  497. data/themes/true-blue-3/images/bullet.jpg +0 -0
  498. data/themes/true-blue-3/images/comment.gif +0 -0
  499. data/themes/true-blue-3/images/comment.jpg +0 -0
  500. data/themes/true-blue-3/images/comment_bottom.gif +0 -0
  501. data/themes/true-blue-3/images/comment_fdv.gif +0 -0
  502. data/themes/true-blue-3/images/find.png +0 -0
  503. data/themes/true-blue-3/images/fleche1.png +0 -0
  504. data/themes/true-blue-3/images/fleche2.png +0 -0
  505. data/themes/true-blue-3/images/frederic-de-villamil.jpg +0 -0
  506. data/themes/true-blue-3/images/rss.png +0 -0
  507. data/themes/true-blue-3/images/searchform.png +0 -0
  508. data/themes/true-blue-3/images/textarea_bg.jpg +0 -0
  509. data/themes/true-blue-3/images/twitter.jpg +0 -0
  510. data/themes/true-blue-3/images/twitter.png +0 -0
  511. data/themes/true-blue-3/layouts/default.html.erb +52 -0
  512. data/themes/true-blue-3/preview.png +0 -0
  513. data/themes/true-blue-3/psd/true-blue-3.psd +0 -0
  514. data/themes/true-blue-3/psd/true-blue-3_article.psd +0 -0
  515. data/themes/true-blue-3/stylesheets/style.css +555 -0
  516. data/themes/true-blue-3/views/articles/_article.html.erb +21 -0
  517. data/themes/true-blue-3/views/articles/_comment.html.erb +14 -0
  518. data/themes/true-blue-3/views/articles/_comment_form.html.erb +23 -0
  519. data/themes/true-blue-3/views/articles/_comment_list.html.erb +8 -0
  520. data/themes/true-blue-3/views/articles/_trackback.html.erb +9 -0
  521. data/themes/true-blue-3/views/articles/comment_preview.html.erb +10 -0
  522. data/themes/true-blue-3/views/articles/index.html.erb +5 -0
  523. data/themes/true-blue-3/views/articles/read.html.erb +38 -0
  524. data/themes/true-blue-3/views/articles/search.html.erb +29 -0
  525. data/themes/true-blue-3/views/articles/view_page.html.erb +4 -0
  526. data/themes/true-blue-3/views/categories/_article.html.erb +22 -0
  527. data/themes/true-blue-3/views/categories/index.html.erb +13 -0
  528. data/themes/true-blue-3/views/categories/show.html.erb +7 -0
  529. data/themes/true-blue-3/views/tags/_article.html.erb +22 -0
  530. data/themes/true-blue-3/views/tags/show.html.erb +6 -0
  531. data/themes/typographic/layouts/default.html.erb +1 -1
  532. data/themes/typographic/views/articles/_article.html.erb +13 -9
  533. data/themes/typographic/views/articles/_comment_form.html.erb +1 -1
  534. data/themes/typographic/views/articles/_comment_list.html.erb +1 -1
  535. data/themes/typographic/views/articles/read.html.erb +4 -4
  536. data/vendor/flickr/flickr.rb +3 -3
  537. data/vendor/plugins/archives_sidebar/views/content.rhtml +1 -1
  538. data/vendor/plugins/authors_sidebar/Rakefile +22 -0
  539. data/vendor/plugins/authors_sidebar/init.rb +4 -0
  540. data/vendor/plugins/authors_sidebar/lib/authors_sidebar.rb +10 -0
  541. data/vendor/plugins/authors_sidebar/test/authors_sidebar_test.rb +8 -0
  542. data/vendor/plugins/authors_sidebar/views/content.rhtml +11 -0
  543. data/vendor/plugins/category_sidebar/views/content.rhtml +2 -2
  544. data/vendor/plugins/easy-ckeditor/CHANGELOG +15 -0
  545. data/vendor/plugins/easy-ckeditor/LICENSE +16 -0
  546. data/vendor/plugins/easy-ckeditor/README.textile +164 -0
  547. data/vendor/plugins/easy-ckeditor/Rakefile +72 -0
  548. data/vendor/plugins/easy-ckeditor/app/controllers/ckeditor_controller.rb +225 -0
  549. data/vendor/plugins/easy-ckeditor/app/helpers/ckeditor_helper.rb +2 -0
  550. data/vendor/plugins/easy-ckeditor/init.rb +33 -0
  551. data/vendor/plugins/easy-ckeditor/install.rb +12 -0
  552. data/vendor/plugins/easy-ckeditor/lib/ckeditor.rb +113 -0
  553. data/vendor/plugins/easy-ckeditor/lib/ckeditor_file_utils.rb +108 -0
  554. data/vendor/plugins/easy-ckeditor/lib/ckeditor_version.rb +9 -0
  555. data/vendor/plugins/easy-ckeditor/public/javascripts/ckcustom.js +16 -0
  556. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/.htaccess +24 -0
  557. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/CHANGES.html +254 -0
  558. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/INSTALL.html +92 -0
  559. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/LICENSE.html +1334 -0
  560. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/ckeditor.js +108 -0
  561. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/ckeditor.pack +199 -0
  562. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/ckeditor_basic.js +8 -0
  563. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/ckeditor_basic_source.js +20 -0
  564. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/ckeditor_source.js +25 -0
  565. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/config.js +11 -0
  566. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/contents.css +35 -0
  567. data/{public/javascripts/fckeditor/editor/skins/silver/images/toolbar.end.gif → vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/images/spacer.gif} +0 -0
  568. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/_languages.js +6 -0
  569. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/_translationstatus.txt +59 -0
  570. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/af.js +6 -0
  571. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/ar.js +6 -0
  572. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/bg.js +6 -0
  573. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/bn.js +6 -0
  574. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/bs.js +6 -0
  575. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/ca.js +6 -0
  576. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/cs.js +6 -0
  577. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/da.js +6 -0
  578. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/de.js +6 -0
  579. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/el.js +6 -0
  580. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/en-au.js +6 -0
  581. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/en-ca.js +6 -0
  582. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/en-uk.js +6 -0
  583. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/en.js +6 -0
  584. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/eo.js +6 -0
  585. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/es.js +6 -0
  586. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/et.js +6 -0
  587. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/eu.js +6 -0
  588. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/fa.js +6 -0
  589. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/fi.js +6 -0
  590. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/fo.js +6 -0
  591. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/fr-ca.js +6 -0
  592. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/fr.js +6 -0
  593. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/gl.js +6 -0
  594. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/gu.js +6 -0
  595. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/he.js +6 -0
  596. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/hi.js +6 -0
  597. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/hr.js +6 -0
  598. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/hu.js +6 -0
  599. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/is.js +6 -0
  600. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/it.js +6 -0
  601. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/ja.js +6 -0
  602. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/km.js +6 -0
  603. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/ko.js +6 -0
  604. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/lt.js +6 -0
  605. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/lv.js +6 -0
  606. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/mn.js +6 -0
  607. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/ms.js +6 -0
  608. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/nb.js +6 -0
  609. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/nl.js +6 -0
  610. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/no.js +6 -0
  611. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/pl.js +6 -0
  612. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/pt-br.js +6 -0
  613. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/pt.js +6 -0
  614. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/ro.js +6 -0
  615. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/ru.js +6 -0
  616. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/sk.js +6 -0
  617. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/sl.js +6 -0
  618. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/sr-latn.js +6 -0
  619. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/sr.js +6 -0
  620. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/sv.js +6 -0
  621. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/th.js +6 -0
  622. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/tr.js +6 -0
  623. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/uk.js +6 -0
  624. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/vi.js +6 -0
  625. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/zh-cn.js +6 -0
  626. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/lang/zh.js +6 -0
  627. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/about/dialogs/about.js +6 -0
  628. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/about/dialogs/logo_ckeditor.png +0 -0
  629. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/about/plugin.js +6 -0
  630. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/basicstyles/plugin.js +6 -0
  631. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/blockquote/plugin.js +7 -0
  632. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/button/plugin.js +7 -0
  633. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/clipboard/dialogs/paste.js +7 -0
  634. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/clipboard/plugin.js +6 -0
  635. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/colorbutton/plugin.js +7 -0
  636. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/contextmenu/plugin.js +6 -0
  637. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/dialog/dialogDefinition.js +4 -0
  638. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/dialog/plugin.js +17 -0
  639. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/dialogui/plugin.js +11 -0
  640. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/domiterator/plugin.js +7 -0
  641. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/editingblock/plugin.js +6 -0
  642. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/elementspath/plugin.js +6 -0
  643. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/enterkey/plugin.js +7 -0
  644. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/entities/plugin.js +6 -0
  645. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/fakeobjects/plugin.js +6 -0
  646. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/filebrowser/plugin.js +7 -0
  647. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/find/dialogs/find.js +9 -0
  648. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/find/plugin.js +6 -0
  649. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/flash/dialogs/flash.js +9 -0
  650. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/flash/images/placeholder.png +0 -0
  651. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/flash/plugin.js +6 -0
  652. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/floatpanel/plugin.js +7 -0
  653. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/font/plugin.js +6 -0
  654. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/format/plugin.js +6 -0
  655. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/forms/dialogs/button.js +6 -0
  656. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/forms/dialogs/checkbox.js +6 -0
  657. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/forms/dialogs/form.js +6 -0
  658. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/forms/dialogs/hiddenfield.js +6 -0
  659. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/forms/dialogs/radio.js +6 -0
  660. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/forms/dialogs/select.js +9 -0
  661. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/forms/dialogs/textarea.js +6 -0
  662. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/forms/dialogs/textfield.js +6 -0
  663. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/forms/plugin.js +7 -0
  664. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/horizontalrule/plugin.js +6 -0
  665. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/htmldataprocessor/plugin.js +7 -0
  666. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/htmlwriter/plugin.js +6 -0
  667. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/iframedialog/plugin.js +6 -0
  668. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/image/dialogs/image.js +12 -0
  669. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/image/plugin.js +6 -0
  670. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/indent/plugin.js +7 -0
  671. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/justify/plugin.js +6 -0
  672. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/keystrokes/plugin.js +6 -0
  673. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/link/dialogs/anchor.js +6 -0
  674. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/link/dialogs/link.js +11 -0
  675. data/{public/javascripts/fckeditor/editor/css/images/fck_anchor.gif → vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/link/images/anchor.gif} +0 -0
  676. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/link/plugin.js +6 -0
  677. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/list/plugin.js +9 -0
  678. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/listblock/plugin.js +7 -0
  679. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/maximize/plugin.js +7 -0
  680. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/menu/plugin.js +7 -0
  681. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/menubutton/plugin.js +6 -0
  682. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/newpage/plugin.js +6 -0
  683. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/pagebreak/images/pagebreak.gif +0 -0
  684. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/pagebreak/plugin.js +6 -0
  685. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/panel/plugin.js +7 -0
  686. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/panelbutton/plugin.js +6 -0
  687. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/pastefromword/dialogs/pastefromword.js +8 -0
  688. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/pastefromword/plugin.js +6 -0
  689. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/pastetext/dialogs/pastetext.js +6 -0
  690. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/pastetext/plugin.js +6 -0
  691. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/popup/plugin.js +6 -0
  692. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/preview/plugin.js +6 -0
  693. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/print/plugin.js +6 -0
  694. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/removeformat/plugin.js +6 -0
  695. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/resize/plugin.js +6 -0
  696. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/richcombo/plugin.js +7 -0
  697. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/save/plugin.js +6 -0
  698. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/scayt/dialogs/options.js +8 -0
  699. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/scayt/dialogs/toolbar.css +6 -0
  700. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/scayt/plugin.js +8 -0
  701. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/selection/plugin.js +9 -0
  702. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/showblocks/images/block_address.png +0 -0
  703. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/showblocks/images/block_blockquote.png +0 -0
  704. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/showblocks/images/block_div.png +0 -0
  705. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/showblocks/images/block_h1.png +0 -0
  706. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/showblocks/images/block_h2.png +0 -0
  707. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/showblocks/images/block_h3.png +0 -0
  708. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/showblocks/images/block_h4.png +0 -0
  709. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/showblocks/images/block_h5.png +0 -0
  710. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/showblocks/images/block_h6.png +0 -0
  711. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/showblocks/images/block_p.png +0 -0
  712. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/showblocks/images/block_pre.png +0 -0
  713. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/showblocks/plugin.js +6 -0
  714. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/smiley/dialogs/smiley.js +7 -0
  715. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/smiley/images/angel_smile.gif +0 -0
  716. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/smiley/images/angry_smile.gif +0 -0
  717. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/smiley/images/broken_heart.gif +0 -0
  718. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/smiley/images/confused_smile.gif +0 -0
  719. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/smiley/images/cry_smile.gif +0 -0
  720. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/smiley/images/devil_smile.gif +0 -0
  721. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/smiley/images/embaressed_smile.gif +0 -0
  722. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/smiley/images/envelope.gif +0 -0
  723. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/smiley/images/heart.gif +0 -0
  724. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/smiley/images/kiss.gif +0 -0
  725. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/smiley/images/lightbulb.gif +0 -0
  726. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/smiley/images/omg_smile.gif +0 -0
  727. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/smiley/images/regular_smile.gif +0 -0
  728. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/smiley/images/sad_smile.gif +0 -0
  729. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/smiley/images/shades_smile.gif +0 -0
  730. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/smiley/images/teeth_smile.gif +0 -0
  731. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/smiley/images/thumbs_down.gif +0 -0
  732. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/smiley/images/thumbs_up.gif +0 -0
  733. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/smiley/images/tounge_smile.gif +0 -0
  734. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif +0 -0
  735. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/smiley/images/wink_smile.gif +0 -0
  736. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/smiley/plugin.js +6 -0
  737. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/sourcearea/plugin.js +6 -0
  738. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/specialchar/dialogs/specialchar.js +7 -0
  739. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/specialchar/plugin.js +6 -0
  740. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/styles/plugin.js +10 -0
  741. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/stylescombo/plugin.js +7 -0
  742. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/stylescombo/styles/default.js +6 -0
  743. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/tab/plugin.js +6 -0
  744. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/table/dialogs/table.js +8 -0
  745. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/table/plugin.js +6 -0
  746. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/tabletools/dialogs/tableCell.js +7 -0
  747. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/tabletools/plugin.js +9 -0
  748. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/templates/dialogs/templates.js +6 -0
  749. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/templates/plugin.js +6 -0
  750. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/templates/templates/default.js +6 -0
  751. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/templates/templates/images/template1.gif +0 -0
  752. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/templates/templates/images/template2.gif +0 -0
  753. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/templates/templates/images/template3.gif +0 -0
  754. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/toolbar/plugin.js +7 -0
  755. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/uicolor/dialogs/uicolor.js +7 -0
  756. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/uicolor/lang/en.js +6 -0
  757. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/uicolor/plugin.js +6 -0
  758. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/uicolor/uicolor.gif +0 -0
  759. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/uicolor/yui/assets/hue_bg.png +0 -0
  760. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png +0 -0
  761. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/uicolor/yui/assets/picker_mask.png +0 -0
  762. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png +0 -0
  763. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/uicolor/yui/assets/yui.css +6 -0
  764. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/uicolor/yui/yui.js +76 -0
  765. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/undo/plugin.js +7 -0
  766. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/wsc/dialogs/ciframe.html +49 -0
  767. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +52 -0
  768. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/wsc/dialogs/wsc.css +6 -0
  769. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/wsc/dialogs/wsc.js +7 -0
  770. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/wsc/plugin.js +6 -0
  771. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/plugins/wysiwygarea/plugin.js +8 -0
  772. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/kama/dialog.css +9 -0
  773. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/kama/editor.css +12 -0
  774. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/kama/icons.png +0 -0
  775. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/kama/images/dialog_sides.gif +0 -0
  776. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/kama/images/dialog_sides.png +0 -0
  777. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/kama/images/dialog_sides_rtl.png +0 -0
  778. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/kama/images/mini.gif +0 -0
  779. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/kama/images/noimage.png +0 -0
  780. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/kama/images/sprites.png +0 -0
  781. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/kama/images/sprites_ie6.png +0 -0
  782. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/kama/images/toolbar_start.gif +0 -0
  783. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/kama/skin.js +7 -0
  784. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/kama/templates.css +6 -0
  785. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/office2003/dialog.css +8 -0
  786. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/office2003/editor.css +13 -0
  787. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/office2003/icons.png +0 -0
  788. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/office2003/images/dialog_sides.gif +0 -0
  789. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/office2003/images/dialog_sides.png +0 -0
  790. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/office2003/images/dialog_sides_rtl.png +0 -0
  791. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/office2003/images/mini.gif +0 -0
  792. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/office2003/images/noimage.png +0 -0
  793. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/office2003/images/sprites.png +0 -0
  794. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/office2003/images/sprites_ie6.png +0 -0
  795. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/office2003/skin.js +6 -0
  796. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/office2003/templates.css +6 -0
  797. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/v2/dialog.css +8 -0
  798. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/v2/editor.css +12 -0
  799. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/v2/icons.png +0 -0
  800. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/v2/images/dialog_sides.gif +0 -0
  801. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/v2/images/dialog_sides.png +0 -0
  802. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/v2/images/dialog_sides_rtl.png +0 -0
  803. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/v2/images/mini.gif +0 -0
  804. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/v2/images/noimage.png +0 -0
  805. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/v2/images/sprites.png +0 -0
  806. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/v2/images/sprites_ie6.png +0 -0
  807. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/v2/images/toolbar_start.gif +0 -0
  808. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/v2/skin.js +6 -0
  809. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/skins/v2/templates.css +6 -0
  810. data/vendor/plugins/easy-ckeditor/public/javascripts/ckeditor/themes/default/theme.js +7 -0
  811. data/vendor/plugins/easy-ckeditor/tasks/ckeditor_tasks.rake +108 -0
  812. data/vendor/plugins/easy-ckeditor/uninstall.rb +8 -0
  813. data/vendor/plugins/livesearch_sidebar/views/content.rhtml +1 -1
  814. data/vendor/plugins/page_sidebar/lib/page_sidebar.rb +1 -1
  815. data/vendor/plugins/typo_converter/Rakefile +7 -8
  816. data/vendor/plugins/typo_converter/db/wp25_schema.rb +152 -0
  817. data/vendor/plugins/typo_converter/lib/converters/base.rb +41 -2
  818. data/vendor/plugins/typo_converter/lib/converters/wp25.rb +59 -4
  819. data/vendor/plugins/typo_converter/lib/converters/wp25/comment.rb +1 -0
  820. data/vendor/plugins/typo_converter/lib/converters/wp25/option.rb +11 -0
  821. data/vendor/plugins/typo_converter/spec/converters/wp25_spec.rb +192 -0
  822. data/vendor/plugins/typo_converter/spec/factories/wp25_factories.rb +77 -0
  823. data/vendor/plugins/typo_converter/spec/spec_helper.rb +19 -0
  824. data/vendor/plugins/typo_converter/spec/typo_converter_spec.rb +2 -0
  825. data/vendor/plugins/typo_converter/tasks/typo_converters_tasks.rake +1 -4
  826. data/vendor/plugins/typo_textfilter_code/init.rb +7 -2
  827. data/vendor/plugins/typo_textfilter_code/lib/typo_textfilter_code.rb +2 -0
  828. data/vendor/plugins/typo_textfilter_lightbox/lib/typo_textfilter_lightbox.rb +4 -2
  829. data/vendor/plugins/typo_textfilter_textile/lib/typo_textfilter_textile.rb +1 -1
  830. data/vendor/plugins/xml_sidebar/lib/xml_sidebar.rb +3 -0
  831. data/vendor/plugins/xml_sidebar/views/content.rhtml +15 -1
  832. metadata +684 -1280
  833. data/app/controllers/application.rb +0 -90
  834. data/app/models/simple_cache.rb +0 -37
  835. data/app/views/admin/resources/new.html.erb +0 -16
  836. data/app/views/admin/settings/read.html.erb +0 -35
  837. data/app/views/admin/tags/_tags.html.erb +0 -18
  838. data/app/views/shared/_loginform.html.erb +0 -20
  839. data/config/initializers/active_record_hacks.rb +0 -17
  840. data/config/initializers/benchmark_hacks.rb +0 -9
  841. data/doc/typo-5.3-release-notes.txt +0 -105
  842. data/lib/memory_profiler.rb +0 -60
  843. data/lib/typo_deprecated.rb +0 -30
  844. data/lib/xmlrpc_fix.rb +0 -13
  845. data/public/javascripts/fckcustom.js +0 -28
  846. data/public/javascripts/fckeditor/editor/_source/classes/fckcontextmenu.js +0 -214
  847. data/public/javascripts/fckeditor/editor/_source/classes/fckdataprocessor.js +0 -119
  848. data/public/javascripts/fckeditor/editor/_source/classes/fckdocumentfragment_gecko.js +0 -46
  849. data/public/javascripts/fckeditor/editor/_source/classes/fckdocumentfragment_ie.js +0 -58
  850. data/public/javascripts/fckeditor/editor/_source/classes/fckdomrange.js +0 -918
  851. data/public/javascripts/fckeditor/editor/_source/classes/fckdomrange_gecko.js +0 -104
  852. data/public/javascripts/fckeditor/editor/_source/classes/fckdomrange_ie.js +0 -199
  853. data/public/javascripts/fckeditor/editor/_source/classes/fckdomrangeiterator.js +0 -327
  854. data/public/javascripts/fckeditor/editor/_source/classes/fckeditingarea.js +0 -362
  855. data/public/javascripts/fckeditor/editor/_source/classes/fckelementpath.js +0 -89
  856. data/public/javascripts/fckeditor/editor/_source/classes/fckenterkey.js +0 -667
  857. data/public/javascripts/fckeditor/editor/_source/classes/fckevents.js +0 -71
  858. data/public/javascripts/fckeditor/editor/_source/classes/fckhtmliterator.js +0 -142
  859. data/public/javascripts/fckeditor/editor/_source/classes/fckicon.js +0 -103
  860. data/public/javascripts/fckeditor/editor/_source/classes/fckiecleanup.js +0 -68
  861. data/public/javascripts/fckeditor/editor/_source/classes/fckimagepreloader.js +0 -64
  862. data/public/javascripts/fckeditor/editor/_source/classes/fckkeystrokehandler.js +0 -141
  863. data/public/javascripts/fckeditor/editor/_source/classes/fckmenublock.js +0 -153
  864. data/public/javascripts/fckeditor/editor/_source/classes/fckmenublockpanel.js +0 -54
  865. data/public/javascripts/fckeditor/editor/_source/classes/fckmenuitem.js +0 -161
  866. data/public/javascripts/fckeditor/editor/_source/classes/fckpanel.js +0 -385
  867. data/public/javascripts/fckeditor/editor/_source/classes/fckplugin.js +0 -56
  868. data/public/javascripts/fckeditor/editor/_source/classes/fckspecialcombo.js +0 -376
  869. data/public/javascripts/fckeditor/editor/_source/classes/fckstyle.js +0 -1443
  870. data/public/javascripts/fckeditor/editor/_source/classes/fcktoolbar.js +0 -103
  871. data/public/javascripts/fckeditor/editor/_source/classes/fcktoolbarbreak_gecko.js +0 -36
  872. data/public/javascripts/fckeditor/editor/_source/classes/fcktoolbarbreak_ie.js +0 -38
  873. data/public/javascripts/fckeditor/editor/_source/classes/fcktoolbarbutton.js +0 -81
  874. data/public/javascripts/fckeditor/editor/_source/classes/fcktoolbarbuttonui.js +0 -198
  875. data/public/javascripts/fckeditor/editor/_source/classes/fcktoolbarfontformatcombo.js +0 -139
  876. data/public/javascripts/fckeditor/editor/_source/classes/fcktoolbarfontscombo.js +0 -98
  877. data/public/javascripts/fckeditor/editor/_source/classes/fcktoolbarfontsizecombo.js +0 -76
  878. data/public/javascripts/fckeditor/editor/_source/classes/fcktoolbarpanelbutton.js +0 -103
  879. data/public/javascripts/fckeditor/editor/_source/classes/fcktoolbarspecialcombo.js +0 -146
  880. data/public/javascripts/fckeditor/editor/_source/classes/fcktoolbarstylecombo.js +0 -200
  881. data/public/javascripts/fckeditor/editor/_source/classes/fckw3crange.js +0 -451
  882. data/public/javascripts/fckeditor/editor/_source/classes/fckxml.js +0 -108
  883. data/public/javascripts/fckeditor/editor/_source/classes/fckxml_gecko.js +0 -102
  884. data/public/javascripts/fckeditor/editor/_source/classes/fckxml_ie.js +0 -88
  885. data/public/javascripts/fckeditor/editor/_source/commandclasses/fck_othercommands.js +0 -518
  886. data/public/javascripts/fckeditor/editor/_source/commandclasses/fckblockquotecommand.js +0 -250
  887. data/public/javascripts/fckeditor/editor/_source/commandclasses/fckcorestylecommand.js +0 -61
  888. data/public/javascripts/fckeditor/editor/_source/commandclasses/fckfitwindow.js +0 -180
  889. data/public/javascripts/fckeditor/editor/_source/commandclasses/fckindentcommands.js +0 -282
  890. data/public/javascripts/fckeditor/editor/_source/commandclasses/fckjustifycommands.js +0 -173
  891. data/public/javascripts/fckeditor/editor/_source/commandclasses/fcklistcommands.js +0 -382
  892. data/public/javascripts/fckeditor/editor/_source/commandclasses/fcknamedcommand.js +0 -39
  893. data/public/javascripts/fckeditor/editor/_source/commandclasses/fckpasteplaintextcommand.js +0 -40
  894. data/public/javascripts/fckeditor/editor/_source/commandclasses/fckpastewordcommand.js +0 -40
  895. data/public/javascripts/fckeditor/editor/_source/commandclasses/fckremoveformatcommand.js +0 -45
  896. data/public/javascripts/fckeditor/editor/_source/commandclasses/fckshowblocks.js +0 -74
  897. data/public/javascripts/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_gecko.js +0 -41
  898. data/public/javascripts/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_ie.js +0 -69
  899. data/public/javascripts/fckeditor/editor/_source/commandclasses/fckstylecommand.js +0 -60
  900. data/public/javascripts/fckeditor/editor/_source/commandclasses/fcktablecommand.js +0 -106
  901. data/public/javascripts/fckeditor/editor/_source/commandclasses/fcktextcolorcommand.js +0 -201
  902. data/public/javascripts/fckeditor/editor/_source/fckconstants.js +0 -56
  903. data/public/javascripts/fckeditor/editor/_source/fckeditorapi.js +0 -176
  904. data/public/javascripts/fckeditor/editor/_source/fckjscoreextensions.js +0 -166
  905. data/public/javascripts/fckeditor/editor/_source/fckscriptloader.js +0 -122
  906. data/public/javascripts/fckeditor/editor/_source/internals/fck.js +0 -1175
  907. data/public/javascripts/fckeditor/editor/_source/internals/fck_contextmenu.js +0 -325
  908. data/public/javascripts/fckeditor/editor/_source/internals/fck_gecko.js +0 -456
  909. data/public/javascripts/fckeditor/editor/_source/internals/fck_ie.js +0 -453
  910. data/public/javascripts/fckeditor/editor/_source/internals/fckbrowserinfo.js +0 -61
  911. data/public/javascripts/fckeditor/editor/_source/internals/fckcodeformatter.js +0 -100
  912. data/public/javascripts/fckeditor/editor/_source/internals/fckcommands.js +0 -167
  913. data/public/javascripts/fckeditor/editor/_source/internals/fckconfig.js +0 -238
  914. data/public/javascripts/fckeditor/editor/_source/internals/fckdebug.js +0 -56
  915. data/public/javascripts/fckeditor/editor/_source/internals/fckdialog.js +0 -234
  916. data/public/javascripts/fckeditor/editor/_source/internals/fckdialog_gecko.js +0 -103
  917. data/public/javascripts/fckeditor/editor/_source/internals/fckdialog_ie.js +0 -48
  918. data/public/javascripts/fckeditor/editor/_source/internals/fckdocumentprocessor.js +0 -249
  919. data/public/javascripts/fckeditor/editor/_source/internals/fckdomtools.js +0 -1024
  920. data/public/javascripts/fckeditor/editor/_source/internals/fcklanguagemanager.js +0 -163
  921. data/public/javascripts/fckeditor/editor/_source/internals/fcklisthandler.js +0 -152
  922. data/public/javascripts/fckeditor/editor/_source/internals/fcklistslib.js +0 -63
  923. data/public/javascripts/fckeditor/editor/_source/internals/fckplugins.js +0 -46
  924. data/public/javascripts/fckeditor/editor/_source/internals/fckregexlib.js +0 -99
  925. data/public/javascripts/fckeditor/editor/_source/internals/fckselection.js +0 -42
  926. data/public/javascripts/fckeditor/editor/_source/internals/fckselection_gecko.js +0 -220
  927. data/public/javascripts/fckeditor/editor/_source/internals/fckselection_ie.js +0 -275
  928. data/public/javascripts/fckeditor/editor/_source/internals/fckstyles.js +0 -381
  929. data/public/javascripts/fckeditor/editor/_source/internals/fcktablehandler.js +0 -858
  930. data/public/javascripts/fckeditor/editor/_source/internals/fcktablehandler_gecko.js +0 -56
  931. data/public/javascripts/fckeditor/editor/_source/internals/fcktablehandler_ie.js +0 -64
  932. data/public/javascripts/fckeditor/editor/_source/internals/fcktoolbaritems.js +0 -123
  933. data/public/javascripts/fckeditor/editor/_source/internals/fcktoolbarset.js +0 -399
  934. data/public/javascripts/fckeditor/editor/_source/internals/fcktools.js +0 -740
  935. data/public/javascripts/fckeditor/editor/_source/internals/fcktools_gecko.js +0 -282
  936. data/public/javascripts/fckeditor/editor/_source/internals/fcktools_ie.js +0 -233
  937. data/public/javascripts/fckeditor/editor/_source/internals/fckundo.js +0 -223
  938. data/public/javascripts/fckeditor/editor/_source/internals/fckurlparams.js +0 -39
  939. data/public/javascripts/fckeditor/editor/_source/internals/fckxhtml.js +0 -515
  940. data/public/javascripts/fckeditor/editor/_source/internals/fckxhtml_gecko.js +0 -101
  941. data/public/javascripts/fckeditor/editor/_source/internals/fckxhtml_ie.js +0 -203
  942. data/public/javascripts/fckeditor/editor/_source/internals/fckxhtmlentities.js +0 -354
  943. data/public/javascripts/fckeditor/editor/css/behaviors/disablehandles.htc +0 -15
  944. data/public/javascripts/fckeditor/editor/css/behaviors/showtableborders.htc +0 -36
  945. data/public/javascripts/fckeditor/editor/css/fck_editorarea.css +0 -92
  946. data/public/javascripts/fckeditor/editor/css/fck_internal.css +0 -199
  947. data/public/javascripts/fckeditor/editor/css/fck_showtableborders_gecko.css +0 -49
  948. data/public/javascripts/fckeditor/editor/css/images/fck_flashlogo.gif +0 -0
  949. data/public/javascripts/fckeditor/editor/css/images/fck_hiddenfield.gif +0 -0
  950. data/public/javascripts/fckeditor/editor/css/images/fck_plugin.gif +0 -0
  951. data/public/javascripts/fckeditor/editor/dialog/common/fck_dialog_common.css +0 -85
  952. data/public/javascripts/fckeditor/editor/dialog/common/fck_dialog_common.js +0 -338
  953. data/public/javascripts/fckeditor/editor/dialog/common/images/locked.gif +0 -0
  954. data/public/javascripts/fckeditor/editor/dialog/common/images/reset.gif +0 -0
  955. data/public/javascripts/fckeditor/editor/dialog/common/images/unlocked.gif +0 -0
  956. data/public/javascripts/fckeditor/editor/dialog/fck_about.html +0 -161
  957. data/public/javascripts/fckeditor/editor/dialog/fck_about/logo_fckeditor.gif +0 -0
  958. data/public/javascripts/fckeditor/editor/dialog/fck_about/logo_fredck.gif +0 -0
  959. data/public/javascripts/fckeditor/editor/dialog/fck_about/sponsors/spellchecker_net.gif +0 -0
  960. data/public/javascripts/fckeditor/editor/dialog/fck_anchor.html +0 -212
  961. data/public/javascripts/fckeditor/editor/dialog/fck_button.html +0 -104
  962. data/public/javascripts/fckeditor/editor/dialog/fck_checkbox.html +0 -104
  963. data/public/javascripts/fckeditor/editor/dialog/fck_colorselector.html +0 -172
  964. data/public/javascripts/fckeditor/editor/dialog/fck_docprops.html +0 -600
  965. data/public/javascripts/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html +0 -113
  966. data/public/javascripts/fckeditor/editor/dialog/fck_find.html +0 -173
  967. data/public/javascripts/fckeditor/editor/dialog/fck_flash.html +0 -152
  968. data/public/javascripts/fckeditor/editor/dialog/fck_flash/fck_flash.js +0 -292
  969. data/public/javascripts/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html +0 -50
  970. data/public/javascripts/fckeditor/editor/dialog/fck_form.html +0 -109
  971. data/public/javascripts/fckeditor/editor/dialog/fck_hiddenfield.html +0 -115
  972. data/public/javascripts/fckeditor/editor/dialog/fck_image.html +0 -258
  973. data/public/javascripts/fckeditor/editor/dialog/fck_image/fck_image.js +0 -504
  974. data/public/javascripts/fckeditor/editor/dialog/fck_image/fck_image_preview.html +0 -72
  975. data/public/javascripts/fckeditor/editor/dialog/fck_link.html +0 -293
  976. data/public/javascripts/fckeditor/editor/dialog/fck_link/fck_link.js +0 -736
  977. data/public/javascripts/fckeditor/editor/dialog/fck_listprop.html +0 -120
  978. data/public/javascripts/fckeditor/editor/dialog/fck_paste.html +0 -339
  979. data/public/javascripts/fckeditor/editor/dialog/fck_radiobutton.html +0 -104
  980. data/public/javascripts/fckeditor/editor/dialog/fck_replace.html +0 -530
  981. data/public/javascripts/fckeditor/editor/dialog/fck_select.html +0 -180
  982. data/public/javascripts/fckeditor/editor/dialog/fck_select/fck_select.js +0 -194
  983. data/public/javascripts/fckeditor/editor/dialog/fck_smiley.html +0 -111
  984. data/public/javascripts/fckeditor/editor/dialog/fck_source.html +0 -68
  985. data/public/javascripts/fckeditor/editor/dialog/fck_specialchar.html +0 -121
  986. data/public/javascripts/fckeditor/editor/dialog/fck_spellerpages.html +0 -65
  987. data/public/javascripts/fckeditor/editor/dialog/fck_spellerpages/spellerpages/blank.html +0 -0
  988. data/public/javascripts/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controlWindow.js +0 -87
  989. data/public/javascripts/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html +0 -153
  990. data/public/javascripts/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.cfm +0 -148
  991. data/public/javascripts/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php +0 -199
  992. data/public/javascripts/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl +0 -181
  993. data/public/javascripts/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js +0 -461
  994. data/public/javascripts/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html +0 -71
  995. data/public/javascripts/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellerStyle.css +0 -49
  996. data/public/javascripts/fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js +0 -272
  997. data/public/javascripts/fckeditor/editor/dialog/fck_table.html +0 -298
  998. data/public/javascripts/fckeditor/editor/dialog/fck_tablecell.html +0 -257
  999. data/public/javascripts/fckeditor/editor/dialog/fck_template.html +0 -242
  1000. data/public/javascripts/fckeditor/editor/dialog/fck_textarea.html +0 -94
  1001. data/public/javascripts/fckeditor/editor/dialog/fck_textfield.html +0 -136
  1002. data/public/javascripts/fckeditor/editor/dtd/fck_dtd_test.html +0 -41
  1003. data/public/javascripts/fckeditor/editor/dtd/fck_xhtml10strict.js +0 -116
  1004. data/public/javascripts/fckeditor/editor/dtd/fck_xhtml10transitional.js +0 -140
  1005. data/public/javascripts/fckeditor/editor/fckdebug.html +0 -153
  1006. data/public/javascripts/fckeditor/editor/fckdialog.html +0 -783
  1007. data/public/javascripts/fckeditor/editor/fckeditor.html +0 -278
  1008. data/public/javascripts/fckeditor/editor/fckeditor.original.html +0 -385
  1009. data/public/javascripts/fckeditor/editor/filemanager/browser/default/browser.css +0 -89
  1010. data/public/javascripts/fckeditor/editor/filemanager/browser/default/browser.html +0 -198
  1011. data/public/javascripts/fckeditor/editor/filemanager/browser/default/frmactualfolder.html +0 -99
  1012. data/public/javascripts/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html +0 -113
  1013. data/public/javascripts/fckeditor/editor/filemanager/browser/default/frmfolders.html +0 -197
  1014. data/public/javascripts/fckeditor/editor/filemanager/browser/default/frmresourceslist.html +0 -168
  1015. data/public/javascripts/fckeditor/editor/filemanager/browser/default/frmresourcetype.html +0 -65
  1016. data/public/javascripts/fckeditor/editor/filemanager/browser/default/frmupload.html +0 -115
  1017. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/ButtonArrow.gif +0 -0
  1018. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/Folder.gif +0 -0
  1019. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/Folder32.gif +0 -0
  1020. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/FolderOpened.gif +0 -0
  1021. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/FolderOpened32.gif +0 -0
  1022. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/FolderUp.gif +0 -0
  1023. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/ai.gif +0 -0
  1024. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/avi.gif +0 -0
  1025. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/bmp.gif +0 -0
  1026. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/cs.gif +0 -0
  1027. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/default.icon.gif +0 -0
  1028. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/dll.gif +0 -0
  1029. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/doc.gif +0 -0
  1030. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/exe.gif +0 -0
  1031. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/fla.gif +0 -0
  1032. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/gif.gif +0 -0
  1033. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/htm.gif +0 -0
  1034. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/html.gif +0 -0
  1035. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/jpg.gif +0 -0
  1036. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/js.gif +0 -0
  1037. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/mdb.gif +0 -0
  1038. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/mp3.gif +0 -0
  1039. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/pdf.gif +0 -0
  1040. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/png.gif +0 -0
  1041. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/ppt.gif +0 -0
  1042. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/rdp.gif +0 -0
  1043. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/swf.gif +0 -0
  1044. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/swt.gif +0 -0
  1045. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/txt.gif +0 -0
  1046. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/vsd.gif +0 -0
  1047. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/xls.gif +0 -0
  1048. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/xml.gif +0 -0
  1049. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/zip.gif +0 -0
  1050. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/ai.gif +0 -0
  1051. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/avi.gif +0 -0
  1052. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/bmp.gif +0 -0
  1053. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/cs.gif +0 -0
  1054. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/default.icon.gif +0 -0
  1055. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/dll.gif +0 -0
  1056. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/doc.gif +0 -0
  1057. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/exe.gif +0 -0
  1058. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/fla.gif +0 -0
  1059. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/gif.gif +0 -0
  1060. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/htm.gif +0 -0
  1061. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/html.gif +0 -0
  1062. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/jpg.gif +0 -0
  1063. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/js.gif +0 -0
  1064. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/mdb.gif +0 -0
  1065. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/mp3.gif +0 -0
  1066. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/pdf.gif +0 -0
  1067. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/png.gif +0 -0
  1068. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/ppt.gif +0 -0
  1069. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/rdp.gif +0 -0
  1070. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/swf.gif +0 -0
  1071. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/swt.gif +0 -0
  1072. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/txt.gif +0 -0
  1073. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/vsd.gif +0 -0
  1074. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/xls.gif +0 -0
  1075. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/xml.gif +0 -0
  1076. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/zip.gif +0 -0
  1077. data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/spacer.gif +0 -0
  1078. data/public/javascripts/fckeditor/editor/filemanager/browser/default/js/common.js +0 -87
  1079. data/public/javascripts/fckeditor/editor/filemanager/browser/default/js/fckxml.js +0 -129
  1080. data/public/javascripts/fckeditor/editor/filemanager/connectors/aspx/connector.aspx +0 -32
  1081. data/public/javascripts/fckeditor/editor/filemanager/connectors/aspx/upload.aspx +0 -32
  1082. data/public/javascripts/fckeditor/editor/filemanager/connectors/perl/basexml.pl +0 -63
  1083. data/public/javascripts/fckeditor/editor/filemanager/connectors/perl/commands.pl +0 -214
  1084. data/public/javascripts/fckeditor/editor/filemanager/connectors/perl/connector.cgi +0 -136
  1085. data/public/javascripts/fckeditor/editor/filemanager/connectors/perl/io.pl +0 -141
  1086. data/public/javascripts/fckeditor/editor/filemanager/connectors/perl/upload.cgi +0 -117
  1087. data/public/javascripts/fckeditor/editor/filemanager/connectors/perl/upload_fck.pl +0 -686
  1088. data/public/javascripts/fckeditor/editor/filemanager/connectors/perl/util.pl +0 -68
  1089. data/public/javascripts/fckeditor/editor/filemanager/connectors/py/config.py +0 -146
  1090. data/public/javascripts/fckeditor/editor/filemanager/connectors/py/connector.py +0 -118
  1091. data/public/javascripts/fckeditor/editor/filemanager/connectors/py/fckcommands.py +0 -198
  1092. data/public/javascripts/fckeditor/editor/filemanager/connectors/py/fckconnector.py +0 -90
  1093. data/public/javascripts/fckeditor/editor/filemanager/connectors/py/fckoutput.py +0 -142
  1094. data/public/javascripts/fckeditor/editor/filemanager/connectors/py/fckutil.py +0 -126
  1095. data/public/javascripts/fckeditor/editor/filemanager/connectors/py/htaccess.txt +0 -23
  1096. data/public/javascripts/fckeditor/editor/filemanager/connectors/py/upload.py +0 -88
  1097. data/public/javascripts/fckeditor/editor/filemanager/connectors/py/wsgi.py +0 -58
  1098. data/public/javascripts/fckeditor/editor/filemanager/connectors/py/zope.py +0 -188
  1099. data/public/javascripts/fckeditor/editor/filemanager/connectors/test.html +0 -210
  1100. data/public/javascripts/fckeditor/editor/filemanager/connectors/uploadtest.html +0 -192
  1101. data/public/javascripts/fckeditor/editor/images/arrow_ltr.gif +0 -0
  1102. data/public/javascripts/fckeditor/editor/images/arrow_rtl.gif +0 -0
  1103. data/public/javascripts/fckeditor/editor/images/smiley/msn/angel_smile.gif +0 -0
  1104. data/public/javascripts/fckeditor/editor/images/smiley/msn/angry_smile.gif +0 -0
  1105. data/public/javascripts/fckeditor/editor/images/smiley/msn/broken_heart.gif +0 -0
  1106. data/public/javascripts/fckeditor/editor/images/smiley/msn/cake.gif +0 -0
  1107. data/public/javascripts/fckeditor/editor/images/smiley/msn/confused_smile.gif +0 -0
  1108. data/public/javascripts/fckeditor/editor/images/smiley/msn/cry_smile.gif +0 -0
  1109. data/public/javascripts/fckeditor/editor/images/smiley/msn/devil_smile.gif +0 -0
  1110. data/public/javascripts/fckeditor/editor/images/smiley/msn/embaressed_smile.gif +0 -0
  1111. data/public/javascripts/fckeditor/editor/images/smiley/msn/envelope.gif +0 -0
  1112. data/public/javascripts/fckeditor/editor/images/smiley/msn/heart.gif +0 -0
  1113. data/public/javascripts/fckeditor/editor/images/smiley/msn/kiss.gif +0 -0
  1114. data/public/javascripts/fckeditor/editor/images/smiley/msn/lightbulb.gif +0 -0
  1115. data/public/javascripts/fckeditor/editor/images/smiley/msn/omg_smile.gif +0 -0
  1116. data/public/javascripts/fckeditor/editor/images/smiley/msn/regular_smile.gif +0 -0
  1117. data/public/javascripts/fckeditor/editor/images/smiley/msn/sad_smile.gif +0 -0
  1118. data/public/javascripts/fckeditor/editor/images/smiley/msn/shades_smile.gif +0 -0
  1119. data/public/javascripts/fckeditor/editor/images/smiley/msn/teeth_smile.gif +0 -0
  1120. data/public/javascripts/fckeditor/editor/images/smiley/msn/thumbs_down.gif +0 -0
  1121. data/public/javascripts/fckeditor/editor/images/smiley/msn/thumbs_up.gif +0 -0
  1122. data/public/javascripts/fckeditor/editor/images/smiley/msn/tounge_smile.gif +0 -0
  1123. data/public/javascripts/fckeditor/editor/images/smiley/msn/whatchutalkingabout_smile.gif +0 -0
  1124. data/public/javascripts/fckeditor/editor/images/smiley/msn/wink_smile.gif +0 -0
  1125. data/public/javascripts/fckeditor/editor/js/fckadobeair.js +0 -176
  1126. data/public/javascripts/fckeditor/editor/js/fckeditorcode_gecko.js +0 -108
  1127. data/public/javascripts/fckeditor/editor/js/fckeditorcode_ie.js +0 -109
  1128. data/public/javascripts/fckeditor/editor/lang/_translationstatus.txt +0 -77
  1129. data/public/javascripts/fckeditor/editor/lang/af.js +0 -515
  1130. data/public/javascripts/fckeditor/editor/lang/ar.js +0 -515
  1131. data/public/javascripts/fckeditor/editor/lang/bg.js +0 -515
  1132. data/public/javascripts/fckeditor/editor/lang/bn.js +0 -515
  1133. data/public/javascripts/fckeditor/editor/lang/bs.js +0 -515
  1134. data/public/javascripts/fckeditor/editor/lang/ca.js +0 -515
  1135. data/public/javascripts/fckeditor/editor/lang/cs.js +0 -515
  1136. data/public/javascripts/fckeditor/editor/lang/da.js +0 -515
  1137. data/public/javascripts/fckeditor/editor/lang/de.js +0 -515
  1138. data/public/javascripts/fckeditor/editor/lang/el.js +0 -515
  1139. data/public/javascripts/fckeditor/editor/lang/en-au.js +0 -515
  1140. data/public/javascripts/fckeditor/editor/lang/en-ca.js +0 -515
  1141. data/public/javascripts/fckeditor/editor/lang/en-uk.js +0 -515
  1142. data/public/javascripts/fckeditor/editor/lang/en.js +0 -515
  1143. data/public/javascripts/fckeditor/editor/lang/eo.js +0 -515
  1144. data/public/javascripts/fckeditor/editor/lang/es.js +0 -515
  1145. data/public/javascripts/fckeditor/editor/lang/et.js +0 -515
  1146. data/public/javascripts/fckeditor/editor/lang/eu.js +0 -516
  1147. data/public/javascripts/fckeditor/editor/lang/fa.js +0 -515
  1148. data/public/javascripts/fckeditor/editor/lang/fi.js +0 -515
  1149. data/public/javascripts/fckeditor/editor/lang/fo.js +0 -515
  1150. data/public/javascripts/fckeditor/editor/lang/fr-ca.js +0 -515
  1151. data/public/javascripts/fckeditor/editor/lang/fr.js +0 -515
  1152. data/public/javascripts/fckeditor/editor/lang/gl.js +0 -515
  1153. data/public/javascripts/fckeditor/editor/lang/he.js +0 -515
  1154. data/public/javascripts/fckeditor/editor/lang/hi.js +0 -515
  1155. data/public/javascripts/fckeditor/editor/lang/hr.js +0 -515
  1156. data/public/javascripts/fckeditor/editor/lang/hu.js +0 -515
  1157. data/public/javascripts/fckeditor/editor/lang/it.js +0 -515
  1158. data/public/javascripts/fckeditor/editor/lang/ja.js +0 -515
  1159. data/public/javascripts/fckeditor/editor/lang/km.js +0 -515
  1160. data/public/javascripts/fckeditor/editor/lang/ko.js +0 -515
  1161. data/public/javascripts/fckeditor/editor/lang/lt.js +0 -515
  1162. data/public/javascripts/fckeditor/editor/lang/lv.js +0 -515
  1163. data/public/javascripts/fckeditor/editor/lang/mn.js +0 -515
  1164. data/public/javascripts/fckeditor/editor/lang/ms.js +0 -515
  1165. data/public/javascripts/fckeditor/editor/lang/nb.js +0 -515
  1166. data/public/javascripts/fckeditor/editor/lang/nl.js +0 -515
  1167. data/public/javascripts/fckeditor/editor/lang/no.js +0 -515
  1168. data/public/javascripts/fckeditor/editor/lang/pl.js +0 -515
  1169. data/public/javascripts/fckeditor/editor/lang/pt-br.js +0 -515
  1170. data/public/javascripts/fckeditor/editor/lang/pt.js +0 -515
  1171. data/public/javascripts/fckeditor/editor/lang/ro.js +0 -515
  1172. data/public/javascripts/fckeditor/editor/lang/ru.js +0 -515
  1173. data/public/javascripts/fckeditor/editor/lang/sk.js +0 -515
  1174. data/public/javascripts/fckeditor/editor/lang/sl.js +0 -515
  1175. data/public/javascripts/fckeditor/editor/lang/sr-latn.js +0 -515
  1176. data/public/javascripts/fckeditor/editor/lang/sr.js +0 -515
  1177. data/public/javascripts/fckeditor/editor/lang/sv.js +0 -515
  1178. data/public/javascripts/fckeditor/editor/lang/th.js +0 -515
  1179. data/public/javascripts/fckeditor/editor/lang/tr.js +0 -515
  1180. data/public/javascripts/fckeditor/editor/lang/uk.js +0 -515
  1181. data/public/javascripts/fckeditor/editor/lang/vi.js +0 -515
  1182. data/public/javascripts/fckeditor/editor/lang/zh-cn.js +0 -515
  1183. data/public/javascripts/fckeditor/editor/lang/zh.js +0 -515
  1184. data/public/javascripts/fckeditor/editor/plugins/autogrow/fckplugin.js +0 -99
  1185. data/public/javascripts/fckeditor/editor/plugins/bbcode/_sample/sample.config.js +0 -26
  1186. data/public/javascripts/fckeditor/editor/plugins/bbcode/_sample/sample.html +0 -67
  1187. data/public/javascripts/fckeditor/editor/plugins/bbcode/fckplugin.js +0 -123
  1188. data/public/javascripts/fckeditor/editor/plugins/dragresizetable/fckplugin.js +0 -527
  1189. data/public/javascripts/fckeditor/editor/plugins/placeholder/fck_placeholder.html +0 -105
  1190. data/public/javascripts/fckeditor/editor/plugins/placeholder/fckplugin.js +0 -187
  1191. data/public/javascripts/fckeditor/editor/plugins/placeholder/lang/de.js +0 -27
  1192. data/public/javascripts/fckeditor/editor/plugins/placeholder/lang/en.js +0 -27
  1193. data/public/javascripts/fckeditor/editor/plugins/placeholder/lang/es.js +0 -27
  1194. data/public/javascripts/fckeditor/editor/plugins/placeholder/lang/fr.js +0 -27
  1195. data/public/javascripts/fckeditor/editor/plugins/placeholder/lang/it.js +0 -27
  1196. data/public/javascripts/fckeditor/editor/plugins/placeholder/lang/pl.js +0 -27
  1197. data/public/javascripts/fckeditor/editor/plugins/placeholder/placeholder.gif +0 -0
  1198. data/public/javascripts/fckeditor/editor/plugins/simplecommands/fckplugin.js +0 -29
  1199. data/public/javascripts/fckeditor/editor/plugins/tablecommands/fckplugin.js +0 -33
  1200. data/public/javascripts/fckeditor/editor/skins/_fckviewstrips.html +0 -121
  1201. data/public/javascripts/fckeditor/editor/skins/silver/fck_dialog.css +0 -402
  1202. data/public/javascripts/fckeditor/editor/skins/silver/fck_editor.css +0 -473
  1203. data/public/javascripts/fckeditor/editor/skins/silver/fck_strip.gif +0 -0
  1204. data/public/javascripts/fckeditor/editor/skins/silver/images/toolbar.arrowright.gif +0 -0
  1205. data/public/javascripts/fckeditor/editor/skins/silver/images/toolbar.buttonarrow.gif +0 -0
  1206. data/public/javascripts/fckeditor/editor/skins/silver/images/toolbar.buttonbg.gif +0 -0
  1207. data/public/javascripts/fckeditor/editor/skins/silver/images/toolbar.collapse.gif +0 -0
  1208. data/public/javascripts/fckeditor/editor/skins/silver/images/toolbar.expand.gif +0 -0
  1209. data/public/javascripts/fckeditor/editor/skins/silver/images/toolbar.separator.gif +0 -0
  1210. data/public/javascripts/fckeditor/fckconfig.js +0 -316
  1211. data/public/javascripts/fckeditor/fckeditor.js +0 -303
  1212. data/public/javascripts/fckeditor/fckeditor.py +0 -160
  1213. data/public/javascripts/fckeditor/fckpackager.xml +0 -262
  1214. data/public/javascripts/fckeditor/fckstyles.xml +0 -111
  1215. data/public/javascripts/fckeditor/fcktemplates.xml +0 -103
  1216. data/public/javascripts/fckeditor/license.txt +0 -1246
  1217. data/public/sources/javascripts/administration.js +0 -12
  1218. data/public/sources/javascripts/application.js +0 -2
  1219. data/public/sources/javascripts/codecollapse.js +0 -8
  1220. data/public/sources/javascripts/controls.js +0 -963
  1221. data/public/sources/javascripts/cookies.js +0 -60
  1222. data/public/sources/javascripts/dragdrop.js +0 -972
  1223. data/public/sources/javascripts/effects.js +0 -1120
  1224. data/public/sources/javascripts/fckcustom.js +0 -28
  1225. data/public/sources/javascripts/lang/default.js +0 -21
  1226. data/public/sources/javascripts/lang/en_US.js +0 -21
  1227. data/public/sources/javascripts/lang/fr_FR.js +0 -21
  1228. data/public/sources/javascripts/lightbox.js +0 -202
  1229. data/public/sources/javascripts/prototype.js +0 -4320
  1230. data/public/sources/javascripts/quicktags.js +0 -511
  1231. data/public/sources/javascripts/scriptaculous.js +0 -58
  1232. data/public/sources/javascripts/slider.js +0 -258
  1233. data/public/sources/javascripts/typo.js +0 -136
  1234. data/public/sources/stylesheets/administration.css +0 -955
  1235. data/public/sources/stylesheets/administration_rtl.css +0 -1026
  1236. data/public/sources/stylesheets/codecollapse.css +0 -3
  1237. data/public/sources/stylesheets/coderay.css +0 -126
  1238. data/public/sources/stylesheets/lightbox.css +0 -62
  1239. data/public/sources/stylesheets/rss.css +0 -54
  1240. data/public/sources/stylesheets/textmate/dawn.css +0 -209
  1241. data/public/sources/stylesheets/textmate/iplastic.css +0 -142
  1242. data/public/sources/stylesheets/textmate/space_cadet.css +0 -99
  1243. data/public/sources/stylesheets/textmate/textmate.css +0 -48
  1244. data/public/sources/stylesheets/textmate/twilight.css +0 -227
  1245. data/public/sources/stylesheets/user-styles.css +0 -22
  1246. data/spec/controllers/admin/article_preview_spec.rb +0 -20
  1247. data/spec/models/typo_deprecated_spec.rb +0 -18
  1248. data/vendor/actionwebservice/CHANGELOG +0 -320
  1249. data/vendor/actionwebservice/MIT-LICENSE +0 -21
  1250. data/vendor/actionwebservice/README +0 -381
  1251. data/vendor/actionwebservice/Rakefile +0 -173
  1252. data/vendor/actionwebservice/TODO +0 -32
  1253. data/vendor/actionwebservice/examples/googlesearch/README +0 -143
  1254. data/vendor/actionwebservice/examples/googlesearch/autoloading/google_search_api.rb +0 -50
  1255. data/vendor/actionwebservice/examples/googlesearch/autoloading/google_search_controller.rb +0 -57
  1256. data/vendor/actionwebservice/examples/googlesearch/delegated/google_search_service.rb +0 -108
  1257. data/vendor/actionwebservice/examples/googlesearch/delegated/search_controller.rb +0 -7
  1258. data/vendor/actionwebservice/examples/googlesearch/direct/google_search_api.rb +0 -50
  1259. data/vendor/actionwebservice/examples/googlesearch/direct/search_controller.rb +0 -58
  1260. data/vendor/actionwebservice/examples/metaWeblog/README +0 -17
  1261. data/vendor/actionwebservice/examples/metaWeblog/apis/blogger_api.rb +0 -60
  1262. data/vendor/actionwebservice/examples/metaWeblog/apis/blogger_service.rb +0 -34
  1263. data/vendor/actionwebservice/examples/metaWeblog/apis/meta_weblog_api.rb +0 -67
  1264. data/vendor/actionwebservice/examples/metaWeblog/apis/meta_weblog_service.rb +0 -48
  1265. data/vendor/actionwebservice/examples/metaWeblog/controllers/xmlrpc_controller.rb +0 -16
  1266. data/vendor/actionwebservice/generators/web_service/USAGE +0 -28
  1267. data/vendor/actionwebservice/generators/web_service/templates/api_definition.rb +0 -5
  1268. data/vendor/actionwebservice/generators/web_service/templates/controller.rb +0 -8
  1269. data/vendor/actionwebservice/generators/web_service/templates/functional_test.rb +0 -19
  1270. data/vendor/actionwebservice/generators/web_service/web_service_generator.rb +0 -29
  1271. data/vendor/actionwebservice/lib/action_web_service.rb +0 -66
  1272. data/vendor/actionwebservice/lib/action_web_service/api.rb +0 -297
  1273. data/vendor/actionwebservice/lib/action_web_service/base.rb +0 -38
  1274. data/vendor/actionwebservice/lib/action_web_service/casting.rb +0 -144
  1275. data/vendor/actionwebservice/lib/action_web_service/client.rb +0 -3
  1276. data/vendor/actionwebservice/lib/action_web_service/client/base.rb +0 -28
  1277. data/vendor/actionwebservice/lib/action_web_service/client/soap_client.rb +0 -113
  1278. data/vendor/actionwebservice/lib/action_web_service/client/xmlrpc_client.rb +0 -58
  1279. data/vendor/actionwebservice/lib/action_web_service/container.rb +0 -3
  1280. data/vendor/actionwebservice/lib/action_web_service/container/action_controller_container.rb +0 -93
  1281. data/vendor/actionwebservice/lib/action_web_service/container/delegated_container.rb +0 -86
  1282. data/vendor/actionwebservice/lib/action_web_service/container/direct_container.rb +0 -69
  1283. data/vendor/actionwebservice/lib/action_web_service/dispatcher.rb +0 -2
  1284. data/vendor/actionwebservice/lib/action_web_service/dispatcher/abstract.rb +0 -207
  1285. data/vendor/actionwebservice/lib/action_web_service/dispatcher/action_controller_dispatcher.rb +0 -379
  1286. data/vendor/actionwebservice/lib/action_web_service/invocation.rb +0 -202
  1287. data/vendor/actionwebservice/lib/action_web_service/protocol.rb +0 -4
  1288. data/vendor/actionwebservice/lib/action_web_service/protocol/abstract.rb +0 -112
  1289. data/vendor/actionwebservice/lib/action_web_service/protocol/discovery.rb +0 -37
  1290. data/vendor/actionwebservice/lib/action_web_service/protocol/soap_protocol.rb +0 -176
  1291. data/vendor/actionwebservice/lib/action_web_service/protocol/soap_protocol/marshaler.rb +0 -242
  1292. data/vendor/actionwebservice/lib/action_web_service/protocol/xmlrpc_protocol.rb +0 -122
  1293. data/vendor/actionwebservice/lib/action_web_service/scaffolding.rb +0 -281
  1294. data/vendor/actionwebservice/lib/action_web_service/struct.rb +0 -64
  1295. data/vendor/actionwebservice/lib/action_web_service/support/class_inheritable_options.rb +0 -26
  1296. data/vendor/actionwebservice/lib/action_web_service/support/signature_types.rb +0 -226
  1297. data/vendor/actionwebservice/lib/action_web_service/templates/scaffolds/layout.html.erb +0 -65
  1298. data/vendor/actionwebservice/lib/action_web_service/templates/scaffolds/methods.html.erb +0 -6
  1299. data/vendor/actionwebservice/lib/action_web_service/templates/scaffolds/parameters.html.erb +0 -29
  1300. data/vendor/actionwebservice/lib/action_web_service/templates/scaffolds/result.html.erb +0 -30
  1301. data/vendor/actionwebservice/lib/action_web_service/test_invoke.rb +0 -110
  1302. data/vendor/actionwebservice/lib/action_web_service/version.rb +0 -9
  1303. data/vendor/actionwebservice/lib/actionwebservice.rb +0 -1
  1304. data/vendor/actionwebservice/setup.rb +0 -1379
  1305. data/vendor/actionwebservice/test/abstract_client.rb +0 -183
  1306. data/vendor/actionwebservice/test/abstract_dispatcher.rb +0 -547
  1307. data/vendor/actionwebservice/test/abstract_unit.rb +0 -33
  1308. data/vendor/actionwebservice/test/api_test.rb +0 -102
  1309. data/vendor/actionwebservice/test/apis/auto_load_api.rb +0 -3
  1310. data/vendor/actionwebservice/test/apis/broken_auto_load_api.rb +0 -2
  1311. data/vendor/actionwebservice/test/base_test.rb +0 -42
  1312. data/vendor/actionwebservice/test/casting_test.rb +0 -86
  1313. data/vendor/actionwebservice/test/client_soap_test.rb +0 -155
  1314. data/vendor/actionwebservice/test/client_xmlrpc_test.rb +0 -153
  1315. data/vendor/actionwebservice/test/container_test.rb +0 -73
  1316. data/vendor/actionwebservice/test/dispatcher_action_controller_soap_test.rb +0 -137
  1317. data/vendor/actionwebservice/test/dispatcher_action_controller_xmlrpc_test.rb +0 -59
  1318. data/vendor/actionwebservice/test/fixtures/db_definitions/mysql.sql +0 -8
  1319. data/vendor/actionwebservice/test/fixtures/users.yml +0 -12
  1320. data/vendor/actionwebservice/test/gencov +0 -3
  1321. data/vendor/actionwebservice/test/invocation_test.rb +0 -185
  1322. data/vendor/actionwebservice/test/run +0 -6
  1323. data/vendor/actionwebservice/test/scaffolded_controller_test.rb +0 -146
  1324. data/vendor/actionwebservice/test/struct_test.rb +0 -52
  1325. data/vendor/actionwebservice/test/test_invoke_test.rb +0 -112
  1326. data/vendor/bluecloth/CHANGES +0 -366
  1327. data/vendor/bluecloth/LICENSE +0 -340
  1328. data/vendor/bluecloth/README +0 -99
  1329. data/vendor/bluecloth/bin/bluecloth +0 -83
  1330. data/vendor/bluecloth/install.rb +0 -150
  1331. data/vendor/bluecloth/lib/bluecloth.rb +0 -1144
  1332. data/vendor/bluecloth/test.rb +0 -117
  1333. data/vendor/bluecloth/tests/00_Class.tests.rb +0 -71
  1334. data/vendor/bluecloth/tests/05_Markdown.tests.rb +0 -1527
  1335. data/vendor/bluecloth/tests/10_Bug.tests.rb +0 -57
  1336. data/vendor/bluecloth/tests/15_Contrib.tests.rb +0 -132
  1337. data/vendor/bluecloth/tests/bctestcase.rb +0 -274
  1338. data/vendor/bluecloth/tests/data/antsugar.txt +0 -34
  1339. data/vendor/bluecloth/tests/data/ml-announce.txt +0 -17
  1340. data/vendor/bluecloth/tests/data/re-overflow.txt +0 -67
  1341. data/vendor/bluecloth/tests/data/re-overflow2.txt +0 -281
  1342. data/vendor/bluecloth/utils.rb +0 -553
  1343. data/vendor/cached_model/History.txt +0 -30
  1344. data/vendor/cached_model/LICENSE.txt +0 -30
  1345. data/vendor/cached_model/Manifest.txt +0 -7
  1346. data/vendor/cached_model/README.txt +0 -96
  1347. data/vendor/cached_model/Rakefile +0 -25
  1348. data/vendor/cached_model/lib/cached_model.rb +0 -287
  1349. data/vendor/cached_model/test/test_cached_model.rb +0 -593
  1350. data/vendor/gems/calendar_date_select-1.15/.specification +0 -56
  1351. data/vendor/gems/calendar_date_select-1.15/History.txt +0 -237
  1352. data/vendor/gems/calendar_date_select-1.15/MIT-LICENSE +0 -20
  1353. data/vendor/gems/calendar_date_select-1.15/Manifest.txt +0 -42
  1354. data/vendor/gems/calendar_date_select-1.15/Rakefile +0 -31
  1355. data/vendor/gems/calendar_date_select-1.15/Readme.txt +0 -16
  1356. data/vendor/gems/calendar_date_select-1.15/init.rb +0 -1
  1357. data/vendor/gems/calendar_date_select-1.15/js_test/functional/cds_test.html +0 -334
  1358. data/vendor/gems/calendar_date_select-1.15/js_test/prototype.js +0 -4184
  1359. data/vendor/gems/calendar_date_select-1.15/js_test/test.css +0 -40
  1360. data/vendor/gems/calendar_date_select-1.15/js_test/unit/cds_helper_methods.html +0 -46
  1361. data/vendor/gems/calendar_date_select-1.15/js_test/unittest.js +0 -564
  1362. data/vendor/gems/calendar_date_select-1.15/lib/calendar_date_select.rb +0 -33
  1363. data/vendor/gems/calendar_date_select-1.15/lib/calendar_date_select/calendar_date_select.rb +0 -116
  1364. data/vendor/gems/calendar_date_select-1.15/lib/calendar_date_select/form_helpers.rb +0 -225
  1365. data/vendor/gems/calendar_date_select-1.15/lib/calendar_date_select/includes_helper.rb +0 -29
  1366. data/vendor/gems/calendar_date_select-1.15/public/blank_iframe.html +0 -2
  1367. data/vendor/gems/calendar_date_select-1.15/public/images/calendar_date_select/calendar.gif +0 -0
  1368. data/vendor/gems/calendar_date_select-1.15/public/javascripts/calendar_date_select/calendar_date_select.js +0 -443
  1369. data/vendor/gems/calendar_date_select-1.15/public/javascripts/calendar_date_select/format_american.js +0 -34
  1370. data/vendor/gems/calendar_date_select-1.15/public/javascripts/calendar_date_select/format_db.js +0 -27
  1371. data/vendor/gems/calendar_date_select-1.15/public/javascripts/calendar_date_select/format_euro_24hr.js +0 -7
  1372. data/vendor/gems/calendar_date_select-1.15/public/javascripts/calendar_date_select/format_euro_24hr_ymd.js +0 -7
  1373. data/vendor/gems/calendar_date_select-1.15/public/javascripts/calendar_date_select/format_finnish.js +0 -32
  1374. data/vendor/gems/calendar_date_select-1.15/public/javascripts/calendar_date_select/format_hyphen_ampm.js +0 -37
  1375. data/vendor/gems/calendar_date_select-1.15/public/javascripts/calendar_date_select/format_iso_date.js +0 -46
  1376. data/vendor/gems/calendar_date_select-1.15/public/javascripts/calendar_date_select/format_italian.js +0 -24
  1377. data/vendor/gems/calendar_date_select-1.15/public/javascripts/calendar_date_select/locale/de.js +0 -11
  1378. data/vendor/gems/calendar_date_select-1.15/public/javascripts/calendar_date_select/locale/fi.js +0 -10
  1379. data/vendor/gems/calendar_date_select-1.15/public/javascripts/calendar_date_select/locale/fr.js +0 -10
  1380. data/vendor/gems/calendar_date_select-1.15/public/javascripts/calendar_date_select/locale/pl.js +0 -10
  1381. data/vendor/gems/calendar_date_select-1.15/public/javascripts/calendar_date_select/locale/pt.js +0 -11
  1382. data/vendor/gems/calendar_date_select-1.15/public/javascripts/calendar_date_select/locale/ru.js +0 -10
  1383. data/vendor/gems/calendar_date_select-1.15/public/stylesheets/calendar_date_select/blue.css +0 -130
  1384. data/vendor/gems/calendar_date_select-1.15/public/stylesheets/calendar_date_select/default.css +0 -135
  1385. data/vendor/gems/calendar_date_select-1.15/public/stylesheets/calendar_date_select/plain.css +0 -128
  1386. data/vendor/gems/calendar_date_select-1.15/public/stylesheets/calendar_date_select/red.css +0 -135
  1387. data/vendor/gems/calendar_date_select-1.15/public/stylesheets/calendar_date_select/silver.css +0 -133
  1388. data/vendor/gems/calendar_date_select-1.15/spec/calendar_date_select/calendar_date_select_spec.rb +0 -14
  1389. data/vendor/gems/calendar_date_select-1.15/spec/calendar_date_select/form_helpers_spec.rb +0 -166
  1390. data/vendor/gems/calendar_date_select-1.15/spec/spec_helper.rb +0 -26
  1391. data/vendor/gems/coderay-0.8.260/.specification +0 -115
  1392. data/vendor/gems/coderay-0.8.260/FOLDERS +0 -53
  1393. data/vendor/gems/coderay-0.8.260/LICENSE +0 -504
  1394. data/vendor/gems/coderay-0.8.260/README +0 -128
  1395. data/vendor/gems/coderay-0.8.260/bin/coderay +0 -82
  1396. data/vendor/gems/coderay-0.8.260/bin/coderay_stylesheet +0 -4
  1397. data/vendor/gems/coderay-0.8.260/lib/coderay.rb +0 -321
  1398. data/vendor/gems/coderay-0.8.260/lib/coderay/duo.rb +0 -87
  1399. data/vendor/gems/coderay-0.8.260/lib/coderay/encoder.rb +0 -182
  1400. data/vendor/gems/coderay-0.8.260/lib/coderay/encoders/_map.rb +0 -9
  1401. data/vendor/gems/coderay-0.8.260/lib/coderay/encoders/count.rb +0 -21
  1402. data/vendor/gems/coderay-0.8.260/lib/coderay/encoders/debug.rb +0 -49
  1403. data/vendor/gems/coderay-0.8.260/lib/coderay/encoders/div.rb +0 -20
  1404. data/vendor/gems/coderay-0.8.260/lib/coderay/encoders/html.rb +0 -287
  1405. data/vendor/gems/coderay-0.8.260/lib/coderay/encoders/html/css.rb +0 -70
  1406. data/vendor/gems/coderay-0.8.260/lib/coderay/encoders/html/numerization.rb +0 -124
  1407. data/vendor/gems/coderay-0.8.260/lib/coderay/encoders/html/output.rb +0 -197
  1408. data/vendor/gems/coderay-0.8.260/lib/coderay/encoders/null.rb +0 -26
  1409. data/vendor/gems/coderay-0.8.260/lib/coderay/encoders/page.rb +0 -21
  1410. data/vendor/gems/coderay-0.8.260/lib/coderay/encoders/span.rb +0 -20
  1411. data/vendor/gems/coderay-0.8.260/lib/coderay/encoders/statistic.rb +0 -77
  1412. data/vendor/gems/coderay-0.8.260/lib/coderay/encoders/text.rb +0 -32
  1413. data/vendor/gems/coderay-0.8.260/lib/coderay/encoders/tokens.rb +0 -44
  1414. data/vendor/gems/coderay-0.8.260/lib/coderay/encoders/xml.rb +0 -70
  1415. data/vendor/gems/coderay-0.8.260/lib/coderay/encoders/yaml.rb +0 -22
  1416. data/vendor/gems/coderay-0.8.260/lib/coderay/for_redcloth.rb +0 -72
  1417. data/vendor/gems/coderay-0.8.260/lib/coderay/helpers/file_type.rb +0 -211
  1418. data/vendor/gems/coderay-0.8.260/lib/coderay/helpers/gzip_simple.rb +0 -123
  1419. data/vendor/gems/coderay-0.8.260/lib/coderay/helpers/plugin.rb +0 -333
  1420. data/vendor/gems/coderay-0.8.260/lib/coderay/helpers/word_list.rb +0 -123
  1421. data/vendor/gems/coderay-0.8.260/lib/coderay/scanner.rb +0 -255
  1422. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/_map.rb +0 -15
  1423. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/c.rb +0 -165
  1424. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/css.rb +0 -181
  1425. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/debug.rb +0 -61
  1426. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/delphi.rb +0 -150
  1427. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/diff.rb +0 -104
  1428. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/html.rb +0 -177
  1429. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/java.rb +0 -179
  1430. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/java/builtin_types.rb +0 -419
  1431. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/java_script.rb +0 -187
  1432. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/json.rb +0 -106
  1433. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/nitro_xhtml.rb +0 -134
  1434. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/plaintext.rb +0 -18
  1435. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/rhtml.rb +0 -73
  1436. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/ruby.rb +0 -381
  1437. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/ruby/patterns.rb +0 -226
  1438. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/scheme.rb +0 -142
  1439. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/sql.Keith.rb +0 -143
  1440. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/sql.rb +0 -154
  1441. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/xml.rb +0 -19
  1442. data/vendor/gems/coderay-0.8.260/lib/coderay/style.rb +0 -20
  1443. data/vendor/gems/coderay-0.8.260/lib/coderay/styles/_map.rb +0 -7
  1444. data/vendor/gems/coderay-0.8.260/lib/coderay/styles/cycnus.rb +0 -146
  1445. data/vendor/gems/coderay-0.8.260/lib/coderay/styles/murphy.rb +0 -132
  1446. data/vendor/gems/coderay-0.8.260/lib/coderay/token_classes.rb +0 -82
  1447. data/vendor/gems/coderay-0.8.260/lib/coderay/tokens.rb +0 -387
  1448. data/vendor/gems/coderay-0.8.260/lib/term/ansicolor.rb +0 -220
  1449. data/vendor/gems/htmlentities-4.0.0/.specification +0 -68
  1450. data/vendor/gems/htmlentities-4.0.0/COPYING.txt +0 -21
  1451. data/vendor/gems/htmlentities-4.0.0/History.txt +0 -47
  1452. data/vendor/gems/htmlentities-4.0.0/README.txt +0 -44
  1453. data/vendor/gems/htmlentities-4.0.0/lib/htmlentities.rb +0 -165
  1454. data/vendor/gems/htmlentities-4.0.0/lib/htmlentities/html4.rb +0 -257
  1455. data/vendor/gems/htmlentities-4.0.0/lib/htmlentities/legacy.rb +0 -27
  1456. data/vendor/gems/htmlentities-4.0.0/lib/htmlentities/string.rb +0 -26
  1457. data/vendor/gems/htmlentities-4.0.0/lib/htmlentities/xhtml1.rb +0 -258
  1458. data/vendor/gems/htmlentities-4.0.0/test/entities_test.rb +0 -206
  1459. data/vendor/gems/htmlentities-4.0.0/test/html4_test.rb +0 -24
  1460. data/vendor/gems/htmlentities-4.0.0/test/legacy_test.rb +0 -34
  1461. data/vendor/gems/htmlentities-4.0.0/test/roundtrip_test.rb +0 -94
  1462. data/vendor/gems/htmlentities-4.0.0/test/string_test.rb +0 -24
  1463. data/vendor/gems/htmlentities-4.0.0/test/test_all.rb +0 -3
  1464. data/vendor/gems/htmlentities-4.0.0/test/xhtml1_test.rb +0 -23
  1465. data/vendor/gems/json-1.1.3/.require_paths +0 -4
  1466. data/vendor/gems/json-1.1.3/.specification +0 -58
  1467. data/vendor/gems/json-1.1.3/CHANGES +0 -93
  1468. data/vendor/gems/json-1.1.3/GPL +0 -340
  1469. data/vendor/gems/json-1.1.3/README +0 -78
  1470. data/vendor/gems/json-1.1.3/RUBY +0 -58
  1471. data/vendor/gems/json-1.1.3/Rakefile +0 -309
  1472. data/vendor/gems/json-1.1.3/TODO +0 -1
  1473. data/vendor/gems/json-1.1.3/VERSION +0 -1
  1474. data/vendor/gems/json-1.1.3/benchmarks/benchmark.txt +0 -133
  1475. data/vendor/gems/json-1.1.3/benchmarks/benchmark_generator.rb +0 -48
  1476. data/vendor/gems/json-1.1.3/benchmarks/benchmark_parser.rb +0 -26
  1477. data/vendor/gems/json-1.1.3/benchmarks/benchmark_rails.rb +0 -26
  1478. data/vendor/gems/json-1.1.3/bin/edit_json.rb +0 -10
  1479. data/vendor/gems/json-1.1.3/bin/prettify_json.rb +0 -76
  1480. data/vendor/gems/json-1.1.3/data/example.json +0 -1
  1481. data/vendor/gems/json-1.1.3/data/index.html +0 -38
  1482. data/vendor/gems/json-1.1.3/data/prototype.js +0 -4184
  1483. data/vendor/gems/json-1.1.3/ext/json/ext/generator.bundle +0 -0
  1484. data/vendor/gems/json-1.1.3/ext/json/ext/generator/Makefile +0 -149
  1485. data/vendor/gems/json-1.1.3/ext/json/ext/generator/extconf.rb +0 -9
  1486. data/vendor/gems/json-1.1.3/ext/json/ext/generator/generator.bundle +0 -0
  1487. data/vendor/gems/json-1.1.3/ext/json/ext/generator/generator.c +0 -875
  1488. data/vendor/gems/json-1.1.3/ext/json/ext/generator/generator.o +0 -0
  1489. data/vendor/gems/json-1.1.3/ext/json/ext/generator/unicode.c +0 -182
  1490. data/vendor/gems/json-1.1.3/ext/json/ext/generator/unicode.h +0 -53
  1491. data/vendor/gems/json-1.1.3/ext/json/ext/generator/unicode.o +0 -0
  1492. data/vendor/gems/json-1.1.3/ext/json/ext/parser.bundle +0 -0
  1493. data/vendor/gems/json-1.1.3/ext/json/ext/parser/Makefile +0 -149
  1494. data/vendor/gems/json-1.1.3/ext/json/ext/parser/extconf.rb +0 -9
  1495. data/vendor/gems/json-1.1.3/ext/json/ext/parser/parser.bundle +0 -0
  1496. data/vendor/gems/json-1.1.3/ext/json/ext/parser/parser.c +0 -1758
  1497. data/vendor/gems/json-1.1.3/ext/json/ext/parser/parser.o +0 -0
  1498. data/vendor/gems/json-1.1.3/ext/json/ext/parser/parser.rl +0 -638
  1499. data/vendor/gems/json-1.1.3/ext/json/ext/parser/unicode.c +0 -154
  1500. data/vendor/gems/json-1.1.3/ext/json/ext/parser/unicode.h +0 -58
  1501. data/vendor/gems/json-1.1.3/ext/json/ext/parser/unicode.o +0 -0
  1502. data/vendor/gems/json-1.1.3/install.rb +0 -26
  1503. data/vendor/gems/json-1.1.3/lib/json.rb +0 -235
  1504. data/vendor/gems/json-1.1.3/lib/json/Array.xpm +0 -21
  1505. data/vendor/gems/json-1.1.3/lib/json/FalseClass.xpm +0 -21
  1506. data/vendor/gems/json-1.1.3/lib/json/Hash.xpm +0 -21
  1507. data/vendor/gems/json-1.1.3/lib/json/Key.xpm +0 -73
  1508. data/vendor/gems/json-1.1.3/lib/json/NilClass.xpm +0 -21
  1509. data/vendor/gems/json-1.1.3/lib/json/Numeric.xpm +0 -28
  1510. data/vendor/gems/json-1.1.3/lib/json/String.xpm +0 -96
  1511. data/vendor/gems/json-1.1.3/lib/json/TrueClass.xpm +0 -21
  1512. data/vendor/gems/json-1.1.3/lib/json/add/core.rb +0 -135
  1513. data/vendor/gems/json-1.1.3/lib/json/add/rails.rb +0 -58
  1514. data/vendor/gems/json-1.1.3/lib/json/common.rb +0 -354
  1515. data/vendor/gems/json-1.1.3/lib/json/editor.rb +0 -1362
  1516. data/vendor/gems/json-1.1.3/lib/json/ext.rb +0 -13
  1517. data/vendor/gems/json-1.1.3/lib/json/json.xpm +0 -1499
  1518. data/vendor/gems/json-1.1.3/lib/json/pure.rb +0 -75
  1519. data/vendor/gems/json-1.1.3/lib/json/pure/generator.rb +0 -394
  1520. data/vendor/gems/json-1.1.3/lib/json/pure/parser.rb +0 -259
  1521. data/vendor/gems/json-1.1.3/lib/json/version.rb +0 -9
  1522. data/vendor/gems/json-1.1.3/tests/fixtures/fail1.json +0 -1
  1523. data/vendor/gems/json-1.1.3/tests/fixtures/fail10.json +0 -1
  1524. data/vendor/gems/json-1.1.3/tests/fixtures/fail11.json +0 -1
  1525. data/vendor/gems/json-1.1.3/tests/fixtures/fail12.json +0 -1
  1526. data/vendor/gems/json-1.1.3/tests/fixtures/fail13.json +0 -1
  1527. data/vendor/gems/json-1.1.3/tests/fixtures/fail14.json +0 -1
  1528. data/vendor/gems/json-1.1.3/tests/fixtures/fail18.json +0 -1
  1529. data/vendor/gems/json-1.1.3/tests/fixtures/fail19.json +0 -1
  1530. data/vendor/gems/json-1.1.3/tests/fixtures/fail2.json +0 -1
  1531. data/vendor/gems/json-1.1.3/tests/fixtures/fail20.json +0 -1
  1532. data/vendor/gems/json-1.1.3/tests/fixtures/fail21.json +0 -1
  1533. data/vendor/gems/json-1.1.3/tests/fixtures/fail22.json +0 -1
  1534. data/vendor/gems/json-1.1.3/tests/fixtures/fail23.json +0 -1
  1535. data/vendor/gems/json-1.1.3/tests/fixtures/fail24.json +0 -1
  1536. data/vendor/gems/json-1.1.3/tests/fixtures/fail25.json +0 -1
  1537. data/vendor/gems/json-1.1.3/tests/fixtures/fail27.json +0 -2
  1538. data/vendor/gems/json-1.1.3/tests/fixtures/fail28.json +0 -2
  1539. data/vendor/gems/json-1.1.3/tests/fixtures/fail3.json +0 -1
  1540. data/vendor/gems/json-1.1.3/tests/fixtures/fail4.json +0 -1
  1541. data/vendor/gems/json-1.1.3/tests/fixtures/fail5.json +0 -1
  1542. data/vendor/gems/json-1.1.3/tests/fixtures/fail6.json +0 -1
  1543. data/vendor/gems/json-1.1.3/tests/fixtures/fail7.json +0 -1
  1544. data/vendor/gems/json-1.1.3/tests/fixtures/fail8.json +0 -1
  1545. data/vendor/gems/json-1.1.3/tests/fixtures/fail9.json +0 -1
  1546. data/vendor/gems/json-1.1.3/tests/fixtures/pass1.json +0 -56
  1547. data/vendor/gems/json-1.1.3/tests/fixtures/pass15.json +0 -1
  1548. data/vendor/gems/json-1.1.3/tests/fixtures/pass16.json +0 -1
  1549. data/vendor/gems/json-1.1.3/tests/fixtures/pass17.json +0 -1
  1550. data/vendor/gems/json-1.1.3/tests/fixtures/pass2.json +0 -1
  1551. data/vendor/gems/json-1.1.3/tests/fixtures/pass26.json +0 -1
  1552. data/vendor/gems/json-1.1.3/tests/fixtures/pass3.json +0 -6
  1553. data/vendor/gems/json-1.1.3/tests/runner.rb +0 -25
  1554. data/vendor/gems/json-1.1.3/tests/test_json.rb +0 -293
  1555. data/vendor/gems/json-1.1.3/tests/test_json_addition.rb +0 -161
  1556. data/vendor/gems/json-1.1.3/tests/test_json_fixtures.rb +0 -30
  1557. data/vendor/gems/json-1.1.3/tests/test_json_generate.rb +0 -100
  1558. data/vendor/gems/json-1.1.3/tests/test_json_rails.rb +0 -118
  1559. data/vendor/gems/json-1.1.3/tests/test_json_unicode.rb +0 -61
  1560. data/vendor/gems/json-1.1.3/tools/fuzz.rb +0 -140
  1561. data/vendor/gems/json-1.1.3/tools/server.rb +0 -62
  1562. data/vendor/memcache-client/History.txt +0 -25
  1563. data/vendor/memcache-client/LICENSE.txt +0 -30
  1564. data/vendor/memcache-client/Manifest.txt +0 -8
  1565. data/vendor/memcache-client/README.txt +0 -46
  1566. data/vendor/memcache-client/Rakefile +0 -23
  1567. data/vendor/memcache-client/lib/memcache.rb +0 -490
  1568. data/vendor/memcache-client/lib/memcache_util.rb +0 -71
  1569. data/vendor/memcache-client/test/test_mem_cache.rb +0 -284
  1570. data/vendor/plugins/datestamped_resources/README +0 -4
  1571. data/vendor/plugins/datestamped_resources/Rakefile +0 -22
  1572. data/vendor/plugins/datestamped_resources/init.rb +0 -2
  1573. data/vendor/plugins/datestamped_resources/install.rb +0 -1
  1574. data/vendor/plugins/datestamped_resources/lib/datestamped_resources.rb +0 -203
  1575. data/vendor/plugins/datestamped_resources/tasks/datestamped_resources_tasks.rake +0 -4
  1576. data/vendor/plugins/datestamped_resources/test/datestamped_resources_test.rb +0 -8
  1577. data/vendor/plugins/datestamped_resources/uninstall.rb +0 -1
  1578. data/vendor/plugins/fckeditor/CHANGELOG +0 -3
  1579. data/vendor/plugins/fckeditor/README +0 -118
  1580. data/vendor/plugins/fckeditor/app/controllers/fckeditor_controller.rb +0 -159
  1581. data/vendor/plugins/fckeditor/app/helpers/fckeditor_helper.rb +0 -2
  1582. data/vendor/plugins/fckeditor/app/views/fckeditor/spell_check.rhtml +0 -52
  1583. data/vendor/plugins/fckeditor/init.rb +0 -35
  1584. data/vendor/plugins/fckeditor/install.rb +0 -12
  1585. data/vendor/plugins/fckeditor/lib/fckeditor.rb +0 -101
  1586. data/vendor/plugins/fckeditor/lib/fckeditor_file_utils.rb +0 -81
  1587. data/vendor/plugins/fckeditor/lib/fckeditor_spell_check.rb +0 -43
  1588. data/vendor/plugins/fckeditor/lib/fckeditor_version.rb +0 -9
  1589. data/vendor/plugins/fckeditor/tasks/fckeditor_tasks.rake +0 -97
  1590. data/vendor/plugins/fckeditor/test/fckeditor_test.rb +0 -8
  1591. data/vendor/plugins/will_paginate/CHANGELOG.rdoc +0 -110
  1592. data/vendor/plugins/will_paginate/LICENSE +0 -18
  1593. data/vendor/plugins/will_paginate/README.rdoc +0 -107
  1594. data/vendor/plugins/will_paginate/Rakefile +0 -62
  1595. data/vendor/plugins/will_paginate/examples/apple-circle.gif +0 -0
  1596. data/vendor/plugins/will_paginate/examples/index.haml +0 -69
  1597. data/vendor/plugins/will_paginate/examples/index.html +0 -92
  1598. data/vendor/plugins/will_paginate/examples/pagination.css +0 -90
  1599. data/vendor/plugins/will_paginate/examples/pagination.sass +0 -91
  1600. data/vendor/plugins/will_paginate/init.rb +0 -1
  1601. data/vendor/plugins/will_paginate/lib/will_paginate.rb +0 -82
  1602. data/vendor/plugins/will_paginate/lib/will_paginate/array.rb +0 -16
  1603. data/vendor/plugins/will_paginate/lib/will_paginate/collection.rb +0 -146
  1604. data/vendor/plugins/will_paginate/lib/will_paginate/core_ext.rb +0 -32
  1605. data/vendor/plugins/will_paginate/lib/will_paginate/finder.rb +0 -260
  1606. data/vendor/plugins/will_paginate/lib/will_paginate/named_scope.rb +0 -170
  1607. data/vendor/plugins/will_paginate/lib/will_paginate/named_scope_patch.rb +0 -37
  1608. data/vendor/plugins/will_paginate/lib/will_paginate/version.rb +0 -9
  1609. data/vendor/plugins/will_paginate/lib/will_paginate/view_helpers.rb +0 -383
  1610. data/vendor/plugins/will_paginate/test/boot.rb +0 -21
  1611. data/vendor/plugins/will_paginate/test/collection_test.rb +0 -143
  1612. data/vendor/plugins/will_paginate/test/console +0 -8
  1613. data/vendor/plugins/will_paginate/test/database.yml +0 -22
  1614. data/vendor/plugins/will_paginate/test/finder_test.rb +0 -476
  1615. data/vendor/plugins/will_paginate/test/fixtures/admin.rb +0 -3
  1616. data/vendor/plugins/will_paginate/test/fixtures/developer.rb +0 -14
  1617. data/vendor/plugins/will_paginate/test/fixtures/developers_projects.yml +0 -13
  1618. data/vendor/plugins/will_paginate/test/fixtures/project.rb +0 -15
  1619. data/vendor/plugins/will_paginate/test/fixtures/projects.yml +0 -6
  1620. data/vendor/plugins/will_paginate/test/fixtures/replies.yml +0 -29
  1621. data/vendor/plugins/will_paginate/test/fixtures/reply.rb +0 -7
  1622. data/vendor/plugins/will_paginate/test/fixtures/schema.rb +0 -38
  1623. data/vendor/plugins/will_paginate/test/fixtures/topic.rb +0 -10
  1624. data/vendor/plugins/will_paginate/test/fixtures/topics.yml +0 -30
  1625. data/vendor/plugins/will_paginate/test/fixtures/user.rb +0 -2
  1626. data/vendor/plugins/will_paginate/test/fixtures/users.yml +0 -35
  1627. data/vendor/plugins/will_paginate/test/helper.rb +0 -37
  1628. data/vendor/plugins/will_paginate/test/lib/activerecord_test_case.rb +0 -36
  1629. data/vendor/plugins/will_paginate/test/lib/activerecord_test_connector.rb +0 -73
  1630. data/vendor/plugins/will_paginate/test/lib/load_fixtures.rb +0 -11
  1631. data/vendor/plugins/will_paginate/test/lib/view_test_process.rb +0 -165
  1632. data/vendor/plugins/will_paginate/test/tasks.rake +0 -59
  1633. data/vendor/plugins/will_paginate/test/view_test.rb +0 -363
  1634. data/vendor/plugins/will_paginate/will_paginate.gemspec +0 -22
  1635. data/vendor/redcloth/RedCloth.gemspec +0 -52
  1636. data/vendor/redcloth/bin/redcloth +0 -3
  1637. data/vendor/redcloth/doc/CHANGELOG +0 -160
  1638. data/vendor/redcloth/doc/COPYING +0 -25
  1639. data/vendor/redcloth/doc/README +0 -106
  1640. data/vendor/redcloth/doc/REFERENCE +0 -216
  1641. data/vendor/redcloth/doc/make.rb +0 -359
  1642. data/vendor/redcloth/install.rb +0 -1032
  1643. data/vendor/redcloth/lib/redcloth.rb +0 -1130
  1644. data/vendor/redcloth/run-tests.rb +0 -28
  1645. data/vendor/redcloth/setup.rb +0 -1376
  1646. data/vendor/redcloth/tests/code.yml +0 -105
  1647. data/vendor/redcloth/tests/hard_breaks.yml +0 -26
  1648. data/vendor/redcloth/tests/images.yml +0 -171
  1649. data/vendor/redcloth/tests/instiki.yml +0 -39
  1650. data/vendor/redcloth/tests/links.yml +0 -155
  1651. data/vendor/redcloth/tests/lists.yml +0 -77
  1652. data/vendor/redcloth/tests/markdown.yml +0 -218
  1653. data/vendor/redcloth/tests/poignant.yml +0 -64
  1654. data/vendor/redcloth/tests/table.yml +0 -198
  1655. data/vendor/redcloth/tests/textism.yml +0 -406
  1656. data/vendor/sparklines/README.txt +0 -47
  1657. data/vendor/sparklines/USAGE +0 -14
  1658. data/vendor/sparklines/lib/sparklines.rb +0 -435
  1659. data/vendor/sparklines/samples/sparklinestest.rb +0 -26
  1660. data/vendor/sparklines/sparklines_generator.rb +0 -9
  1661. data/vendor/sparklines/templates/sparklines_controller.rb +0 -30
  1662. data/vendor/sparklines/templates/sparklines_helper.rb +0 -30
@@ -1,58 +0,0 @@
1
- # This file contains implementations of rails custom objects for
2
- # serialisation/deserialisation.
3
-
4
- unless Object.const_defined?(:JSON) and ::JSON.const_defined?(:JSON_LOADED) and
5
- ::JSON::JSON_LOADED
6
- require 'json'
7
- end
8
-
9
- class Object
10
- def self.json_create(object)
11
- obj = new
12
- for key, value in object
13
- next if key == 'json_class'
14
- instance_variable_set "@#{key}", value
15
- end
16
- obj
17
- end
18
-
19
- def to_json(*a)
20
- result = {
21
- 'json_class' => self.class.name
22
- }
23
- instance_variables.inject(result) do |r, name|
24
- r[name[1..-1]] = instance_variable_get name
25
- r
26
- end
27
- result.to_json(*a)
28
- end
29
- end
30
-
31
- class Symbol
32
- def to_json(*a)
33
- to_s.to_json(*a)
34
- end
35
- end
36
-
37
- module Enumerable
38
- def to_json(*a)
39
- to_a.to_json(*a)
40
- end
41
- end
42
-
43
- # class Regexp
44
- # def to_json(*)
45
- # inspect
46
- # end
47
- # end
48
- #
49
- # The above rails definition has some problems:
50
- #
51
- # 1. { 'foo' => /bar/ }.to_json # => "{foo: /bar/}"
52
- # This isn't valid JSON, because the regular expression syntax is not
53
- # defined in RFC 4627. (And unquoted strings are disallowed there, too.)
54
- # Though it is valid Javascript.
55
- #
56
- # 2. { 'foo' => /bar/mix }.to_json # => "{foo: /bar/mix}"
57
- # This isn't even valid Javascript.
58
-
@@ -1,354 +0,0 @@
1
- require 'json/version'
2
-
3
- module JSON
4
- class << self
5
- # If _object_ is string-like parse the string and return the parsed result
6
- # as a Ruby data structure. Otherwise generate a JSON text from the Ruby
7
- # data structure object and return it.
8
- #
9
- # The _opts_ argument is passed through to generate/parse respectively, see
10
- # generate and parse for their documentation.
11
- def [](object, opts = {})
12
- if object.respond_to? :to_str
13
- JSON.parse(object.to_str, opts => {})
14
- else
15
- JSON.generate(object, opts => {})
16
- end
17
- end
18
-
19
- # Returns the JSON parser class, that is used by JSON. This might be either
20
- # JSON::Ext::Parser or JSON::Pure::Parser.
21
- attr_reader :parser
22
-
23
- # Set the JSON parser class _parser_ to be used by JSON.
24
- def parser=(parser) # :nodoc:
25
- @parser = parser
26
- remove_const :Parser if const_defined? :Parser
27
- const_set :Parser, parser
28
- end
29
-
30
- # Return the constant located at _path_. The format of _path_ has to be
31
- # either ::A::B::C or A::B::C. In any case A has to be located at the top
32
- # level (absolute namespace path?). If there doesn't exist a constant at
33
- # the given path, an ArgumentError is raised.
34
- def deep_const_get(path) # :nodoc:
35
- path = path.to_s
36
- path.split(/::/).inject(Object) do |p, c|
37
- case
38
- when c.empty? then p
39
- when p.const_defined?(c) then p.const_get(c)
40
- else raise ArgumentError, "can't find const #{path}"
41
- end
42
- end
43
- end
44
-
45
- # Set the module _generator_ to be used by JSON.
46
- def generator=(generator) # :nodoc:
47
- @generator = generator
48
- generator_methods = generator::GeneratorMethods
49
- for const in generator_methods.constants
50
- klass = deep_const_get(const)
51
- modul = generator_methods.const_get(const)
52
- klass.class_eval do
53
- instance_methods(false).each do |m|
54
- m.to_s == 'to_json' and remove_method m
55
- end
56
- include modul
57
- end
58
- end
59
- self.state = generator::State
60
- const_set :State, self.state
61
- end
62
-
63
- # Returns the JSON generator modul, that is used by JSON. This might be
64
- # either JSON::Ext::Generator or JSON::Pure::Generator.
65
- attr_reader :generator
66
-
67
- # Returns the JSON generator state class, that is used by JSON. This might
68
- # be either JSON::Ext::Generator::State or JSON::Pure::Generator::State.
69
- attr_accessor :state
70
-
71
- # This is create identifier, that is used to decide, if the _json_create_
72
- # hook of a class should be called. It defaults to 'json_class'.
73
- attr_accessor :create_id
74
- end
75
- self.create_id = 'json_class'
76
-
77
- NaN = (-1.0) ** 0.5
78
-
79
- Infinity = 1.0/0
80
-
81
- MinusInfinity = -Infinity
82
-
83
- # The base exception for JSON errors.
84
- class JSONError < StandardError; end
85
-
86
- # This exception is raised, if a parser error occurs.
87
- class ParserError < JSONError; end
88
-
89
- # This exception is raised, if the nesting of parsed datastructures is too
90
- # deep.
91
- class NestingError < ParserError; end
92
-
93
- # This exception is raised, if a generator or unparser error occurs.
94
- class GeneratorError < JSONError; end
95
- # For backwards compatibility
96
- UnparserError = GeneratorError
97
-
98
- # If a circular data structure is encountered while unparsing
99
- # this exception is raised.
100
- class CircularDatastructure < GeneratorError; end
101
-
102
- # This exception is raised, if the required unicode support is missing on the
103
- # system. Usually this means, that the iconv library is not installed.
104
- class MissingUnicodeSupport < JSONError; end
105
-
106
- module_function
107
-
108
- # Parse the JSON string _source_ into a Ruby data structure and return it.
109
- #
110
- # _opts_ can have the following
111
- # keys:
112
- # * *max_nesting*: The maximum depth of nesting allowed in the parsed data
113
- # structures. Disable depth checking with :max_nesting => false, it defaults
114
- # to 19.
115
- # * *allow_nan*: If set to true, allow NaN, Infinity and -Infinity in
116
- # defiance of RFC 4627 to be parsed by the Parser. This option defaults
117
- # to false.
118
- # * *create_additions*: If set to false, the Parser doesn't create
119
- # additions even if a matchin class and create_id was found. This option
120
- # defaults to true.
121
- def parse(source, opts = {})
122
- JSON.parser.new(source, opts).parse
123
- end
124
-
125
- # Parse the JSON string _source_ into a Ruby data structure and return it.
126
- # The bang version of the parse method, defaults to the more dangerous values
127
- # for the _opts_ hash, so be sure only to parse trusted _source_ strings.
128
- #
129
- # _opts_ can have the following keys:
130
- # * *max_nesting*: The maximum depth of nesting allowed in the parsed data
131
- # structures. Enable depth checking with :max_nesting => anInteger. The parse!
132
- # methods defaults to not doing max depth checking: This can be dangerous,
133
- # if someone wants to fill up your stack.
134
- # * *allow_nan*: If set to true, allow NaN, Infinity, and -Infinity in
135
- # defiance of RFC 4627 to be parsed by the Parser. This option defaults
136
- # to true.
137
- # * *create_additions*: If set to false, the Parser doesn't create
138
- # additions even if a matchin class and create_id was found. This option
139
- # defaults to true.
140
- def parse!(source, opts = {})
141
- opts = {
142
- :max_nesting => false,
143
- :allow_nan => true
144
- }.update(opts)
145
- JSON.parser.new(source, opts).parse
146
- end
147
-
148
- # Unparse the Ruby data structure _obj_ into a single line JSON string and
149
- # return it. _state_ is
150
- # * a JSON::State object,
151
- # * or a Hash like object (responding to to_hash),
152
- # * an object convertible into a hash by a to_h method,
153
- # that is used as or to configure a State object.
154
- #
155
- # It defaults to a state object, that creates the shortest possible JSON text
156
- # in one line, checks for circular data structures and doesn't allow NaN,
157
- # Infinity, and -Infinity.
158
- #
159
- # A _state_ hash can have the following keys:
160
- # * *indent*: a string used to indent levels (default: ''),
161
- # * *space*: a string that is put after, a : or , delimiter (default: ''),
162
- # * *space_before*: a string that is put before a : pair delimiter (default: ''),
163
- # * *object_nl*: a string that is put at the end of a JSON object (default: ''),
164
- # * *array_nl*: a string that is put at the end of a JSON array (default: ''),
165
- # * *check_circular*: true if checking for circular data structures
166
- # should be done (the default), false otherwise.
167
- # * *allow_nan*: true if NaN, Infinity, and -Infinity should be
168
- # generated, otherwise an exception is thrown, if these values are
169
- # encountered. This options defaults to false.
170
- # * *max_nesting*: The maximum depth of nesting allowed in the data
171
- # structures from which JSON is to be generated. Disable depth checking
172
- # with :max_nesting => false, it defaults to 19.
173
- #
174
- # See also the fast_generate for the fastest creation method with the least
175
- # amount of sanity checks, and the pretty_generate method for some
176
- # defaults for a pretty output.
177
- def generate(obj, state = nil)
178
- if state
179
- state = State.from_state(state)
180
- else
181
- state = State.new
182
- end
183
- obj.to_json(state)
184
- end
185
-
186
- # :stopdoc:
187
- # I want to deprecate these later, so I'll first be silent about them, and
188
- # later delete them.
189
- alias unparse generate
190
- module_function :unparse
191
- # :startdoc:
192
-
193
- # Unparse the Ruby data structure _obj_ into a single line JSON string and
194
- # return it. This method disables the checks for circles in Ruby objects, and
195
- # also generates NaN, Infinity, and, -Infinity float values.
196
- #
197
- # *WARNING*: Be careful not to pass any Ruby data structures with circles as
198
- # _obj_ argument, because this will cause JSON to go into an infinite loop.
199
- def fast_generate(obj)
200
- obj.to_json(nil)
201
- end
202
-
203
- # :stopdoc:
204
- # I want to deprecate these later, so I'll first be silent about them, and later delete them.
205
- alias fast_unparse fast_generate
206
- module_function :fast_unparse
207
- # :startdoc:
208
-
209
- # Unparse the Ruby data structure _obj_ into a JSON string and return it. The
210
- # returned string is a prettier form of the string returned by #unparse.
211
- #
212
- # The _opts_ argument can be used to configure the generator, see the
213
- # generate method for a more detailed explanation.
214
- def pretty_generate(obj, opts = nil)
215
- state = JSON.state.new(
216
- :indent => ' ',
217
- :space => ' ',
218
- :object_nl => "\n",
219
- :array_nl => "\n",
220
- :check_circular => true
221
- )
222
- if opts
223
- if opts.respond_to? :to_hash
224
- opts = opts.to_hash
225
- elsif opts.respond_to? :to_h
226
- opts = opts.to_h
227
- else
228
- raise TypeError, "can't convert #{opts.class} into Hash"
229
- end
230
- state.configure(opts)
231
- end
232
- obj.to_json(state)
233
- end
234
-
235
- # :stopdoc:
236
- # I want to deprecate these later, so I'll first be silent about them, and later delete them.
237
- alias pretty_unparse pretty_generate
238
- module_function :pretty_unparse
239
- # :startdoc:
240
-
241
- # Load a ruby data structure from a JSON _source_ and return it. A source can
242
- # either be a string-like object, an IO like object, or an object responding
243
- # to the read method. If _proc_ was given, it will be called with any nested
244
- # Ruby object as an argument recursively in depth first order.
245
- #
246
- # This method is part of the implementation of the load/dump interface of
247
- # Marshal and YAML.
248
- def load(source, proc = nil)
249
- if source.respond_to? :to_str
250
- source = source.to_str
251
- elsif source.respond_to? :to_io
252
- source = source.to_io.read
253
- else
254
- source = source.read
255
- end
256
- result = parse(source, :max_nesting => false, :allow_nan => true)
257
- recurse_proc(result, &proc) if proc
258
- result
259
- end
260
-
261
- def recurse_proc(result, &proc)
262
- case result
263
- when Array
264
- result.each { |x| recurse_proc x, &proc }
265
- proc.call result
266
- when Hash
267
- result.each { |x, y| recurse_proc x, &proc; recurse_proc y, &proc }
268
- proc.call result
269
- else
270
- proc.call result
271
- end
272
- end
273
- private :recurse_proc
274
- module_function :recurse_proc
275
-
276
- alias restore load
277
- module_function :restore
278
-
279
- # Dumps _obj_ as a JSON string, i.e. calls generate on the object and returns
280
- # the result.
281
- #
282
- # If anIO (an IO like object or an object that responds to the write method)
283
- # was given, the resulting JSON is written to it.
284
- #
285
- # If the number of nested arrays or objects exceeds _limit_ an ArgumentError
286
- # exception is raised. This argument is similar (but not exactly the
287
- # same!) to the _limit_ argument in Marshal.dump.
288
- #
289
- # This method is part of the implementation of the load/dump interface of
290
- # Marshal and YAML.
291
- def dump(obj, anIO = nil, limit = nil)
292
- if anIO and limit.nil?
293
- anIO = anIO.to_io if anIO.respond_to?(:to_io)
294
- unless anIO.respond_to?(:write)
295
- limit = anIO
296
- anIO = nil
297
- end
298
- end
299
- limit ||= 0
300
- result = generate(obj, :allow_nan => true, :max_nesting => limit)
301
- if anIO
302
- anIO.write result
303
- anIO
304
- else
305
- result
306
- end
307
- rescue JSON::NestingError
308
- raise ArgumentError, "exceed depth limit"
309
- end
310
- end
311
-
312
- module ::Kernel
313
- # Outputs _objs_ to STDOUT as JSON strings in the shortest form, that is in
314
- # one line.
315
- def j(*objs)
316
- objs.each do |obj|
317
- puts JSON::generate(obj, :allow_nan => true, :max_nesting => false)
318
- end
319
- nil
320
- end
321
-
322
- # Ouputs _objs_ to STDOUT as JSON strings in a pretty format, with
323
- # indentation and over many lines.
324
- def jj(*objs)
325
- objs.each do |obj|
326
- puts JSON::pretty_generate(obj, :allow_nan => true, :max_nesting => false)
327
- end
328
- nil
329
- end
330
-
331
- # If _object_ is string-like parse the string and return the parsed result as
332
- # a Ruby data structure. Otherwise generate a JSON text from the Ruby data
333
- # structure object and return it.
334
- #
335
- # The _opts_ argument is passed through to generate/parse respectively, see
336
- # generate and parse for their documentation.
337
- def JSON(object, opts = {})
338
- if object.respond_to? :to_str
339
- JSON.parse(object.to_str, opts)
340
- else
341
- JSON.generate(object, opts)
342
- end
343
- end
344
- end
345
-
346
- class ::Class
347
- # Returns true, if this class can be used to create an instance
348
- # from a serialised JSON string. The class has to implement a class
349
- # method _json_create_ that expects a hash as first parameter, which includes
350
- # the required data.
351
- def json_creatable?
352
- respond_to?(:json_create)
353
- end
354
- end
@@ -1,1362 +0,0 @@
1
- # To use the GUI JSON editor, start the edit_json.rb executable script. It
2
- # requires ruby-gtk to be installed.
3
-
4
- require 'gtk2'
5
- require 'iconv'
6
- require 'json'
7
- require 'rbconfig'
8
- require 'open-uri'
9
-
10
- module JSON
11
- module Editor
12
- include Gtk
13
-
14
- # Beginning of the editor window title
15
- TITLE = 'JSON Editor'.freeze
16
-
17
- # Columns constants
18
- ICON_COL, TYPE_COL, CONTENT_COL = 0, 1, 2
19
-
20
- # JSON primitive types (Containers)
21
- CONTAINER_TYPES = %w[Array Hash].sort
22
- # All JSON primitive types
23
- ALL_TYPES = (%w[TrueClass FalseClass Numeric String NilClass] +
24
- CONTAINER_TYPES).sort
25
-
26
- # The Nodes necessary for the tree representation of a JSON document
27
- ALL_NODES = (ALL_TYPES + %w[Key]).sort
28
-
29
- DEFAULT_DIALOG_KEY_PRESS_HANDLER = lambda do |dialog, event|
30
- case event.keyval
31
- when Gdk::Keyval::GDK_Return
32
- dialog.response Dialog::RESPONSE_ACCEPT
33
- when Gdk::Keyval::GDK_Escape
34
- dialog.response Dialog::RESPONSE_REJECT
35
- end
36
- end
37
-
38
- # Returns the Gdk::Pixbuf of the icon named _name_ from the icon cache.
39
- def Editor.fetch_icon(name)
40
- @icon_cache ||= {}
41
- unless @icon_cache.key?(name)
42
- path = File.dirname(__FILE__)
43
- @icon_cache[name] = Gdk::Pixbuf.new(File.join(path, name + '.xpm'))
44
- end
45
- @icon_cache[name]
46
- end
47
-
48
- # Opens an error dialog on top of _window_ showing the error message
49
- # _text_.
50
- def Editor.error_dialog(window, text)
51
- dialog = MessageDialog.new(window, Dialog::MODAL,
52
- MessageDialog::ERROR,
53
- MessageDialog::BUTTONS_CLOSE, text)
54
- dialog.show_all
55
- dialog.run
56
- rescue TypeError
57
- dialog = MessageDialog.new(Editor.window, Dialog::MODAL,
58
- MessageDialog::ERROR,
59
- MessageDialog::BUTTONS_CLOSE, text)
60
- dialog.show_all
61
- dialog.run
62
- ensure
63
- dialog.destroy if dialog
64
- end
65
-
66
- # Opens a yes/no question dialog on top of _window_ showing the error
67
- # message _text_. If yes was answered _true_ is returned, otherwise
68
- # _false_.
69
- def Editor.question_dialog(window, text)
70
- dialog = MessageDialog.new(window, Dialog::MODAL,
71
- MessageDialog::QUESTION,
72
- MessageDialog::BUTTONS_YES_NO, text)
73
- dialog.show_all
74
- dialog.run do |response|
75
- return Gtk::Dialog::RESPONSE_YES === response
76
- end
77
- ensure
78
- dialog.destroy if dialog
79
- end
80
-
81
- # Convert the tree model starting from Gtk::TreeIter _iter_ into a Ruby
82
- # data structure and return it.
83
- def Editor.model2data(iter)
84
- return nil if iter.nil?
85
- case iter.type
86
- when 'Hash'
87
- hash = {}
88
- iter.each { |c| hash[c.content] = Editor.model2data(c.first_child) }
89
- hash
90
- when 'Array'
91
- array = Array.new(iter.n_children)
92
- iter.each_with_index { |c, i| array[i] = Editor.model2data(c) }
93
- array
94
- when 'Key'
95
- iter.content
96
- when 'String'
97
- iter.content
98
- when 'Numeric'
99
- content = iter.content
100
- if /\./.match(content)
101
- content.to_f
102
- else
103
- content.to_i
104
- end
105
- when 'TrueClass'
106
- true
107
- when 'FalseClass'
108
- false
109
- when 'NilClass'
110
- nil
111
- else
112
- fail "Unknown type found in model: #{iter.type}"
113
- end
114
- end
115
-
116
- # Convert the Ruby data structure _data_ into tree model data for Gtk and
117
- # returns the whole model. If the parameter _model_ wasn't given a new
118
- # Gtk::TreeStore is created as the model. The _parent_ parameter specifies
119
- # the parent node (iter, Gtk:TreeIter instance) to which the data is
120
- # appended, alternativeley the result of the yielded block is used as iter.
121
- def Editor.data2model(data, model = nil, parent = nil)
122
- model ||= TreeStore.new(Gdk::Pixbuf, String, String)
123
- iter = if block_given?
124
- yield model
125
- else
126
- model.append(parent)
127
- end
128
- case data
129
- when Hash
130
- iter.type = 'Hash'
131
- data.sort.each do |key, value|
132
- pair_iter = model.append(iter)
133
- pair_iter.type = 'Key'
134
- pair_iter.content = key.to_s
135
- Editor.data2model(value, model, pair_iter)
136
- end
137
- when Array
138
- iter.type = 'Array'
139
- data.each do |value|
140
- Editor.data2model(value, model, iter)
141
- end
142
- when Numeric
143
- iter.type = 'Numeric'
144
- iter.content = data.to_s
145
- when String, true, false, nil
146
- iter.type = data.class.name
147
- iter.content = data.nil? ? 'null' : data.to_s
148
- else
149
- iter.type = 'String'
150
- iter.content = data.to_s
151
- end
152
- model
153
- end
154
-
155
- # The Gtk::TreeIter class is reopened and some auxiliary methods are added.
156
- class Gtk::TreeIter
157
- include Enumerable
158
-
159
- # Traverse each of this Gtk::TreeIter instance's children
160
- # and yield to them.
161
- def each
162
- n_children.times { |i| yield nth_child(i) }
163
- end
164
-
165
- # Recursively traverse all nodes of this Gtk::TreeIter's subtree
166
- # (including self) and yield to them.
167
- def recursive_each(&block)
168
- yield self
169
- each do |i|
170
- i.recursive_each(&block)
171
- end
172
- end
173
-
174
- # Remove the subtree of this Gtk::TreeIter instance from the
175
- # model _model_.
176
- def remove_subtree(model)
177
- while current = first_child
178
- model.remove(current)
179
- end
180
- end
181
-
182
- # Returns the type of this node.
183
- def type
184
- self[TYPE_COL]
185
- end
186
-
187
- # Sets the type of this node to _value_. This implies setting
188
- # the respective icon accordingly.
189
- def type=(value)
190
- self[TYPE_COL] = value
191
- self[ICON_COL] = Editor.fetch_icon(value)
192
- end
193
-
194
- # Returns the content of this node.
195
- def content
196
- self[CONTENT_COL]
197
- end
198
-
199
- # Sets the content of this node to _value_.
200
- def content=(value)
201
- self[CONTENT_COL] = value
202
- end
203
- end
204
-
205
- # This module bundles some method, that can be used to create a menu. It
206
- # should be included into the class in question.
207
- module MenuExtension
208
- include Gtk
209
-
210
- # Creates a Menu, that includes MenuExtension. _treeview_ is the
211
- # Gtk::TreeView, on which it operates.
212
- def initialize(treeview)
213
- @treeview = treeview
214
- @menu = Menu.new
215
- end
216
-
217
- # Returns the Gtk::TreeView of this menu.
218
- attr_reader :treeview
219
-
220
- # Returns the menu.
221
- attr_reader :menu
222
-
223
- # Adds a Gtk::SeparatorMenuItem to this instance's #menu.
224
- def add_separator
225
- menu.append SeparatorMenuItem.new
226
- end
227
-
228
- # Adds a Gtk::MenuItem to this instance's #menu. _label_ is the label
229
- # string, _klass_ is the item type, and _callback_ is the procedure, that
230
- # is called if the _item_ is activated.
231
- def add_item(label, keyval = nil, klass = MenuItem, &callback)
232
- label = "#{label} (C-#{keyval.chr})" if keyval
233
- item = klass.new(label)
234
- item.signal_connect(:activate, &callback)
235
- if keyval
236
- self.signal_connect(:'key-press-event') do |item, event|
237
- if event.state & Gdk::Window::ModifierType::CONTROL_MASK != 0 and
238
- event.keyval == keyval
239
- callback.call item
240
- end
241
- end
242
- end
243
- menu.append item
244
- item
245
- end
246
-
247
- # This method should be implemented in subclasses to create the #menu of
248
- # this instance. It has to be called after an instance of this class is
249
- # created, to build the menu.
250
- def create
251
- raise NotImplementedError
252
- end
253
-
254
- def method_missing(*a, &b)
255
- treeview.__send__(*a, &b)
256
- end
257
- end
258
-
259
- # This class creates the popup menu, that opens when clicking onto the
260
- # treeview.
261
- class PopUpMenu
262
- include MenuExtension
263
-
264
- # Change the type or content of the selected node.
265
- def change_node(item)
266
- if current = selection.selected
267
- parent = current.parent
268
- old_type, old_content = current.type, current.content
269
- if ALL_TYPES.include?(old_type)
270
- @clipboard_data = Editor.model2data(current)
271
- type, content = ask_for_element(parent, current.type,
272
- current.content)
273
- if type
274
- current.type, current.content = type, content
275
- current.remove_subtree(model)
276
- toplevel.display_status("Changed a node in tree.")
277
- window.change
278
- end
279
- else
280
- toplevel.display_status(
281
- "Cannot change node of type #{old_type} in tree!")
282
- end
283
- end
284
- end
285
-
286
- # Cut the selected node and its subtree, and save it into the
287
- # clipboard.
288
- def cut_node(item)
289
- if current = selection.selected
290
- if current and current.type == 'Key'
291
- @clipboard_data = {
292
- current.content => Editor.model2data(current.first_child)
293
- }
294
- else
295
- @clipboard_data = Editor.model2data(current)
296
- end
297
- model.remove(current)
298
- window.change
299
- toplevel.display_status("Cut a node from tree.")
300
- end
301
- end
302
-
303
- # Copy the selected node and its subtree, and save it into the
304
- # clipboard.
305
- def copy_node(item)
306
- if current = selection.selected
307
- if current and current.type == 'Key'
308
- @clipboard_data = {
309
- current.content => Editor.model2data(current.first_child)
310
- }
311
- else
312
- @clipboard_data = Editor.model2data(current)
313
- end
314
- window.change
315
- toplevel.display_status("Copied a node from tree.")
316
- end
317
- end
318
-
319
- # Paste the data in the clipboard into the selected Array or Hash by
320
- # appending it.
321
- def paste_node_appending(item)
322
- if current = selection.selected
323
- if @clipboard_data
324
- case current.type
325
- when 'Array'
326
- Editor.data2model(@clipboard_data, model, current)
327
- expand_collapse(current)
328
- when 'Hash'
329
- if @clipboard_data.is_a? Hash
330
- parent = current.parent
331
- hash = Editor.model2data(current)
332
- model.remove(current)
333
- hash.update(@clipboard_data)
334
- Editor.data2model(hash, model, parent)
335
- if parent
336
- expand_collapse(parent)
337
- elsif @expanded
338
- expand_all
339
- end
340
- window.change
341
- else
342
- toplevel.display_status(
343
- "Cannot paste non-#{current.type} data into '#{current.type}'!")
344
- end
345
- else
346
- toplevel.display_status(
347
- "Cannot paste node below '#{current.type}'!")
348
- end
349
- else
350
- toplevel.display_status("Nothing to paste in clipboard!")
351
- end
352
- else
353
- toplevel.display_status("Append a node into the root first!")
354
- end
355
- end
356
-
357
- # Paste the data in the clipboard into the selected Array inserting it
358
- # before the selected element.
359
- def paste_node_inserting_before(item)
360
- if current = selection.selected
361
- if @clipboard_data
362
- parent = current.parent or return
363
- parent_type = parent.type
364
- if parent_type == 'Array'
365
- selected_index = parent.each_with_index do |c, i|
366
- break i if c == current
367
- end
368
- Editor.data2model(@clipboard_data, model, parent) do |m|
369
- m.insert_before(parent, current)
370
- end
371
- expand_collapse(current)
372
- toplevel.display_status("Inserted an element to " +
373
- "'#{parent_type}' before index #{selected_index}.")
374
- window.change
375
- else
376
- toplevel.display_status(
377
- "Cannot insert node below '#{parent_type}'!")
378
- end
379
- else
380
- toplevel.display_status("Nothing to paste in clipboard!")
381
- end
382
- else
383
- toplevel.display_status("Append a node into the root first!")
384
- end
385
- end
386
-
387
- # Append a new node to the selected Hash or Array.
388
- def append_new_node(item)
389
- if parent = selection.selected
390
- parent_type = parent.type
391
- case parent_type
392
- when 'Hash'
393
- key, type, content = ask_for_hash_pair(parent)
394
- key or return
395
- iter = create_node(parent, 'Key', key)
396
- iter = create_node(iter, type, content)
397
- toplevel.display_status(
398
- "Added a (key, value)-pair to '#{parent_type}'.")
399
- window.change
400
- when 'Array'
401
- type, content = ask_for_element(parent)
402
- type or return
403
- iter = create_node(parent, type, content)
404
- window.change
405
- toplevel.display_status("Appendend an element to '#{parent_type}'.")
406
- else
407
- toplevel.display_status("Cannot append to '#{parent_type}'!")
408
- end
409
- else
410
- type, content = ask_for_element
411
- type or return
412
- iter = create_node(nil, type, content)
413
- window.change
414
- end
415
- end
416
-
417
- # Insert a new node into an Array before the selected element.
418
- def insert_new_node(item)
419
- if current = selection.selected
420
- parent = current.parent or return
421
- parent_parent = parent.parent
422
- parent_type = parent.type
423
- if parent_type == 'Array'
424
- selected_index = parent.each_with_index do |c, i|
425
- break i if c == current
426
- end
427
- type, content = ask_for_element(parent)
428
- type or return
429
- iter = model.insert_before(parent, current)
430
- iter.type, iter.content = type, content
431
- toplevel.display_status("Inserted an element to " +
432
- "'#{parent_type}' before index #{selected_index}.")
433
- window.change
434
- else
435
- toplevel.display_status(
436
- "Cannot insert node below '#{parent_type}'!")
437
- end
438
- else
439
- toplevel.display_status("Append a node into the root first!")
440
- end
441
- end
442
-
443
- # Recursively collapse/expand a subtree starting from the selected node.
444
- def collapse_expand(item)
445
- if current = selection.selected
446
- if row_expanded?(current.path)
447
- collapse_row(current.path)
448
- else
449
- expand_row(current.path, true)
450
- end
451
- else
452
- toplevel.display_status("Append a node into the root first!")
453
- end
454
- end
455
-
456
- # Create the menu.
457
- def create
458
- add_item("Change node", ?n, &method(:change_node))
459
- add_separator
460
- add_item("Cut node", ?X, &method(:cut_node))
461
- add_item("Copy node", ?C, &method(:copy_node))
462
- add_item("Paste node (appending)", ?A, &method(:paste_node_appending))
463
- add_item("Paste node (inserting before)", ?I,
464
- &method(:paste_node_inserting_before))
465
- add_separator
466
- add_item("Append new node", ?a, &method(:append_new_node))
467
- add_item("Insert new node before", ?i, &method(:insert_new_node))
468
- add_separator
469
- add_item("Collapse/Expand node (recursively)", ?e,
470
- &method(:collapse_expand))
471
-
472
- menu.show_all
473
- signal_connect(:button_press_event) do |widget, event|
474
- if event.kind_of? Gdk::EventButton and event.button == 3
475
- menu.popup(nil, nil, event.button, event.time)
476
- end
477
- end
478
- signal_connect(:popup_menu) do
479
- menu.popup(nil, nil, 0, Gdk::Event::CURRENT_TIME)
480
- end
481
- end
482
- end
483
-
484
- # This class creates the File pulldown menu.
485
- class FileMenu
486
- include MenuExtension
487
-
488
- # Clear the model and filename, but ask to save the JSON document, if
489
- # unsaved changes have occured.
490
- def new(item)
491
- window.clear
492
- end
493
-
494
- # Open a file and load it into the editor. Ask to save the JSON document
495
- # first, if unsaved changes have occured.
496
- def open(item)
497
- window.file_open
498
- end
499
-
500
- def open_location(item)
501
- window.location_open
502
- end
503
-
504
- # Revert the current JSON document in the editor to the saved version.
505
- def revert(item)
506
- window.instance_eval do
507
- @filename and file_open(@filename)
508
- end
509
- end
510
-
511
- # Save the current JSON document.
512
- def save(item)
513
- window.file_save
514
- end
515
-
516
- # Save the current JSON document under the given filename.
517
- def save_as(item)
518
- window.file_save_as
519
- end
520
-
521
- # Quit the editor, after asking to save any unsaved changes first.
522
- def quit(item)
523
- window.quit
524
- end
525
-
526
- # Create the menu.
527
- def create
528
- title = MenuItem.new('File')
529
- title.submenu = menu
530
- add_item('New', &method(:new))
531
- add_item('Open', ?o, &method(:open))
532
- add_item('Open location', ?l, &method(:open_location))
533
- add_item('Revert', &method(:revert))
534
- add_separator
535
- add_item('Save', ?s, &method(:save))
536
- add_item('Save As', ?S, &method(:save_as))
537
- add_separator
538
- add_item('Quit', ?q, &method(:quit))
539
- title
540
- end
541
- end
542
-
543
- # This class creates the Edit pulldown menu.
544
- class EditMenu
545
- include MenuExtension
546
-
547
- # Copy data from model into primary clipboard.
548
- def copy(item)
549
- data = Editor.model2data(model.iter_first)
550
- json = JSON.pretty_generate(data, :max_nesting => false)
551
- c = Gtk::Clipboard.get(Gdk::Selection::PRIMARY)
552
- c.text = json
553
- end
554
-
555
- # Copy json text from primary clipboard into model.
556
- def paste(item)
557
- c = Gtk::Clipboard.get(Gdk::Selection::PRIMARY)
558
- if json = c.wait_for_text
559
- window.ask_save if @changed
560
- begin
561
- window.edit json
562
- rescue JSON::ParserError
563
- window.clear
564
- end
565
- end
566
- end
567
-
568
- # Find a string in all nodes' contents and select the found node in the
569
- # treeview.
570
- def find(item)
571
- @search = ask_for_find_term(@search) or return
572
- iter = model.get_iter('0') or return
573
- iter.recursive_each do |i|
574
- if @iter
575
- if @iter != i
576
- next
577
- else
578
- @iter = nil
579
- next
580
- end
581
- elsif @search.match(i[CONTENT_COL])
582
- set_cursor(i.path, nil, false)
583
- @iter = i
584
- break
585
- end
586
- end
587
- end
588
-
589
- # Repeat the last search given by #find.
590
- def find_again(item)
591
- @search or return
592
- iter = model.get_iter('0')
593
- iter.recursive_each do |i|
594
- if @iter
595
- if @iter != i
596
- next
597
- else
598
- @iter = nil
599
- next
600
- end
601
- elsif @search.match(i[CONTENT_COL])
602
- set_cursor(i.path, nil, false)
603
- @iter = i
604
- break
605
- end
606
- end
607
- end
608
-
609
- # Sort (Reverse sort) all elements of the selected array by the given
610
- # expression. _x_ is the element in question.
611
- def sort(item)
612
- if current = selection.selected
613
- if current.type == 'Array'
614
- parent = current.parent
615
- ary = Editor.model2data(current)
616
- order, reverse = ask_for_order
617
- order or return
618
- begin
619
- block = eval "lambda { |x| #{order} }"
620
- if reverse
621
- ary.sort! { |a,b| block[b] <=> block[a] }
622
- else
623
- ary.sort! { |a,b| block[a] <=> block[b] }
624
- end
625
- rescue => e
626
- Editor.error_dialog(self, "Failed to sort Array with #{order}: #{e}!")
627
- else
628
- Editor.data2model(ary, model, parent) do |m|
629
- m.insert_before(parent, current)
630
- end
631
- model.remove(current)
632
- expand_collapse(parent)
633
- window.change
634
- toplevel.display_status("Array has been sorted.")
635
- end
636
- else
637
- toplevel.display_status("Only Array nodes can be sorted!")
638
- end
639
- else
640
- toplevel.display_status("Select an Array to sort first!")
641
- end
642
- end
643
-
644
- # Create the menu.
645
- def create
646
- title = MenuItem.new('Edit')
647
- title.submenu = menu
648
- add_item('Copy', ?c, &method(:copy))
649
- add_item('Paste', ?v, &method(:paste))
650
- add_separator
651
- add_item('Find', ?f, &method(:find))
652
- add_item('Find Again', ?g, &method(:find_again))
653
- add_separator
654
- add_item('Sort', ?S, &method(:sort))
655
- title
656
- end
657
- end
658
-
659
- class OptionsMenu
660
- include MenuExtension
661
-
662
- # Collapse/Expand all nodes by default.
663
- def collapsed_nodes(item)
664
- if expanded
665
- self.expanded = false
666
- collapse_all
667
- else
668
- self.expanded = true
669
- expand_all
670
- end
671
- end
672
-
673
- # Toggle pretty saving mode on/off.
674
- def pretty_saving(item)
675
- @pretty_item.toggled
676
- window.change
677
- end
678
-
679
- attr_reader :pretty_item
680
-
681
- # Create the menu.
682
- def create
683
- title = MenuItem.new('Options')
684
- title.submenu = menu
685
- add_item('Collapsed nodes', nil, CheckMenuItem, &method(:collapsed_nodes))
686
- @pretty_item = add_item('Pretty saving', nil, CheckMenuItem,
687
- &method(:pretty_saving))
688
- @pretty_item.active = true
689
- window.unchange
690
- title
691
- end
692
- end
693
-
694
- # This class inherits from Gtk::TreeView, to configure it and to add a lot
695
- # of behaviour to it.
696
- class JSONTreeView < Gtk::TreeView
697
- include Gtk
698
-
699
- # Creates a JSONTreeView instance, the parameter _window_ is
700
- # a MainWindow instance and used for self delegation.
701
- def initialize(window)
702
- @window = window
703
- super(TreeStore.new(Gdk::Pixbuf, String, String))
704
- self.selection.mode = SELECTION_BROWSE
705
-
706
- @expanded = false
707
- self.headers_visible = false
708
- add_columns
709
- add_popup_menu
710
- end
711
-
712
- # Returns the MainWindow instance of this JSONTreeView.
713
- attr_reader :window
714
-
715
- # Returns true, if nodes are autoexpanding, false otherwise.
716
- attr_accessor :expanded
717
-
718
- private
719
-
720
- def add_columns
721
- cell = CellRendererPixbuf.new
722
- column = TreeViewColumn.new('Icon', cell,
723
- 'pixbuf' => ICON_COL
724
- )
725
- append_column(column)
726
-
727
- cell = CellRendererText.new
728
- column = TreeViewColumn.new('Type', cell,
729
- 'text' => TYPE_COL
730
- )
731
- append_column(column)
732
-
733
- cell = CellRendererText.new
734
- cell.editable = true
735
- column = TreeViewColumn.new('Content', cell,
736
- 'text' => CONTENT_COL
737
- )
738
- cell.signal_connect(:edited, &method(:cell_edited))
739
- append_column(column)
740
- end
741
-
742
- def unify_key(iter, key)
743
- return unless iter.type == 'Key'
744
- parent = iter.parent
745
- if parent.any? { |c| c != iter and c.content == key }
746
- old_key = key
747
- i = 0
748
- begin
749
- key = sprintf("%s.%d", old_key, i += 1)
750
- end while parent.any? { |c| c != iter and c.content == key }
751
- end
752
- iter.content = key
753
- end
754
-
755
- def cell_edited(cell, path, value)
756
- iter = model.get_iter(path)
757
- case iter.type
758
- when 'Key'
759
- unify_key(iter, value)
760
- toplevel.display_status('Key has been changed.')
761
- when 'FalseClass'
762
- value.downcase!
763
- if value == 'true'
764
- iter.type, iter.content = 'TrueClass', 'true'
765
- end
766
- when 'TrueClass'
767
- value.downcase!
768
- if value == 'false'
769
- iter.type, iter.content = 'FalseClass', 'false'
770
- end
771
- when 'Numeric'
772
- iter.content = (Integer(value) rescue Float(value) rescue 0).to_s
773
- when 'String'
774
- iter.content = value
775
- when 'Hash', 'Array'
776
- return
777
- else
778
- fail "Unknown type found in model: #{iter.type}"
779
- end
780
- window.change
781
- end
782
-
783
- def configure_value(value, type)
784
- value.editable = false
785
- case type
786
- when 'Array', 'Hash'
787
- value.text = ''
788
- when 'TrueClass'
789
- value.text = 'true'
790
- when 'FalseClass'
791
- value.text = 'false'
792
- when 'NilClass'
793
- value.text = 'null'
794
- when 'Numeric', 'String'
795
- value.text ||= ''
796
- value.editable = true
797
- else
798
- raise ArgumentError, "unknown type '#{type}' encountered"
799
- end
800
- end
801
-
802
- def add_popup_menu
803
- menu = PopUpMenu.new(self)
804
- menu.create
805
- end
806
-
807
- public
808
-
809
- # Create a _type_ node with content _content_, and add it to _parent_
810
- # in the model. If _parent_ is nil, create a new model and put it into
811
- # the editor treeview.
812
- def create_node(parent, type, content)
813
- iter = if parent
814
- model.append(parent)
815
- else
816
- new_model = Editor.data2model(nil)
817
- toplevel.view_new_model(new_model)
818
- new_model.iter_first
819
- end
820
- iter.type, iter.content = type, content
821
- expand_collapse(parent) if parent
822
- iter
823
- end
824
-
825
- # Ask for a hash key, value pair to be added to the Hash node _parent_.
826
- def ask_for_hash_pair(parent)
827
- key_input = type_input = value_input = nil
828
-
829
- dialog = Dialog.new("New (key, value) pair for Hash", nil, nil,
830
- [ Stock::OK, Dialog::RESPONSE_ACCEPT ],
831
- [ Stock::CANCEL, Dialog::RESPONSE_REJECT ]
832
- )
833
- dialog.width_request = 640
834
-
835
- hbox = HBox.new(false, 5)
836
- hbox.pack_start(Label.new("Key:"), false)
837
- hbox.pack_start(key_input = Entry.new)
838
- key_input.text = @key || ''
839
- dialog.vbox.pack_start(hbox, false)
840
- key_input.signal_connect(:activate) do
841
- if parent.any? { |c| c.content == key_input.text }
842
- toplevel.display_status('Key already exists in Hash!')
843
- key_input.text = ''
844
- else
845
- toplevel.display_status('Key has been changed.')
846
- end
847
- end
848
-
849
- hbox = HBox.new(false, 5)
850
- hbox.pack_start(Label.new("Type:"), false)
851
- hbox.pack_start(type_input = ComboBox.new(true))
852
- ALL_TYPES.each { |t| type_input.append_text(t) }
853
- type_input.active = @type || 0
854
- dialog.vbox.pack_start(hbox, false)
855
-
856
- type_input.signal_connect(:changed) do
857
- value_input.editable = false
858
- case ALL_TYPES[type_input.active]
859
- when 'Array', 'Hash'
860
- value_input.text = ''
861
- when 'TrueClass'
862
- value_input.text = 'true'
863
- when 'FalseClass'
864
- value_input.text = 'false'
865
- when 'NilClass'
866
- value_input.text = 'null'
867
- else
868
- value_input.text = ''
869
- value_input.editable = true
870
- end
871
- end
872
-
873
- hbox = HBox.new(false, 5)
874
- hbox.pack_start(Label.new("Value:"), false)
875
- hbox.pack_start(value_input = Entry.new)
876
- value_input.width_chars = 60
877
- value_input.text = @value || ''
878
- dialog.vbox.pack_start(hbox, false)
879
-
880
- dialog.signal_connect(:'key-press-event', &DEFAULT_DIALOG_KEY_PRESS_HANDLER)
881
- dialog.show_all
882
- self.focus = dialog
883
- dialog.run do |response|
884
- if response == Dialog::RESPONSE_ACCEPT
885
- @key = key_input.text
886
- type = ALL_TYPES[@type = type_input.active]
887
- content = value_input.text
888
- return @key, type, content
889
- end
890
- end
891
- return
892
- ensure
893
- dialog.destroy
894
- end
895
-
896
- # Ask for an element to be appended _parent_.
897
- def ask_for_element(parent = nil, default_type = nil, value_text = @content)
898
- type_input = value_input = nil
899
-
900
- dialog = Dialog.new(
901
- "New element into #{parent ? parent.type : 'root'}",
902
- nil, nil,
903
- [ Stock::OK, Dialog::RESPONSE_ACCEPT ],
904
- [ Stock::CANCEL, Dialog::RESPONSE_REJECT ]
905
- )
906
- hbox = HBox.new(false, 5)
907
- hbox.pack_start(Label.new("Type:"), false)
908
- hbox.pack_start(type_input = ComboBox.new(true))
909
- default_active = 0
910
- types = parent ? ALL_TYPES : CONTAINER_TYPES
911
- types.each_with_index do |t, i|
912
- type_input.append_text(t)
913
- if t == default_type
914
- default_active = i
915
- end
916
- end
917
- type_input.active = default_active
918
- dialog.vbox.pack_start(hbox, false)
919
- type_input.signal_connect(:changed) do
920
- configure_value(value_input, types[type_input.active])
921
- end
922
-
923
- hbox = HBox.new(false, 5)
924
- hbox.pack_start(Label.new("Value:"), false)
925
- hbox.pack_start(value_input = Entry.new)
926
- value_input.width_chars = 60
927
- value_input.text = value_text if value_text
928
- configure_value(value_input, types[type_input.active])
929
-
930
- dialog.vbox.pack_start(hbox, false)
931
-
932
- dialog.signal_connect(:'key-press-event', &DEFAULT_DIALOG_KEY_PRESS_HANDLER)
933
- dialog.show_all
934
- self.focus = dialog
935
- dialog.run do |response|
936
- if response == Dialog::RESPONSE_ACCEPT
937
- type = types[type_input.active]
938
- @content = case type
939
- when 'Numeric'
940
- Integer(value_input.text) rescue Float(value_input.text) rescue 0
941
- else
942
- value_input.text
943
- end.to_s
944
- return type, @content
945
- end
946
- end
947
- return
948
- ensure
949
- dialog.destroy if dialog
950
- end
951
-
952
- # Ask for an order criteria for sorting, using _x_ for the element in
953
- # question. Returns the order criterium, and true/false for reverse
954
- # sorting.
955
- def ask_for_order
956
- dialog = Dialog.new(
957
- "Give an order criterium for 'x'.",
958
- nil, nil,
959
- [ Stock::OK, Dialog::RESPONSE_ACCEPT ],
960
- [ Stock::CANCEL, Dialog::RESPONSE_REJECT ]
961
- )
962
- hbox = HBox.new(false, 5)
963
-
964
- hbox.pack_start(Label.new("Order:"), false)
965
- hbox.pack_start(order_input = Entry.new)
966
- order_input.text = @order || 'x'
967
- order_input.width_chars = 60
968
-
969
- hbox.pack_start(reverse_checkbox = CheckButton.new('Reverse'), false)
970
-
971
- dialog.vbox.pack_start(hbox, false)
972
-
973
- dialog.signal_connect(:'key-press-event', &DEFAULT_DIALOG_KEY_PRESS_HANDLER)
974
- dialog.show_all
975
- self.focus = dialog
976
- dialog.run do |response|
977
- if response == Dialog::RESPONSE_ACCEPT
978
- return @order = order_input.text, reverse_checkbox.active?
979
- end
980
- end
981
- return
982
- ensure
983
- dialog.destroy if dialog
984
- end
985
-
986
- # Ask for a find term to search for in the tree. Returns the term as a
987
- # string.
988
- def ask_for_find_term(search = nil)
989
- dialog = Dialog.new(
990
- "Find a node matching regex in tree.",
991
- nil, nil,
992
- [ Stock::OK, Dialog::RESPONSE_ACCEPT ],
993
- [ Stock::CANCEL, Dialog::RESPONSE_REJECT ]
994
- )
995
- hbox = HBox.new(false, 5)
996
-
997
- hbox.pack_start(Label.new("Regex:"), false)
998
- hbox.pack_start(regex_input = Entry.new)
999
- hbox.pack_start(icase_checkbox = CheckButton.new('Icase'), false)
1000
- regex_input.width_chars = 60
1001
- if search
1002
- regex_input.text = search.source
1003
- icase_checkbox.active = search.casefold?
1004
- end
1005
-
1006
- dialog.vbox.pack_start(hbox, false)
1007
-
1008
- dialog.signal_connect(:'key-press-event', &DEFAULT_DIALOG_KEY_PRESS_HANDLER)
1009
- dialog.show_all
1010
- self.focus = dialog
1011
- dialog.run do |response|
1012
- if response == Dialog::RESPONSE_ACCEPT
1013
- begin
1014
- return Regexp.new(regex_input.text, icase_checkbox.active? ? Regexp::IGNORECASE : 0)
1015
- rescue => e
1016
- Editor.error_dialog(self, "Evaluation of regex /#{regex_input.text}/ failed: #{e}!")
1017
- return
1018
- end
1019
- end
1020
- end
1021
- return
1022
- ensure
1023
- dialog.destroy if dialog
1024
- end
1025
-
1026
- # Expand or collapse row pointed to by _iter_ according
1027
- # to the #expanded attribute.
1028
- def expand_collapse(iter)
1029
- if expanded
1030
- expand_row(iter.path, true)
1031
- else
1032
- collapse_row(iter.path)
1033
- end
1034
- end
1035
- end
1036
-
1037
- # The editor main window
1038
- class MainWindow < Gtk::Window
1039
- include Gtk
1040
-
1041
- def initialize(encoding)
1042
- @changed = false
1043
- @encoding = encoding
1044
- super(TOPLEVEL)
1045
- display_title
1046
- set_default_size(800, 600)
1047
- signal_connect(:delete_event) { quit }
1048
-
1049
- vbox = VBox.new(false, 0)
1050
- add(vbox)
1051
- #vbox.border_width = 0
1052
-
1053
- @treeview = JSONTreeView.new(self)
1054
- @treeview.signal_connect(:'cursor-changed') do
1055
- display_status('')
1056
- end
1057
-
1058
- menu_bar = create_menu_bar
1059
- vbox.pack_start(menu_bar, false, false, 0)
1060
-
1061
- sw = ScrolledWindow.new(nil, nil)
1062
- sw.shadow_type = SHADOW_ETCHED_IN
1063
- sw.set_policy(POLICY_AUTOMATIC, POLICY_AUTOMATIC)
1064
- vbox.pack_start(sw, true, true, 0)
1065
- sw.add(@treeview)
1066
-
1067
- @status_bar = Statusbar.new
1068
- vbox.pack_start(@status_bar, false, false, 0)
1069
-
1070
- @filename ||= nil
1071
- if @filename
1072
- data = read_data(@filename)
1073
- view_new_model Editor.data2model(data)
1074
- end
1075
-
1076
- signal_connect(:button_release_event) do |_,event|
1077
- if event.button == 2
1078
- c = Gtk::Clipboard.get(Gdk::Selection::PRIMARY)
1079
- if url = c.wait_for_text
1080
- location_open url
1081
- end
1082
- false
1083
- else
1084
- true
1085
- end
1086
- end
1087
- end
1088
-
1089
- # Creates the menu bar with the pulldown menus and returns it.
1090
- def create_menu_bar
1091
- menu_bar = MenuBar.new
1092
- @file_menu = FileMenu.new(@treeview)
1093
- menu_bar.append @file_menu.create
1094
- @edit_menu = EditMenu.new(@treeview)
1095
- menu_bar.append @edit_menu.create
1096
- @options_menu = OptionsMenu.new(@treeview)
1097
- menu_bar.append @options_menu.create
1098
- menu_bar
1099
- end
1100
-
1101
- # Sets editor status to changed, to indicate that the edited data
1102
- # containts unsaved changes.
1103
- def change
1104
- @changed = true
1105
- display_title
1106
- end
1107
-
1108
- # Sets editor status to unchanged, to indicate that the edited data
1109
- # doesn't containt unsaved changes.
1110
- def unchange
1111
- @changed = false
1112
- display_title
1113
- end
1114
-
1115
- # Puts a new model _model_ into the Gtk::TreeView to be edited.
1116
- def view_new_model(model)
1117
- @treeview.model = model
1118
- @treeview.expanded = true
1119
- @treeview.expand_all
1120
- unchange
1121
- end
1122
-
1123
- # Displays _text_ in the status bar.
1124
- def display_status(text)
1125
- @cid ||= nil
1126
- @status_bar.pop(@cid) if @cid
1127
- @cid = @status_bar.get_context_id('dummy')
1128
- @status_bar.push(@cid, text)
1129
- end
1130
-
1131
- # Opens a dialog, asking, if changes should be saved to a file.
1132
- def ask_save
1133
- if Editor.question_dialog(self,
1134
- "Unsaved changes to JSON model. Save?")
1135
- if @filename
1136
- file_save
1137
- else
1138
- file_save_as
1139
- end
1140
- end
1141
- end
1142
-
1143
- # Quit this editor, that is, leave this editor's main loop.
1144
- def quit
1145
- ask_save if @changed
1146
- if Gtk.main_level > 0
1147
- destroy
1148
- Gtk.main_quit
1149
- end
1150
- nil
1151
- end
1152
-
1153
- # Display the new title according to the editor's current state.
1154
- def display_title
1155
- title = TITLE.dup
1156
- title << ": #@filename" if @filename
1157
- title << " *" if @changed
1158
- self.title = title
1159
- end
1160
-
1161
- # Clear the current model, after asking to save all unsaved changes.
1162
- def clear
1163
- ask_save if @changed
1164
- @filename = nil
1165
- self.view_new_model nil
1166
- end
1167
-
1168
- def check_pretty_printed(json)
1169
- pretty = !!((nl_index = json.index("\n")) && nl_index != json.size - 1)
1170
- @options_menu.pretty_item.active = pretty
1171
- end
1172
- private :check_pretty_printed
1173
-
1174
- # Open the data at the location _uri_, if given. Otherwise open a dialog
1175
- # to ask for the _uri_.
1176
- def location_open(uri = nil)
1177
- uri = ask_for_location unless uri
1178
- uri or return
1179
- ask_save if @changed
1180
- data = load_location(uri) or return
1181
- view_new_model Editor.data2model(data)
1182
- end
1183
-
1184
- # Open the file _filename_ or call the #select_file method to ask for a
1185
- # filename.
1186
- def file_open(filename = nil)
1187
- filename = select_file('Open as a JSON file') unless filename
1188
- data = load_file(filename) or return
1189
- view_new_model Editor.data2model(data)
1190
- end
1191
-
1192
- # Edit the string _json_ in the editor.
1193
- def edit(json)
1194
- if json.respond_to? :read
1195
- json = json.read
1196
- end
1197
- data = parse_json json
1198
- view_new_model Editor.data2model(data)
1199
- end
1200
-
1201
- # Save the current file.
1202
- def file_save
1203
- if @filename
1204
- store_file(@filename)
1205
- else
1206
- file_save_as
1207
- end
1208
- end
1209
-
1210
- # Save the current file as the filename
1211
- def file_save_as
1212
- filename = select_file('Save as a JSON file')
1213
- store_file(filename)
1214
- end
1215
-
1216
- # Store the current JSON document to _path_.
1217
- def store_file(path)
1218
- if path
1219
- data = Editor.model2data(@treeview.model.iter_first)
1220
- File.open(path + '.tmp', 'wb') do |output|
1221
- data or break
1222
- if @options_menu.pretty_item.active?
1223
- output.puts JSON.pretty_generate(data, :max_nesting => false)
1224
- else
1225
- output.write JSON.generate(data, :max_nesting => false)
1226
- end
1227
- end
1228
- File.rename path + '.tmp', path
1229
- @filename = path
1230
- toplevel.display_status("Saved data to '#@filename'.")
1231
- unchange
1232
- end
1233
- rescue SystemCallError => e
1234
- Editor.error_dialog(self, "Failed to store JSON file: #{e}!")
1235
- end
1236
-
1237
- # Load the file named _filename_ into the editor as a JSON document.
1238
- def load_file(filename)
1239
- if filename
1240
- if File.directory?(filename)
1241
- Editor.error_dialog(self, "Try to select a JSON file!")
1242
- nil
1243
- else
1244
- @filename = filename
1245
- if data = read_data(filename)
1246
- toplevel.display_status("Loaded data from '#@filename'.")
1247
- end
1248
- display_title
1249
- data
1250
- end
1251
- end
1252
- end
1253
-
1254
- # Load the data at location _uri_ into the editor as a JSON document.
1255
- def load_location(uri)
1256
- data = read_data(uri) or return
1257
- @filename = nil
1258
- toplevel.display_status("Loaded data from '#{uri}'.")
1259
- display_title
1260
- data
1261
- end
1262
-
1263
- def parse_json(json)
1264
- check_pretty_printed(json)
1265
- if @encoding && !/^utf8$/i.match(@encoding)
1266
- iconverter = Iconv.new('utf8', @encoding)
1267
- json = iconverter.iconv(json)
1268
- end
1269
- JSON::parse(json, :max_nesting => false, :create_additions => false)
1270
- end
1271
- private :parse_json
1272
-
1273
- # Read a JSON document from the file named _filename_, parse it into a
1274
- # ruby data structure, and return the data.
1275
- def read_data(filename)
1276
- open(filename) do |f|
1277
- json = f.read
1278
- return parse_json(json)
1279
- end
1280
- rescue => e
1281
- Editor.error_dialog(self, "Failed to parse JSON file: #{e}!")
1282
- return
1283
- end
1284
-
1285
- # Open a file selecton dialog, displaying _message_, and return the
1286
- # selected filename or nil, if no file was selected.
1287
- def select_file(message)
1288
- filename = nil
1289
- fs = FileSelection.new(message)
1290
- fs.set_modal(true)
1291
- @default_dir = File.join(Dir.pwd, '') unless @default_dir
1292
- fs.set_filename(@default_dir)
1293
- fs.set_transient_for(self)
1294
- fs.signal_connect(:destroy) { Gtk.main_quit }
1295
- fs.ok_button.signal_connect(:clicked) do
1296
- filename = fs.filename
1297
- @default_dir = File.join(File.dirname(filename), '')
1298
- fs.destroy
1299
- Gtk.main_quit
1300
- end
1301
- fs.cancel_button.signal_connect(:clicked) do
1302
- fs.destroy
1303
- Gtk.main_quit
1304
- end
1305
- fs.show_all
1306
- Gtk.main
1307
- filename
1308
- end
1309
-
1310
- # Ask for location URI a to load data from. Returns the URI as a string.
1311
- def ask_for_location
1312
- dialog = Dialog.new(
1313
- "Load data from location...",
1314
- nil, nil,
1315
- [ Stock::OK, Dialog::RESPONSE_ACCEPT ],
1316
- [ Stock::CANCEL, Dialog::RESPONSE_REJECT ]
1317
- )
1318
- hbox = HBox.new(false, 5)
1319
-
1320
- hbox.pack_start(Label.new("Location:"), false)
1321
- hbox.pack_start(location_input = Entry.new)
1322
- location_input.width_chars = 60
1323
- location_input.text = @location || ''
1324
-
1325
- dialog.vbox.pack_start(hbox, false)
1326
-
1327
- dialog.signal_connect(:'key-press-event', &DEFAULT_DIALOG_KEY_PRESS_HANDLER)
1328
- dialog.show_all
1329
- dialog.run do |response|
1330
- if response == Dialog::RESPONSE_ACCEPT
1331
- return @location = location_input.text
1332
- end
1333
- end
1334
- return
1335
- ensure
1336
- dialog.destroy if dialog
1337
- end
1338
- end
1339
-
1340
- class << self
1341
- # Starts a JSON Editor. If a block was given, it yields
1342
- # to the JSON::Editor::MainWindow instance.
1343
- def start(encoding = 'utf8') # :yield: window
1344
- Gtk.init
1345
- @window = Editor::MainWindow.new(encoding)
1346
- @window.icon_list = [ Editor.fetch_icon('json') ]
1347
- yield @window if block_given?
1348
- @window.show_all
1349
- Gtk.main
1350
- end
1351
-
1352
- # Edit the string _json_ with encoding _encoding_ in the editor.
1353
- def edit(json, encoding = 'utf8')
1354
- start(encoding) do |window|
1355
- window.edit json
1356
- end
1357
- end
1358
-
1359
- attr_reader :window
1360
- end
1361
- end
1362
- end