typo 5.3 → 5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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