typo 4.0.3 → 4.1

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 (652) hide show
  1. data/CHANGES-4.1 +83 -0
  2. data/MAINTAINERS +3 -7
  3. data/README +1 -1
  4. data/{components/sidebars/README → README.SIDEBARS} +3 -0
  5. data/Rakefile +1 -1
  6. data/TODO-4.1 +16 -0
  7. data/app/apis/blogger_service.rb +3 -3
  8. data/app/apis/meta_weblog_service.rb +4 -21
  9. data/app/apis/movable_type_service.rb +5 -5
  10. data/app/controllers/accounts_controller.rb +6 -3
  11. data/app/controllers/admin/blacklist_controller.rb +1 -1
  12. data/app/controllers/admin/cache_controller.rb +3 -7
  13. data/app/controllers/admin/content_controller.rb +46 -24
  14. data/app/controllers/admin/feedback_controller.rb +3 -3
  15. data/app/controllers/admin/general_controller.rb +3 -3
  16. data/app/controllers/admin/pages_controller.rb +7 -3
  17. data/app/controllers/admin/sidebar_controller.rb +19 -26
  18. data/app/controllers/admin/textfilters_controller.rb +3 -1
  19. data/app/controllers/admin/themes_controller.rb +1 -1
  20. data/app/controllers/admin/users_controller.rb +1 -1
  21. data/app/controllers/application.rb +25 -27
  22. data/app/controllers/articles_controller.rb +14 -18
  23. data/app/controllers/content_controller.rb +7 -7
  24. data/app/controllers/live_controller.rb +1 -1
  25. data/app/controllers/redirect_controller.rb +2 -0
  26. data/app/controllers/textfilter_controller.rb +0 -3
  27. data/app/controllers/theme_controller.rb +10 -5
  28. data/app/controllers/xml_controller.rb +7 -9
  29. data/app/helpers/admin/base_helper.rb +10 -5
  30. data/app/helpers/admin/content_helper.rb +6 -0
  31. data/app/helpers/admin/feedback_helper.rb +1 -1
  32. data/app/helpers/admin/pages_helper.rb +5 -0
  33. data/app/helpers/application_helper.rb +84 -51
  34. data/app/helpers/articles_helper.rb +29 -29
  35. data/app/helpers/mail_helper.rb +3 -2
  36. data/app/helpers/sidebar_helper.rb +25 -16
  37. data/app/helpers/xml_helper.rb +0 -16
  38. data/app/models/article.rb +90 -32
  39. data/app/models/blog.rb +82 -74
  40. data/app/models/blog_sweeper.rb +33 -8
  41. data/app/models/categorization.rb +4 -0
  42. data/app/models/category.rb +21 -4
  43. data/app/models/comment.rb +23 -21
  44. data/app/models/content.rb +106 -64
  45. data/app/models/content_state/base.rb +12 -3
  46. data/app/models/content_state/draft.rb +2 -3
  47. data/app/models/content_state/factory.rb +1 -1
  48. data/app/models/content_state/ham.rb +0 -1
  49. data/app/models/content_state/just_marked_as_ham.rb +8 -1
  50. data/app/models/content_state/just_marked_as_spam.rb +4 -1
  51. data/app/models/content_state/just_presumed_ham.rb +14 -14
  52. data/app/models/content_state/just_published.rb +11 -18
  53. data/app/models/content_state/just_withdrawn.rb +11 -0
  54. data/app/models/content_state/new.rb +0 -1
  55. data/app/models/content_state/presumed_ham.rb +9 -3
  56. data/app/models/content_state/presumed_spam.rb +4 -1
  57. data/app/models/content_state/publication_pending.rb +4 -4
  58. data/app/models/content_state/published.rb +7 -8
  59. data/app/models/content_state/spam.rb +0 -1
  60. data/app/models/content_state/unclassified.rb +12 -3
  61. data/app/models/content_state/withdrawn.rb +5 -6
  62. data/app/models/email_notifier.rb +1 -1
  63. data/app/models/feedback.rb +31 -11
  64. data/app/models/notification.rb +4 -0
  65. data/app/models/notification_mailer.rb +8 -8
  66. data/app/models/page.rb +19 -5
  67. data/app/models/ping.rb +27 -40
  68. data/app/models/sidebar.rb +241 -11
  69. data/app/models/tag.rb +12 -1
  70. data/app/models/text_filter.rb +33 -39
  71. data/app/models/theme.rb +9 -0
  72. data/app/models/trackback.rb +1 -5
  73. data/app/models/user.rb +7 -5
  74. data/app/views/accounts/login.rhtml +19 -15
  75. data/app/views/accounts/logout.rhtml +4 -4
  76. data/app/views/accounts/signup.rhtml +9 -9
  77. data/app/views/admin/base/_recent_comments.rhtml +2 -2
  78. data/app/views/admin/base/_recent_trackbacks.rhtml +2 -2
  79. data/app/views/admin/blacklist/_blacklist_patterns.rhtml +4 -4
  80. data/app/views/admin/blacklist/_form.rhtml +3 -3
  81. data/app/views/admin/blacklist/_quick_post.rhtml +7 -6
  82. data/app/views/admin/blacklist/destroy.rhtml +5 -5
  83. data/app/views/admin/blacklist/edit.rhtml +7 -7
  84. data/app/views/admin/blacklist/list.rhtml +2 -2
  85. data/app/views/admin/cache/list.rhtml +2 -2
  86. data/app/views/admin/categories/_categories.rhtml +3 -3
  87. data/app/views/admin/categories/_form.rhtml +1 -1
  88. data/app/views/admin/categories/_quick_post.rhtml +5 -5
  89. data/app/views/admin/categories/destroy.rhtml +7 -7
  90. data/app/views/admin/categories/edit.rhtml +6 -6
  91. data/app/views/admin/categories/list.rhtml +7 -4
  92. data/app/views/admin/categories/reorder.rhtml +1 -1
  93. data/app/views/admin/categories/show.rhtml +6 -6
  94. data/app/views/admin/comments/_form.rhtml +4 -4
  95. data/app/views/admin/comments/comments.rhtml +1 -1
  96. data/app/views/admin/comments/destroy.rhtml +6 -6
  97. data/app/views/admin/comments/edit.rhtml +8 -8
  98. data/app/views/admin/comments/list.rhtml +11 -11
  99. data/app/views/admin/comments/new.rhtml +7 -7
  100. data/app/views/admin/comments/show.rhtml +7 -7
  101. data/app/views/admin/content/_articles.rhtml +12 -10
  102. data/app/views/admin/content/_attachment.rhtml +15 -17
  103. data/app/views/admin/content/_form.rhtml +68 -45
  104. data/app/views/admin/content/_pages.rhtml +2 -2
  105. data/app/views/admin/content/_quick_post.rhtml +6 -6
  106. data/app/views/admin/content/_show_categories.rhtml +2 -2
  107. data/app/views/admin/content/_show_resources.rhtml +2 -2
  108. data/app/views/admin/content/destroy.rhtml +8 -8
  109. data/app/views/admin/content/edit.rhtml +8 -26
  110. data/app/views/admin/content/list.rhtml +4 -4
  111. data/app/views/admin/content/new.rhtml +5 -25
  112. data/app/views/admin/content/preview.rhtml +9 -2
  113. data/app/views/admin/content/show.rhtml +10 -9
  114. data/app/views/admin/feedback/_item.rhtml +2 -2
  115. data/app/views/admin/feedback/list.rhtml +21 -20
  116. data/app/views/admin/general/index.rhtml +261 -239
  117. data/app/views/admin/general/update_database.rhtml +15 -15
  118. data/app/views/admin/pages/_form.rhtml +32 -15
  119. data/app/views/admin/pages/_pages.rhtml +9 -8
  120. data/app/views/admin/pages/_quick_post.rhtml +2 -2
  121. data/app/views/admin/pages/destroy.rhtml +7 -7
  122. data/app/views/admin/pages/edit.rhtml +7 -26
  123. data/app/views/admin/pages/list.rhtml +4 -3
  124. data/app/views/admin/pages/new.rhtml +5 -22
  125. data/app/views/admin/pages/preview.rhtml +1 -1
  126. data/app/views/admin/pages/show.rhtml +5 -5
  127. data/app/views/admin/resources/_itunes_category_edit.rhtml +2 -2
  128. data/app/views/admin/resources/_metadata_add.rhtml +13 -13
  129. data/app/views/admin/resources/_metadata_edit.rhtml +14 -14
  130. data/app/views/admin/resources/_mime_edit.rhtml +5 -5
  131. data/app/views/admin/resources/_pages.rhtml +2 -2
  132. data/app/views/admin/resources/_resources.rhtml +8 -8
  133. data/app/views/admin/resources/destroy.rhtml +7 -7
  134. data/app/views/admin/resources/list.rhtml +6 -3
  135. data/app/views/admin/resources/new.rhtml +7 -3
  136. data/app/views/admin/shared/_edit.rhtml +17 -0
  137. data/app/views/admin/sidebar/_active.rhtml +5 -5
  138. data/app/views/admin/sidebar/_availables.rhtml +1 -1
  139. data/app/views/admin/sidebar/_publish.rhtml +1 -1
  140. data/app/views/admin/sidebar/_target.rhtml +1 -1
  141. data/app/views/admin/sidebar/index.rhtml +9 -5
  142. data/app/views/admin/textfilters/_form.rhtml +13 -5
  143. data/app/views/admin/textfilters/_macros.rhtml +4 -4
  144. data/app/views/admin/textfilters/_textfilters.rhtml +6 -6
  145. data/app/views/admin/textfilters/destroy.rhtml +5 -8
  146. data/app/views/admin/textfilters/edit.rhtml +2 -5
  147. data/app/views/admin/textfilters/list.rhtml +4 -2
  148. data/app/views/admin/textfilters/macro_help.rhtml +1 -1
  149. data/app/views/admin/textfilters/new.rhtml +9 -7
  150. data/app/views/admin/textfilters/show.rhtml +5 -5
  151. data/app/views/admin/textfilters/show_help.rhtml +3 -3
  152. data/app/views/admin/themes/index.rhtml +8 -2
  153. data/app/views/admin/trackbacks/_form.rhtml +4 -4
  154. data/app/views/admin/trackbacks/destroy.rhtml +4 -4
  155. data/app/views/admin/trackbacks/edit.rhtml +6 -6
  156. data/app/views/admin/trackbacks/list.rhtml +10 -10
  157. data/app/views/admin/trackbacks/new.rhtml +6 -6
  158. data/app/views/admin/trackbacks/show.rhtml +8 -8
  159. data/app/views/admin/users/_form.rhtml +10 -10
  160. data/app/views/admin/users/_user.rhtml +6 -6
  161. data/app/views/admin/users/destroy.rhtml +7 -7
  162. data/app/views/admin/users/edit.rhtml +9 -5
  163. data/app/views/admin/users/list.rhtml +2 -2
  164. data/app/views/admin/users/new.rhtml +9 -7
  165. data/app/views/admin/users/show.rhtml +10 -10
  166. data/app/views/articles/_article.rhtml +3 -3
  167. data/app/views/articles/_comment.rhtml +3 -3
  168. data/app/views/articles/_comment_box.rhtml +6 -6
  169. data/app/views/articles/_trackback.rhtml +1 -1
  170. data/app/views/articles/archives.rhtml +3 -3
  171. data/app/views/articles/comment_preview.rhtml +2 -2
  172. data/app/views/articles/groupings.rhtml +1 -1
  173. data/app/views/articles/index.rhtml +2 -2
  174. data/app/views/articles/read.rhtml +15 -15
  175. data/app/views/articles/view_page.rhtml +1 -1
  176. data/app/views/layouts/administration.rhtml +11 -17
  177. data/app/views/layouts/minimal.rhtml +13 -0
  178. data/app/views/live/search.rhtml +1 -1
  179. data/app/views/notification_mailer/_mail_footer.rhtml +2 -2
  180. data/app/views/notification_mailer/article.rhtml +1 -1
  181. data/app/views/notification_mailer/comment.rhtml +4 -4
  182. data/app/views/settings/done.rhtml +1 -1
  183. data/app/views/settings/install.rhtml +3 -3
  184. data/app/views/shared/_search.rhtml +4 -4
  185. data/app/views/xml/_atom10_item_article.rxml +9 -7
  186. data/app/views/xml/_atom10_item_comment.rxml +2 -3
  187. data/app/views/xml/_atom10_item_trackback.rxml +1 -1
  188. data/app/views/xml/_googlesitemap_item_article.rxml +2 -2
  189. data/app/views/xml/_googlesitemap_item_category.rxml +1 -1
  190. data/app/views/xml/_googlesitemap_item_page.rxml +2 -2
  191. data/app/views/xml/_googlesitemap_item_tag.rxml +2 -2
  192. data/app/views/xml/_itunes_item_resource.rxml +2 -4
  193. data/app/views/xml/_rss20_item_article.rxml +4 -10
  194. data/app/views/xml/_rss20_item_comment.rxml +2 -2
  195. data/app/views/xml/rsd.rxml +4 -4
  196. data/bin/typo +0 -1
  197. data/config/boot.rb +4 -3
  198. data/config/environment.rb +37 -28
  199. data/config/environments/test.rb +1 -1
  200. data/config/routes.rb +6 -5
  201. data/db/migrate/051_fix_canonical_server_url.rb +17 -0
  202. data/db/migrate/052_remove_cached_html.rb +11 -0
  203. data/db/migrate/053_promote_canonical_server_url.rb +22 -0
  204. data/db/migrate/054_upgrade_sidebar_objects.rb +26 -0
  205. data/db/migrate/055_link_sidebars_to_blog.rb +17 -0
  206. data/db/migrate/056_create_notifications.rb +32 -0
  207. data/db/migrate/057_add_categorization_model.rb +45 -0
  208. data/db/migrate/058_separate_entries_and_feedback.rb +68 -0
  209. data/db/migrate/059_cleanup_feedback_table.rb +25 -0
  210. data/db/migrate/060_cleanup_contents_table.rb +29 -0
  211. data/db/migrate/061_convert_title_prefix_setting.rb +25 -0
  212. data/db/schema.mysql.sql +139 -108
  213. data/db/schema.postgresql.sql +140 -108
  214. data/db/schema.rb +97 -75
  215. data/db/schema.sqlite.sql +140 -108
  216. data/db/schema.sqlserver.sql +144 -109
  217. data/db/schema_version +1 -1
  218. data/lang/fr_FR.rb +469 -0
  219. data/lib/email_notify.rb +4 -4
  220. data/lib/generators/sidebar/sidebar_generator.rb +15 -6
  221. data/lib/generators/sidebar/templates/Rakefile +22 -0
  222. data/lib/generators/sidebar/templates/content.rhtml +10 -0
  223. data/lib/generators/sidebar/templates/init.rb +4 -0
  224. data/lib/generators/sidebar/templates/sidebar.rb +16 -0
  225. data/lib/generators/sidebar/templates/unit_test.rb +8 -0
  226. data/lib/jabber_notify.rb +8 -7
  227. data/lib/memory_profiler.rb +60 -0
  228. data/lib/rails_patch/active_record.rb +0 -27
  229. data/lib/route_cache.rb +15 -0
  230. data/lib/sidebars/component_plugin.rb +3 -0
  231. data/lib/sidebars/consolidated_plugin.rb +26 -0
  232. data/lib/sidebars/plugin.rb +8 -13
  233. data/lib/spam_protection.rb +35 -23
  234. data/lib/tasks/release.rake +7 -7
  235. data/lib/text_filter_plugin.rb +55 -15
  236. data/lib/typo_deprecated.rb +19 -0
  237. data/lib/typo_version.rb +1 -1
  238. data/public/images/bracket.gif +0 -0
  239. data/public/images/cancel.png +0 -0
  240. data/public/images/checked.png +0 -0
  241. data/public/images/delete.png +0 -0
  242. data/public/images/edit.png +0 -0
  243. data/public/images/help.png +0 -0
  244. data/public/images/show.png +0 -0
  245. data/public/javascripts/codecollapse.js +8 -0
  246. data/public/javascripts/controls.js +41 -23
  247. data/public/javascripts/dragdrop.js +105 -76
  248. data/public/javascripts/effects.js +293 -163
  249. data/public/javascripts/prototype.js +900 -391
  250. data/public/stylesheets/administration.css +390 -318
  251. data/public/stylesheets/codecollapse.css +3 -0
  252. data/public/stylesheets/minimal.css +142 -0
  253. data/public/stylesheets/textmate/dawn.css +209 -0
  254. data/public/stylesheets/textmate/iplastic.css +142 -0
  255. data/public/stylesheets/textmate/space_cadet.css +99 -0
  256. data/public/stylesheets/textmate/textmate.css +48 -0
  257. data/public/stylesheets/textmate/twilight.css +227 -0
  258. data/script/process/inspector +3 -0
  259. data/spec/controllers/accounts_controller_spec.rb +184 -0
  260. data/spec/controllers/articles_controller_spec.rb +47 -0
  261. data/spec/fixtures/articles_tags.yml +19 -0
  262. data/spec/fixtures/blacklist_patterns.yml +10 -0
  263. data/spec/fixtures/blogs.yml +77 -0
  264. data/spec/fixtures/categories.yml +35 -0
  265. data/{test/fixtures/articles_categories.yml → spec/fixtures/categorizations.yml} +0 -0
  266. data/spec/fixtures/contents.yml +215 -0
  267. data/spec/fixtures/feedback.yml +159 -0
  268. data/spec/fixtures/notifications.yml +0 -0
  269. data/spec/fixtures/page_caches.yml +7 -0
  270. data/spec/fixtures/redirects.yml +13 -0
  271. data/spec/fixtures/resources.yml +24 -0
  272. data/spec/fixtures/sidebars.yml +12 -0
  273. data/spec/fixtures/tags.yml +13 -0
  274. data/spec/fixtures/text_filters.yml +42 -0
  275. data/spec/fixtures/triggers.yml +1 -0
  276. data/spec/fixtures/users.yml +56 -0
  277. data/spec/fixtures/whiteboards.yml +13 -0
  278. data/spec/helpers/admin_base_helper_spec.rb +13 -0
  279. data/spec/models/amazon_sidebar_spec.rb +40 -0
  280. data/spec/models/audioscrobbler_spec.rb +134 -0
  281. data/spec/models/blog_spec.rb +28 -0
  282. data/spec/models/cache_support_spec.rb +55 -0
  283. data/spec/models/category_spec.rb +48 -0
  284. data/spec/models/configuration_spec.rb +108 -0
  285. data/spec/models/content_state_spec.rb +1010 -0
  286. data/spec/models/delegate_to_content_state_spec.rb +126 -0
  287. data/spec/models/delicious_spec.rb +101 -0
  288. data/spec/models/flickr_spec.rb +128 -0
  289. data/spec/models/metafragment_spec.rb +65 -0
  290. data/spec/models/page_cache_spec.rb +35 -0
  291. data/spec/models/page_spec.rb +88 -0
  292. data/spec/models/ping_spec.rb +133 -0
  293. data/spec/models/redirect_spec.rb +17 -0
  294. data/spec/models/resource_spec.rb +43 -0
  295. data/spec/models/static_sidebar_spec.rb +17 -0
  296. data/spec/models/tag_spec.rb +54 -0
  297. data/spec/models/text_filter_spec.rb +38 -0
  298. data/spec/models/theme_spec.rb +45 -0
  299. data/spec/models/trackback_spec.rb +60 -0
  300. data/spec/models/trigger_spec.rb +41 -0
  301. data/spec/models/user_spec.rb +105 -0
  302. data/test/fixtures/blogs.yml +5 -4
  303. data/test/fixtures/categorizations.yml +31 -0
  304. data/test/fixtures/contents.yml +2 -160
  305. data/test/fixtures/feedback.yml +159 -0
  306. data/test/fixtures/sidebars.yml +11 -4
  307. data/test/functional/accounts_controller_test.rb +6 -10
  308. data/test/functional/admin/article_preview_test.rb +21 -6
  309. data/test/functional/admin/blacklist_controller_test.rb +11 -11
  310. data/test/functional/admin/categories_controller_test.rb +13 -13
  311. data/test/functional/admin/comments_controller_test.rb +21 -21
  312. data/test/functional/admin/content_controller_test.rb +30 -38
  313. data/test/functional/admin/feedback_controller_test.rb +12 -12
  314. data/test/functional/admin/general_controller_test.rb +2 -2
  315. data/test/functional/admin/pages_controller_test.rb +3 -18
  316. data/test/functional/admin/resources_controller_test.rb +7 -7
  317. data/test/functional/admin/textfilters_controller_test.rb +2 -2
  318. data/test/functional/admin/themes_controller_test.rb +1 -1
  319. data/test/functional/admin/trackbacks_controller_test.rb +21 -21
  320. data/test/functional/admin/users_controller_test.rb +21 -18
  321. data/test/functional/articles_controller_test.rb +62 -46
  322. data/test/functional/backend_controller_test.rb +6 -6
  323. data/test/functional/redirect_controller_test.rb +3 -3
  324. data/test/functional/textfilter_controller_test.rb +10 -12
  325. data/test/functional/theme_controller_test.rb +1 -1
  326. data/test/functional/xml_controller_test.rb +7 -5
  327. data/test/mocks/themes/azure/layouts/default.rhtml +2 -2
  328. data/test/test_helper.rb +75 -0
  329. data/test/unit/amazon_sidebar_test.rb +36 -0
  330. data/test/unit/article_test.rb +36 -4
  331. data/test/unit/blog_test.rb +5 -36
  332. data/test/unit/cache_support_test.rb +62 -0
  333. data/test/unit/category_test.rb +6 -1
  334. data/test/unit/comment_test.rb +34 -9
  335. data/test/unit/content_state/factory_test.rb +8 -0
  336. data/test/unit/content_state/feedback_states_test.rb +71 -0
  337. data/test/unit/magnolia_test.rb +1 -1
  338. data/test/unit/notification_test.rb +10 -0
  339. data/test/unit/page_test.rb +20 -0
  340. data/test/unit/ping_test.rb +1 -1
  341. data/test/unit/sidebar_test.rb +2 -7
  342. data/test/unit/static_sidebar_test.rb +19 -0
  343. data/test/unit/tag_test.rb +6 -1
  344. data/test/unit/text_filter_test.rb +21 -21
  345. data/test/unit/theme_test.rb +1 -1
  346. data/test/unit/trackback_test.rb +16 -1
  347. data/themes/azure/layouts/default.rhtml +2 -2
  348. data/themes/scribbish/layouts/default.rhtml +2 -2
  349. data/themes/scribbish/stylesheets/content.css +6 -8
  350. data/themes/scribbish/views/articles/_article.rhtml +10 -10
  351. data/themes/scribbish/views/articles/_comment.rhtml +16 -12
  352. data/themes/scribbish/views/articles/_comment_form.rhtml +25 -22
  353. data/themes/scribbish/views/articles/_search.rhtml +14 -13
  354. data/themes/scribbish/views/articles/comment_preview.rhtml +3 -3
  355. data/themes/scribbish/views/articles/index.rhtml +1 -1
  356. data/themes/scribbish/views/articles/read.rhtml +8 -8
  357. data/vendor/cached_model/History.txt +30 -0
  358. data/vendor/cached_model/LICENSE.txt +30 -0
  359. data/vendor/cached_model/Manifest.txt +7 -0
  360. data/vendor/cached_model/README.txt +96 -0
  361. data/vendor/cached_model/Rakefile +25 -0
  362. data/vendor/cached_model/lib/cached_model.rb +287 -0
  363. data/vendor/cached_model/test/test_cached_model.rb +593 -0
  364. data/vendor/flickr/flickr.rb +1 -1
  365. data/vendor/memcache-client/History.txt +25 -0
  366. data/vendor/memcache-client/LICENSE.txt +30 -0
  367. data/vendor/memcache-client/Manifest.txt +8 -0
  368. data/vendor/memcache-client/README.txt +46 -0
  369. data/vendor/memcache-client/Rakefile +23 -0
  370. data/vendor/memcache-client/lib/memcache.rb +491 -0
  371. data/vendor/memcache-client/lib/memcache_util.rb +71 -0
  372. data/vendor/memcache-client/test/test_mem_cache.rb +284 -0
  373. data/vendor/plugins/action_view_patch/Rakefile +22 -0
  374. data/vendor/plugins/action_view_patch/init.rb +1 -0
  375. data/vendor/plugins/action_view_patch/lib/action_view_patch.rb +18 -0
  376. data/vendor/plugins/action_view_patch/test/action_view_patch_test.rb +56 -0
  377. data/vendor/plugins/aimpresence_sidebar/Rakefile +22 -0
  378. data/vendor/plugins/aimpresence_sidebar/init.rb +4 -0
  379. data/vendor/plugins/aimpresence_sidebar/lib/aimpresence_sidebar.rb +21 -0
  380. data/vendor/plugins/aimpresence_sidebar/test/aimpresence_sidebar_test.rb +33 -0
  381. data/vendor/plugins/aimpresence_sidebar/views/content.rhtml +4 -0
  382. data/vendor/plugins/amazon_sidebar/init.rb +5 -0
  383. data/vendor/plugins/amazon_sidebar/lib/amazon_sidebar.rb +16 -0
  384. data/vendor/plugins/amazon_sidebar/views/content.rhtml +4 -0
  385. data/vendor/plugins/archives_sidebar/Rakefile +22 -0
  386. data/vendor/plugins/archives_sidebar/init.rb +5 -0
  387. data/{components/plugins/sidebars/archives_controller.rb → vendor/plugins/archives_sidebar/lib/archives_sidebar.rb} +7 -6
  388. data/vendor/plugins/archives_sidebar/test/archives_sidebar_test.rb +8 -0
  389. data/{components/plugins/sidebars/archives → vendor/plugins/archives_sidebar/views}/content.rhtml +2 -2
  390. data/vendor/plugins/audioscrobbler_sidebar/Rakefile +22 -0
  391. data/vendor/plugins/audioscrobbler_sidebar/init.rb +5 -0
  392. data/{app/models/aggregations → vendor/plugins/audioscrobbler_sidebar/lib}/audioscrobbler.rb +0 -0
  393. data/{components/plugins/sidebars/audioscrobbler_controller.rb → vendor/plugins/audioscrobbler_sidebar/lib/audioscrobbler_sidebar.rb} +7 -4
  394. data/vendor/plugins/audioscrobbler_sidebar/test/audioscrobbler_sidebar_test.rb +8 -0
  395. data/{components/plugins/sidebars/audioscrobbler → vendor/plugins/audioscrobbler_sidebar/views}/content.rhtml +4 -4
  396. data/vendor/plugins/backpack_sidebar/Rakefile +22 -0
  397. data/vendor/plugins/backpack_sidebar/init.rb +5 -0
  398. data/{app/models/aggregations → vendor/plugins/backpack_sidebar/lib}/backpack.rb +0 -0
  399. data/{components/plugins/sidebars/backpack_controller.rb → vendor/plugins/backpack_sidebar/lib/backpack_sidebar.rb} +6 -3
  400. data/vendor/plugins/backpack_sidebar/test/backpack_sidebar_test.rb +8 -0
  401. data/{components/plugins/sidebars/backpack → vendor/plugins/backpack_sidebar/views}/content.rhtml +4 -4
  402. data/vendor/plugins/category_sidebar/Rakefile +22 -0
  403. data/vendor/plugins/category_sidebar/init.rb +5 -0
  404. data/{components/plugins/sidebars/category_controller.rb → vendor/plugins/category_sidebar/lib/category_sidebar.rb} +3 -5
  405. data/vendor/plugins/category_sidebar/test/category_sidebar_test.rb +8 -0
  406. data/vendor/plugins/category_sidebar/views/content.rhtml +10 -0
  407. data/vendor/plugins/delicious_sidebar/Rakefile +22 -0
  408. data/vendor/plugins/delicious_sidebar/init.rb +5 -0
  409. data/{app/models/aggregations → vendor/plugins/delicious_sidebar/lib}/delicious.rb +0 -0
  410. data/{components/plugins/sidebars/delicious_controller.rb → vendor/plugins/delicious_sidebar/lib/delicious_sidebar.rb} +16 -10
  411. data/vendor/plugins/delicious_sidebar/test/delicious_sidebar_test.rb +8 -0
  412. data/vendor/plugins/delicious_sidebar/views/content.rhtml +20 -0
  413. data/vendor/plugins/flickr_sidebar/Rakefile +22 -0
  414. data/vendor/plugins/flickr_sidebar/init.rb +5 -0
  415. data/{app/models/aggregations → vendor/plugins/flickr_sidebar/lib}/flickr.rb +1 -1
  416. data/vendor/plugins/flickr_sidebar/lib/flickr_sidebar.rb +15 -0
  417. data/vendor/plugins/flickr_sidebar/test/flickr_sidebar_test.rb +8 -0
  418. data/{components/plugins/sidebars/flickr → vendor/plugins/flickr_sidebar/views}/content.rhtml +5 -5
  419. data/vendor/plugins/fortythree_sidebar/Rakefile +22 -0
  420. data/vendor/plugins/fortythree_sidebar/init.rb +5 -0
  421. data/{app/models/aggregations → vendor/plugins/fortythree_sidebar/lib}/fortythree.rb +0 -0
  422. data/{components/plugins/sidebars/fortythree_controller.rb → vendor/plugins/fortythree_sidebar/lib/fortythree_sidebar.rb} +5 -4
  423. data/vendor/plugins/fortythree_sidebar/test/fortythree_sidebar_test.rb +8 -0
  424. data/vendor/plugins/fortythree_sidebar/views/content.rhtml +8 -0
  425. data/vendor/plugins/fortythreeplaces_sidebar/Rakefile +22 -0
  426. data/vendor/plugins/fortythreeplaces_sidebar/init.rb +5 -0
  427. data/vendor/plugins/fortythreeplaces_sidebar/lib/fortythree.rb +62 -0
  428. data/{components/plugins/sidebars/fortythreeplaces_controller.rb → vendor/plugins/fortythreeplaces_sidebar/lib/fortythreeplaces_sidebar.rb} +5 -4
  429. data/vendor/plugins/fortythreeplaces_sidebar/test/fortythreeplaces_sidebar_test.rb +8 -0
  430. data/vendor/plugins/fortythreeplaces_sidebar/views/content.rhtml +8 -0
  431. data/vendor/plugins/haml/MIT-LICENSE +20 -0
  432. data/vendor/plugins/haml/REFERENCE +662 -0
  433. data/vendor/plugins/haml/Rakefile +171 -0
  434. data/vendor/plugins/haml/VERSION +1 -0
  435. data/vendor/plugins/haml/bin/haml +18 -0
  436. data/vendor/plugins/haml/init.rb +3 -0
  437. data/vendor/plugins/haml/lib/haml/buffer.rb +224 -0
  438. data/vendor/plugins/haml/lib/haml/engine.rb +557 -0
  439. data/vendor/plugins/haml/lib/haml/helpers.rb +220 -0
  440. data/vendor/plugins/haml/lib/haml/helpers/action_view_mods.rb +54 -0
  441. data/vendor/plugins/haml/lib/haml/template.rb +138 -0
  442. data/vendor/plugins/haml/test/benchmark.rb +62 -0
  443. data/vendor/plugins/haml/test/engine_test.rb +93 -0
  444. data/vendor/plugins/haml/test/helper_test.rb +105 -0
  445. data/vendor/plugins/haml/test/mocks/article.rb +6 -0
  446. data/vendor/plugins/haml/test/profile.rb +45 -0
  447. data/vendor/plugins/haml/test/results/content_for_layout.xhtml +16 -0
  448. data/vendor/plugins/haml/test/results/eval_suppressed.xhtml +2 -0
  449. data/vendor/plugins/haml/test/results/helpers.xhtml +50 -0
  450. data/vendor/plugins/haml/test/results/helpful.xhtml +5 -0
  451. data/vendor/plugins/haml/test/results/just_stuff.xhtml +38 -0
  452. data/vendor/plugins/haml/test/results/list.xhtml +12 -0
  453. data/vendor/plugins/haml/test/results/original_engine.xhtml +24 -0
  454. data/vendor/plugins/haml/test/results/partials.xhtml +20 -0
  455. data/vendor/plugins/haml/test/results/silent_script.xhtml +74 -0
  456. data/vendor/plugins/haml/test/results/standard.xhtml +42 -0
  457. data/vendor/plugins/haml/test/results/tag_parsing.xhtml +28 -0
  458. data/vendor/plugins/haml/test/results/very_basic.xhtml +7 -0
  459. data/vendor/plugins/haml/test/results/whitespace_handling.xhtml +51 -0
  460. data/vendor/plugins/haml/test/rhtml/standard.rhtml +51 -0
  461. data/vendor/plugins/haml/test/runner.rb +15 -0
  462. data/vendor/plugins/haml/test/template_test.rb +137 -0
  463. data/vendor/plugins/haml/test/templates/_partial.haml +7 -0
  464. data/vendor/plugins/haml/test/templates/_text_area.haml +3 -0
  465. data/vendor/plugins/haml/test/templates/content_for_layout.haml +10 -0
  466. data/vendor/plugins/haml/test/templates/eval_suppressed.haml +5 -0
  467. data/vendor/plugins/haml/test/templates/helpers.haml +39 -0
  468. data/vendor/plugins/haml/test/templates/helpful.haml +6 -0
  469. data/vendor/plugins/haml/test/templates/just_stuff.haml +34 -0
  470. data/vendor/plugins/haml/test/templates/list.haml +12 -0
  471. data/vendor/plugins/haml/test/templates/original_engine.haml +17 -0
  472. data/vendor/plugins/haml/test/templates/partialize.haml +1 -0
  473. data/vendor/plugins/haml/test/templates/partials.haml +12 -0
  474. data/vendor/plugins/haml/test/templates/silent_script.haml +40 -0
  475. data/vendor/plugins/haml/test/templates/standard.haml +40 -0
  476. data/vendor/plugins/haml/test/templates/tag_parsing.haml +24 -0
  477. data/vendor/plugins/haml/test/templates/very_basic.haml +4 -0
  478. data/vendor/plugins/haml/test/templates/whitespace_handling.haml +66 -0
  479. data/vendor/plugins/localization/CHANGELOG +1 -0
  480. data/vendor/plugins/localization/README +85 -0
  481. data/vendor/plugins/localization/init.rb +3 -0
  482. data/vendor/plugins/localization/lib/localization.rb +46 -0
  483. data/vendor/plugins/magnolia_sidebar/Rakefile +22 -0
  484. data/vendor/plugins/magnolia_sidebar/init.rb +5 -0
  485. data/{app/models/aggregations/magnolia.rb → vendor/plugins/magnolia_sidebar/lib/magnolia_aggregation.rb} +0 -0
  486. data/vendor/plugins/magnolia_sidebar/lib/magnolia_sidebar.rb +16 -0
  487. data/vendor/plugins/magnolia_sidebar/test/magnolia_sidebar_test.rb +8 -0
  488. data/vendor/plugins/magnolia_sidebar/views/content.rhtml +12 -0
  489. data/vendor/plugins/recent_comments_sidebar/Rakefile +22 -0
  490. data/vendor/plugins/recent_comments_sidebar/init.rb +5 -0
  491. data/vendor/plugins/recent_comments_sidebar/lib/recent_comments_sidebar.rb +16 -0
  492. data/vendor/plugins/recent_comments_sidebar/test/recent_comments_sidebar_test.rb +8 -0
  493. data/{components/plugins/sidebars/recent_comments → vendor/plugins/recent_comments_sidebar/views}/content.rhtml +2 -2
  494. data/vendor/plugins/static_sidebar/init.rb +4 -0
  495. data/{components/plugins/sidebars/static_controller.rb → vendor/plugins/static_sidebar/lib/static_sidebar.rb} +4 -7
  496. data/vendor/plugins/static_sidebar/views/content.rhtml +2 -0
  497. data/vendor/plugins/tada_sidebar/Rakefile +22 -0
  498. data/vendor/plugins/tada_sidebar/init.rb +5 -0
  499. data/{app/models/aggregations → vendor/plugins/tada_sidebar/lib}/tada.rb +0 -0
  500. data/{components/plugins/sidebars/tada_controller.rb → vendor/plugins/tada_sidebar/lib/tada_sidebar.rb} +8 -4
  501. data/vendor/plugins/tada_sidebar/test/tada_sidebar_test.rb +8 -0
  502. data/{components/plugins/sidebars/tada → vendor/plugins/tada_sidebar/views}/content.rhtml +4 -4
  503. data/vendor/plugins/tag_sidebar/Rakefile +22 -0
  504. data/vendor/plugins/tag_sidebar/init.rb +5 -0
  505. data/vendor/plugins/tag_sidebar/lib/tag_sidebar.rb +24 -0
  506. data/vendor/plugins/tag_sidebar/test/tag_sidebar_test.rb +8 -0
  507. data/vendor/plugins/tag_sidebar/views/content.rhtml +8 -0
  508. data/vendor/plugins/technorati_sidebar/Rakefile +22 -0
  509. data/vendor/plugins/technorati_sidebar/init.rb +5 -0
  510. data/{app/models/aggregations → vendor/plugins/technorati_sidebar/lib}/technorati.rb +0 -0
  511. data/{components/plugins/sidebars/technorati_controller.rb → vendor/plugins/technorati_sidebar/lib/technorati_sidebar.rb} +8 -4
  512. data/vendor/plugins/technorati_sidebar/test/technorati_sidebar_test.rb +8 -0
  513. data/vendor/plugins/technorati_sidebar/views/content.rhtml +8 -0
  514. data/vendor/plugins/typo_textfilter_amazon/README +5 -0
  515. data/vendor/plugins/typo_textfilter_amazon/Rakefile +22 -0
  516. data/vendor/plugins/typo_textfilter_amazon/init.rb +4 -0
  517. data/vendor/plugins/typo_textfilter_amazon/install.rb +1 -0
  518. data/vendor/plugins/typo_textfilter_amazon/lib/typo_textfilter_amazon.rb +45 -0
  519. data/vendor/plugins/typo_textfilter_amazon/tasks/typo_textfilter_amazon_tasks.rake +4 -0
  520. data/vendor/plugins/typo_textfilter_amazon/test/typo_textfilter_amazon_test.rb +8 -0
  521. data/vendor/plugins/typo_textfilter_code/README +4 -0
  522. data/vendor/plugins/typo_textfilter_code/Rakefile +22 -0
  523. data/vendor/plugins/typo_textfilter_code/init.rb +4 -0
  524. data/vendor/plugins/typo_textfilter_code/install.rb +1 -0
  525. data/vendor/plugins/typo_textfilter_code/lib/typo_textfilter_code.rb +62 -0
  526. data/vendor/plugins/typo_textfilter_code/tasks/typo_textfilter_code_tasks.rake +4 -0
  527. data/vendor/plugins/typo_textfilter_code/test/typo_textfilter_code_test.rb +8 -0
  528. data/vendor/plugins/typo_textfilter_flickr/README +4 -0
  529. data/vendor/plugins/typo_textfilter_flickr/Rakefile +22 -0
  530. data/vendor/plugins/typo_textfilter_flickr/init.rb +4 -0
  531. data/vendor/plugins/typo_textfilter_flickr/install.rb +1 -0
  532. data/vendor/plugins/typo_textfilter_flickr/lib/typo_textfilter_flickr.rb +79 -0
  533. data/vendor/plugins/typo_textfilter_flickr/tasks/typo_textfilter_flickr_tasks.rake +4 -0
  534. data/vendor/plugins/typo_textfilter_flickr/test/typo_textfilter_flickr_test.rb +8 -0
  535. data/vendor/plugins/typo_textfilter_htmlfilter/README +4 -0
  536. data/vendor/plugins/typo_textfilter_htmlfilter/Rakefile +22 -0
  537. data/vendor/plugins/typo_textfilter_htmlfilter/init.rb +2 -0
  538. data/vendor/plugins/typo_textfilter_htmlfilter/install.rb +1 -0
  539. data/vendor/plugins/typo_textfilter_htmlfilter/lib/typo_textfilter_htmlfilter.rb +12 -0
  540. data/vendor/plugins/typo_textfilter_htmlfilter/tasks/typo_textfilter_htmlfilter_tasks.rake +4 -0
  541. data/vendor/plugins/typo_textfilter_htmlfilter/test/typo_textfilter_htmlfilter_test.rb +8 -0
  542. data/vendor/plugins/typo_textfilter_lightbox/README +4 -0
  543. data/vendor/plugins/typo_textfilter_lightbox/Rakefile +22 -0
  544. data/vendor/plugins/typo_textfilter_lightbox/init.rb +2 -0
  545. data/vendor/plugins/typo_textfilter_lightbox/install.rb +1 -0
  546. data/{components/plugins/textfilters/lightbox_controller.rb → vendor/plugins/typo_textfilter_lightbox/lib/typo_textfilter_lightbox.rb} +64 -61
  547. data/vendor/plugins/typo_textfilter_lightbox/tasks/typo_textfilter_lightbox_tasks.rake +4 -0
  548. data/vendor/plugins/typo_textfilter_lightbox/test/typo_textfilter_lightbox_test.rb +8 -0
  549. data/vendor/plugins/typo_textfilter_markdown/README +4 -0
  550. data/vendor/plugins/typo_textfilter_markdown/Rakefile +22 -0
  551. data/vendor/plugins/typo_textfilter_markdown/init.rb +2 -0
  552. data/vendor/plugins/typo_textfilter_markdown/install.rb +1 -0
  553. data/{components/plugins/textfilters/markdown_controller.rb → vendor/plugins/typo_textfilter_markdown/lib/typo_textfilter_markdown.rb} +13 -9
  554. data/vendor/plugins/typo_textfilter_markdown/tasks/typo_textfilter_markdown_tasks.rake +4 -0
  555. data/vendor/plugins/typo_textfilter_markdown/test/typo_textfilter_markdown_test.rb +8 -0
  556. data/vendor/plugins/typo_textfilter_none/README +4 -0
  557. data/vendor/plugins/typo_textfilter_none/Rakefile +22 -0
  558. data/vendor/plugins/typo_textfilter_none/init.rb +2 -0
  559. data/vendor/plugins/typo_textfilter_none/install.rb +1 -0
  560. data/vendor/plugins/typo_textfilter_none/lib/typo_textfilter_none.rb +12 -0
  561. data/vendor/plugins/typo_textfilter_none/tasks/typo_textfilter_none_tasks.rake +4 -0
  562. data/vendor/plugins/typo_textfilter_none/test/typo_textfilter_none_test.rb +8 -0
  563. data/vendor/plugins/typo_textfilter_smartypants/README +4 -0
  564. data/vendor/plugins/typo_textfilter_smartypants/Rakefile +22 -0
  565. data/vendor/plugins/typo_textfilter_smartypants/init.rb +2 -0
  566. data/vendor/plugins/typo_textfilter_smartypants/install.rb +1 -0
  567. data/vendor/plugins/typo_textfilter_smartypants/lib/typo_textfilter_smartypants.rb +12 -0
  568. data/vendor/plugins/typo_textfilter_smartypants/tasks/typo_textfilter_smartypants_tasks.rake +4 -0
  569. data/vendor/plugins/typo_textfilter_smartypants/test/typo_textfilter_smartypants_test.rb +8 -0
  570. data/vendor/plugins/typo_textfilter_sparkline/README +4 -0
  571. data/vendor/plugins/typo_textfilter_sparkline/Rakefile +22 -0
  572. data/vendor/plugins/typo_textfilter_sparkline/init.rb +2 -0
  573. data/vendor/plugins/typo_textfilter_sparkline/install.rb +1 -0
  574. data/vendor/plugins/typo_textfilter_sparkline/lib/typo_textfilter_sparkline.rb +92 -0
  575. data/vendor/plugins/typo_textfilter_sparkline/tasks/typo_textfilter_sparkline_tasks.rake +4 -0
  576. data/vendor/plugins/typo_textfilter_sparkline/test/typo_textfilter_sparkline_test.rb +8 -0
  577. data/vendor/plugins/typo_textfilter_textile/README +4 -0
  578. data/vendor/plugins/typo_textfilter_textile/Rakefile +22 -0
  579. data/vendor/plugins/typo_textfilter_textile/init.rb +2 -0
  580. data/vendor/plugins/typo_textfilter_textile/install.rb +1 -0
  581. data/vendor/plugins/typo_textfilter_textile/lib/typo_textfilter_textile.rb +18 -0
  582. data/vendor/plugins/typo_textfilter_textile/tasks/typo_textfilter_textile_tasks.rake +4 -0
  583. data/vendor/plugins/typo_textfilter_textile/test/typo_textfilter_textile_test.rb +8 -0
  584. data/vendor/plugins/typo_textfilter_textile_and_markdown/README +4 -0
  585. data/vendor/plugins/typo_textfilter_textile_and_markdown/Rakefile +22 -0
  586. data/vendor/plugins/typo_textfilter_textile_and_markdown/init.rb +2 -0
  587. data/vendor/plugins/typo_textfilter_textile_and_markdown/install.rb +1 -0
  588. data/vendor/plugins/typo_textfilter_textile_and_markdown/lib/typo_textfilter_textile_and_markdown.rb +12 -0
  589. data/vendor/plugins/typo_textfilter_textile_and_markdown/tasks/typo_textfilter_textile_and_markdown_tasks.rake +4 -0
  590. data/vendor/plugins/typo_textfilter_textile_and_markdown/test/typo_textfilter_textile_and_markdown_test.rb +8 -0
  591. data/vendor/plugins/typo_textfilter_tmcode/README +4 -0
  592. data/vendor/plugins/typo_textfilter_tmcode/Rakefile +22 -0
  593. data/vendor/plugins/typo_textfilter_tmcode/init.rb +3 -0
  594. data/vendor/plugins/typo_textfilter_tmcode/install.rb +1 -0
  595. data/vendor/plugins/typo_textfilter_tmcode/lib/typo_textfilter_tmcode.rb +86 -0
  596. data/vendor/plugins/typo_textfilter_tmcode/tasks/typo_textfilter_tmcode_tasks.rake +4 -0
  597. data/vendor/plugins/typo_textfilter_tmcode/test/typo_textfilter_tmcode_test.rb +8 -0
  598. data/vendor/plugins/upcoming_sidebar/Rakefile +22 -0
  599. data/vendor/plugins/upcoming_sidebar/init.rb +5 -0
  600. data/{app/models/aggregations → vendor/plugins/upcoming_sidebar/lib}/upcoming.rb +0 -0
  601. data/vendor/plugins/upcoming_sidebar/lib/upcoming_sidebar.rb +15 -0
  602. data/vendor/plugins/upcoming_sidebar/test/upcoming_sidebar_test.rb +8 -0
  603. data/{components/plugins/sidebars/upcoming → vendor/plugins/upcoming_sidebar/views}/content.rhtml +3 -3
  604. data/vendor/plugins/xbox_sidebar/Rakefile +22 -0
  605. data/vendor/plugins/xbox_sidebar/init.rb +5 -0
  606. data/{components/plugins/sidebars/xbox_controller.rb → vendor/plugins/xbox_sidebar/lib/xbox_sidebar.rb} +1 -1
  607. data/vendor/plugins/xbox_sidebar/test/xbox_sidebar_test.rb +8 -0
  608. data/vendor/plugins/xbox_sidebar/views/content.rhtml +2 -0
  609. data/vendor/plugins/xml_sidebar/Rakefile +22 -0
  610. data/vendor/plugins/xml_sidebar/init.rb +5 -0
  611. data/{components/plugins/sidebars/xml_controller.rb → vendor/plugins/xml_sidebar/lib/xml_sidebar.rb} +1 -1
  612. data/vendor/plugins/xml_sidebar/test/xml_sidebar_test.rb +8 -0
  613. data/vendor/plugins/xml_sidebar/views/content.rhtml +12 -0
  614. metadata +505 -101
  615. data/app/controllers/sidebar_controller.rb +0 -50
  616. data/app/models/content_observer.rb +0 -5
  617. data/components/plugins/sidebars/aimpresence/content.rhtml +0 -4
  618. data/components/plugins/sidebars/aimpresence_controller.rb +0 -10
  619. data/components/plugins/sidebars/amazon/content.rhtml +0 -4
  620. data/components/plugins/sidebars/amazon_controller.rb +0 -17
  621. data/components/plugins/sidebars/category/content.rhtml +0 -10
  622. data/components/plugins/sidebars/delicious/content.rhtml +0 -20
  623. data/components/plugins/sidebars/flickr_controller.rb +0 -16
  624. data/components/plugins/sidebars/fortythree/content.rhtml +0 -8
  625. data/components/plugins/sidebars/fortythreeplaces/content.rhtml +0 -8
  626. data/components/plugins/sidebars/magnolia/content.rhtml +0 -12
  627. data/components/plugins/sidebars/magnolia_controller.rb +0 -17
  628. data/components/plugins/sidebars/recent_comments_controller.rb +0 -23
  629. data/components/plugins/sidebars/static/content.rhtml +0 -2
  630. data/components/plugins/sidebars/tag/content.rhtml +0 -8
  631. data/components/plugins/sidebars/tag_controller.rb +0 -18
  632. data/components/plugins/sidebars/technorati/content.rhtml +0 -8
  633. data/components/plugins/sidebars/upcoming_controller.rb +0 -11
  634. data/components/plugins/sidebars/xbox/content.rhtml +0 -2
  635. data/components/plugins/sidebars/xml/content.rhtml +0 -12
  636. data/components/plugins/textfilters/amazon_controller.rb +0 -39
  637. data/components/plugins/textfilters/code_controller.rb +0 -59
  638. data/components/plugins/textfilters/flickr_controller.rb +0 -75
  639. data/components/plugins/textfilters/htmlfilter_controller.rb +0 -8
  640. data/components/plugins/textfilters/macropost_controller.rb +0 -14
  641. data/components/plugins/textfilters/macropre_controller.rb +0 -14
  642. data/components/plugins/textfilters/none_controller.rb +0 -8
  643. data/components/plugins/textfilters/smartypants_controller.rb +0 -8
  644. data/components/plugins/textfilters/sparkline_controller.rb +0 -88
  645. data/components/plugins/textfilters/textile_and_markdown_controller.rb +0 -8
  646. data/components/plugins/textfilters/textile_controller.rb +0 -14
  647. data/db/schema.mysql-v3.sql +0 -218
  648. data/lib/generators/sidebar/templates/components/plugins/sidebars/controller_template.rb +0 -20
  649. data/lib/generators/sidebar/templates/components/plugins/sidebars/views/content_template.rhtml +0 -4
  650. data/lib/rails_patch/components.rb +0 -14
  651. data/public/images/checked.gif +0 -0
  652. data/test/unit/observer_test.rb +0 -40
@@ -17,31 +17,31 @@ class Admin::UsersControllerTest < Test::Unit::TestCase
17
17
 
18
18
  def test_index
19
19
  get :index
20
- assert_rendered_file 'list'
20
+ assert_template 'list'
21
21
  assert_template_has 'users'
22
22
  end
23
23
 
24
24
  def test_list
25
25
  get :list
26
- assert_rendered_file 'list'
26
+ assert_template 'list'
27
27
  assert_template_has 'users'
28
28
  end
29
29
 
30
30
  def test_new
31
31
  get :new
32
- assert_rendered_file 'new'
32
+ assert_template 'new'
33
33
 
34
34
  post :new, :user => { :login => 'errand', :email => 'corey@test.com',
35
35
  :password => 'testpass', :password_confirmation => 'testpass' }
36
- assert_redirected_to :action => 'list'
36
+ assert_response :redirect, :action => 'list'
37
37
  follow_redirect
38
- assert_rendered_file 'list'
38
+ assert_template 'list'
39
39
  end
40
40
 
41
41
  def test_show
42
42
  get :show, :id => 1
43
- assert_rendered_file 'show'
44
- assert_valid_record 'user'
43
+ assert_template 'show'
44
+ assert_valid assigns(:user)
45
45
 
46
46
  assert_template_has 'user'
47
47
  assert_template_has 'articles'
@@ -49,27 +49,30 @@ class Admin::UsersControllerTest < Test::Unit::TestCase
49
49
 
50
50
  def test_edit
51
51
  get :edit, :id => 1
52
- assert_rendered_file 'edit'
53
- assert_valid_record 'user'
52
+ assert_template 'edit'
53
+ assert_valid assigns(:user)
54
54
 
55
55
  post :edit, :id => 1, :user => { :login => 'errand',
56
56
  :email => 'corey@test.com', :password => 'testpass',
57
57
  :password_confirmation => 'testpass' }
58
- assert_redirected_to :action => 'show'
58
+ assert_response :redirect, :action => 'show'
59
59
  follow_redirect
60
- assert_rendered_file 'show'
61
- assert_valid_record 'user'
60
+ assert_template 'show'
61
+ assert_valid assigns(:user)
62
62
  end
63
63
 
64
64
  def test_destroy
65
- get :destroy, :id => 1
66
- assert_rendered_file 'destroy'
67
- assert_valid_record 'user'
65
+ user_count = User.count
66
+ get :destroy, :id => users(:bob).id
67
+ assert_template 'destroy'
68
+ assert_valid assigns(:user)
68
69
 
69
- post :destroy, :id => 1
70
- assert_redirected_to :action => 'list'
70
+ assert_equal user_count, User.count
71
+ post :destroy, :id => users(:bob).id
72
+ assert_response :redirect, :action => 'list'
71
73
  follow_redirect
72
- assert_rendered_file 'list'
74
+ assert_template 'list'
75
+ assert_equal user_count - 1, User.count
73
76
  end
74
77
 
75
78
  end
@@ -17,7 +17,7 @@ class Content
17
17
  end
18
18
 
19
19
  class ArticlesControllerTest < Test::Unit::TestCase
20
- fixtures :contents, :categories, :blogs, :users, :articles_categories, :text_filters, :articles_tags, :tags
20
+ fixtures :contents, :feedback, :categories, :blogs, :users, :categorizations, :text_filters, :articles_tags, :tags
21
21
  include ArticlesHelper
22
22
 
23
23
  def setup
@@ -28,7 +28,7 @@ class ArticlesControllerTest < Test::Unit::TestCase
28
28
  :body => "The future is cool!",
29
29
  :keywords => "future",
30
30
  :created_at => Time.now + 12.minutes)
31
-
31
+ Sidebar.delete_all
32
32
  end
33
33
 
34
34
  # Category subpages
@@ -36,35 +36,35 @@ class ArticlesControllerTest < Test::Unit::TestCase
36
36
  get :category, :id => "software"
37
37
 
38
38
  assert_response :success
39
- assert_rendered_file "index"
40
- assert_tag :tag => 'title', :content => 'test blog - category software'
39
+ assert_template "index"
40
+ assert_tag :tag => 'title', :content => 'test blog : category software'
41
41
 
42
42
  # Check it works when permalink != name. Ticket #736
43
43
  get :category, :id => "weird-permalink"
44
44
 
45
45
  assert_response :success
46
- assert_rendered_file "index"
46
+ assert_template "index"
47
47
  end
48
48
 
49
49
  def test_empty_category
50
50
  get :category, :id => "life-on-mars"
51
51
  assert_response :success
52
- assert_rendered_file "error"
52
+ assert_template "error"
53
53
  end
54
54
 
55
55
  def test_nonexistent_category
56
56
  get :category, :id => 'nonexistent-category'
57
57
  assert_response :success
58
- assert_rendered_file "error"
58
+ assert_template "error"
59
59
  end
60
60
 
61
61
  def test_tag
62
62
  get :tag, :id => "foo"
63
63
 
64
64
  assert_response :success
65
- assert_rendered_file "index"
65
+ assert_template "index"
66
66
 
67
- assert_tag :tag => 'title', :content => 'test blog - tag foo'
67
+ assert_tag :tag => 'title', :content => 'test blog : tag foo'
68
68
  assert_tag :tag => 'h2', :content => 'Article 2!'
69
69
  assert_tag :tag => 'h2', :content => 'Article 1!'
70
70
  end
@@ -72,7 +72,7 @@ class ArticlesControllerTest < Test::Unit::TestCase
72
72
  def test_nonexistent_tag
73
73
  get :tag, :id => "nonexistent"
74
74
  assert_response :success
75
- assert_rendered_file "error"
75
+ assert_template "error"
76
76
  end
77
77
 
78
78
  def test_tag_routes
@@ -85,9 +85,8 @@ class ArticlesControllerTest < Test::Unit::TestCase
85
85
  get :tag, :id => "foo"
86
86
  assert_equal 1, assigns(:articles).size
87
87
  assert_tag(:tag => 'p',
88
- :attributes =>{
89
- :id => 'pagination'},
90
- :content => 'Older posts: 1',
88
+ :attributes =>{ :id => 'pagination' },
89
+ :content => %r{Older posts: 1},
91
90
  :descendant => {:tag => 'a',
92
91
  :attributes =>{
93
92
  :href => "/articles/tag/foo/page/2"},
@@ -98,27 +97,28 @@ class ArticlesControllerTest < Test::Unit::TestCase
98
97
  def test_index
99
98
  get :index
100
99
  assert_response :success
101
- assert_rendered_file "index"
100
+ assert_template "index"
102
101
  end
103
102
 
104
103
  # Archives page
105
104
  def test_archives
106
105
  get :archives
107
106
  assert_response :success
108
- assert_rendered_file "archives"
107
+ assert_template "archives"
109
108
  end
110
-
109
+
111
110
  def test_blog_title
112
- blogs(:default).title_prefix = true
111
+ blogs(:default).title_prefix = 1
113
112
  get :permalink, :year => 2004, :month => 06, :day => 01, :title => "article-3"
114
113
  assert_response :success
115
114
  assert_tag :tag => 'title', :content => /^test blog : Article 3!$/
116
-
117
- blogs(:default).title_prefix = false
115
+
116
+ blogs(:default).title_prefix = 0
117
+ @controller = ArticlesController.new
118
+ assert_equal 0, blogs(:default).title_prefix
118
119
  get :permalink, :year => 2004, :month => 06, :day => 01, :title => "article-3"
119
120
  assert_response :success
120
121
  assert_tag :tag => 'title', :content => /^Article 3!$/
121
-
122
122
  end
123
123
 
124
124
  # Permalinks
@@ -129,12 +129,12 @@ class ArticlesControllerTest < Test::Unit::TestCase
129
129
  assert_not_nil assigns(:article)
130
130
  assert_equal contents(:article3), assigns(:article)
131
131
  end
132
-
132
+
133
133
  # Posts for given day
134
134
  def test_find_by_date
135
135
  get :find_by_date, :year => 2004, :month => 06, :day => 01
136
136
  assert_response :success
137
- assert_rendered_file "index"
137
+ assert_template "index"
138
138
  end
139
139
 
140
140
  def test_comment_posting
@@ -145,18 +145,19 @@ class ArticlesControllerTest < Test::Unit::TestCase
145
145
 
146
146
  Article.find(1).notify_users << users(:tobi)
147
147
 
148
- post :comment, { :id => 1, :comment => {'body' => 'This is *textile*', 'author' => 'bob' }}
148
+ post :comment, { :id => 1, :comment => {'body' => 'This is *markdown*', 'author' => 'bob' }}
149
149
 
150
150
  assert_response :success
151
- assert_tag :tag => 'strong', :content => 'textile'
151
+ assert_tag :tag => 'em', :content => 'markdown'
152
152
 
153
153
  comment = Article.find(1).comments.last
154
154
  assert comment
155
155
 
156
156
  assert_not_nil cookies["author"]
157
157
 
158
- assert_equal "<p>This is <strong>textile</strong></p>", comment.html(@controller).to_s
158
+ assert_equal "<p>This is <em>markdown</em></p>", comment.html.to_s
159
159
 
160
+ assert_equal 2, emails.size
160
161
  assert_equal User.find(:all,
161
162
  :conditions => ['(notify_via_email = ?) and (notify_on_comments = ?)', true, true],
162
163
  :order => 'email').collect { |each| each.email },
@@ -181,7 +182,7 @@ class ArticlesControllerTest < Test::Unit::TestCase
181
182
  comment = Article.find(art_id).comments.last
182
183
  assert comment
183
184
 
184
- assert_match expected_html, comment.html(@controller).to_s
185
+ assert_match expected_html, comment.html.to_s
185
186
  $do_breakpoints
186
187
  end
187
188
 
@@ -190,7 +191,22 @@ class ArticlesControllerTest < Test::Unit::TestCase
190
191
  end
191
192
 
192
193
  def test_comment_spam2
193
- comment_template_test %r{<p>Link to <a href=["']http://spammer.example.com['"] rel=["']nofollow['"]>spammy goodness</a></p>}, 'Link to "spammy goodness":http://spammer.example.com'
194
+ comment_template_test %r{<p>Link to <a href=["']http://spammer.example.com['"] rel=["']nofollow['"]>spammy goodness</a></p>}, 'Link to [spammy goodness](http://spammer.example.com)'
195
+ end
196
+
197
+ def test_comment_spam3
198
+ post :comment, :id => 1, :comment => {:body => '<a href="http://spam.org">spam</a>', :author => '<a href="spamme.com">spamme</a>', :email => '<a href="http://morespam.net">foo</a>'}
199
+
200
+ assert_response :success
201
+ comment = Article.find(1).comments.last
202
+ assert comment
203
+
204
+ get :read, :id => 1
205
+ assert_response 200
206
+
207
+ assert ! (@response.body =~ %r{<a href="http://spamme.com">}), "Author leaks"
208
+ assert ! (@response.body =~ %r{<a href="http://spam.org">}), "Body leaks <a>"
209
+ assert ! (@response.body =~ %r{<a href="http://morespam.net">}), "Email leaks"
194
210
  end
195
211
 
196
212
  def test_comment_xss1
@@ -205,8 +221,8 @@ class ArticlesControllerTest < Test::Unit::TestCase
205
221
  end
206
222
 
207
223
  def test_comment_autolink
208
- comment_template_test "<p>What&#8217;s up with <a href=\"http://slashdot.org\" rel=\"nofollow\">http://slashdot.org</a> these days?</p>", "What's up with http://slashdot.org these days?"
209
- end #"
224
+ comment_template_test "<p>What's up with <a href=\"http://slashdot.org\" rel=\"nofollow\">http://slashdot.org</a> these days?</p>", "What's up with http://slashdot.org these days\?"
225
+ end
210
226
 
211
227
  ### TODO -- there's a bug in Rails with auto_links
212
228
  # def test_comment_autolink2
@@ -215,13 +231,13 @@ class ArticlesControllerTest < Test::Unit::TestCase
215
231
 
216
232
  def test_comment_nuking
217
233
  num_comments = Comment.count
218
- post :nuke_comment, { :id => 5 }, {}
234
+ post :nuke_comment, { :id => feedback(:spam_comment).id }, {}
219
235
  assert_response 403
220
236
 
221
- get :nuke_comment, { :id => 5 }, { :user => users(:bob)}
237
+ get :nuke_comment, { :id => feedback(:spam_comment).id }, { :user => users(:bob)}
222
238
  assert_response 403
223
239
 
224
- post :nuke_comment, { :id => 5 }, { :user => users(:bob)}
240
+ post :nuke_comment, { :id => feedback(:spam_comment).id }, { :user => users(:bob)}
225
241
  assert_response :success
226
242
  assert_equal num_comments -1, Comment.count
227
243
  end
@@ -261,7 +277,8 @@ class ArticlesControllerTest < Test::Unit::TestCase
261
277
  num_trackbacks = Article.find(2).trackbacks.count
262
278
  post :trackback, { :id => 2, :url => "http://www.google.com", :title => "My Trackback", :excerpt => "This is a test" }
263
279
  assert_response :success
264
- assert_not_xpath(%{/response/error[text()="1"]}, "Error: " + get_xpath("/response/message/text()").first.to_s)
280
+ assert_no_tag :tag => "response",
281
+ :child => {:tag => "error", :content => "1"}
265
282
 
266
283
  assert_equal num_trackbacks+1, Article.find(2).trackbacks.count
267
284
  end
@@ -285,9 +302,8 @@ class ArticlesControllerTest < Test::Unit::TestCase
285
302
 
286
303
  get :index
287
304
 
288
- assert_redirect
289
- assert_redirected_to :controller => "admin/general", :action => "redirect"
290
-
305
+ assert_response :redirect,
306
+ :controller => "admin/general", :action => "redirect"
291
307
  end
292
308
 
293
309
  def test_no_users_exist
@@ -297,15 +313,14 @@ class ArticlesControllerTest < Test::Unit::TestCase
297
313
  assert User.count.zero?
298
314
 
299
315
  get :index
300
- assert_redirect
301
- assert_redirected_to :controller => "accounts", :action => "signup"
316
+ assert_response :redirect, :controller => "accounts", :action => "signup"
302
317
 
303
318
  end
304
319
 
305
320
  def test_pages_static
306
321
  get :view_page, :name => 'page_one'
307
322
  assert_response :success
308
- assert_rendered_file "view_page"
323
+ assert_template "view_page"
309
324
 
310
325
  get :view_page, :name => 'page one'
311
326
  assert_response 404
@@ -334,6 +349,7 @@ class ArticlesControllerTest < Test::Unit::TestCase
334
349
 
335
350
  # Switch gravatar integration to on
336
351
  this_blog.use_gravatar = true
352
+ @controller = ArticlesController.new
337
353
  assert this_blog.use_gravatar
338
354
  get :read, :id => 1
339
355
  assert_response :success
@@ -367,7 +383,7 @@ class ArticlesControllerTest < Test::Unit::TestCase
367
383
  get :read, :id => contents(:article1).id
368
384
  assert_response :success
369
385
  assert_template "read"
370
-
386
+
371
387
  assert_equal contents(:article1).comments.to_a.select{|c| c.published?}, contents(:article1).published_comments
372
388
 
373
389
  assert_tag :tag => "ol",
@@ -509,8 +525,8 @@ class ArticlesControllerTest < Test::Unit::TestCase
509
525
  def test_author
510
526
  get :author, :id => 'tobi'
511
527
 
512
- assert_success
513
- assert_rendered_file 'index'
528
+ assert_response :success
529
+ assert_template 'index'
514
530
  assert assigns(:articles)
515
531
  assert_equal users(:tobi).articles.published, assigns(:articles)
516
532
  # This is until we write a proper author feed
@@ -521,8 +537,8 @@ class ArticlesControllerTest < Test::Unit::TestCase
521
537
  def test_nonexistent_author
522
538
  get :author, :id => 'nonexistent-chap'
523
539
 
524
- assert_success
525
- assert_rendered_file 'error'
540
+ assert_response :success
541
+ assert_template 'error'
526
542
  assert assigns(:message)
527
543
  assert_equal "Can't find posts with author 'nonexistent-chap'", assigns(:message)
528
544
  end
@@ -530,8 +546,8 @@ class ArticlesControllerTest < Test::Unit::TestCase
530
546
  def test_author_list
531
547
  get :author
532
548
 
533
- assert_success
534
- assert_rendered_file 'groupings'
549
+ assert_response :success
550
+ assert_template 'groupings'
535
551
 
536
552
  assert_tag(:tag => 'ul',
537
553
  :descendant => {\
@@ -8,7 +8,7 @@ require 'base64'
8
8
  class BackendController; def rescue_action(e) raise e end; end
9
9
 
10
10
  class BackendControllerTest < Test::Unit::TestCase
11
- fixtures :contents, :categories, :blogs, :users, :articles_categories, :text_filters
11
+ fixtures :contents, :categories, :blogs, :users, :categorizations, :text_filters
12
12
 
13
13
  def setup
14
14
  @controller = BackendController.new
@@ -46,7 +46,7 @@ class BackendControllerTest < Test::Unit::TestCase
46
46
  new_post = Article.find(result)
47
47
  assert_equal "new post title", new_post.title
48
48
  assert_equal "new post *body*", new_post.body
49
- assert_equal "<p>new post <strong>body</strong></p>", new_post.html(@controller, :body)
49
+ assert_equal "<p>new post <strong>body</strong></p>", new_post.html(:body)
50
50
  assert_equal "textile", new_post.text_filter.name
51
51
  assert_equal users(:tobi), new_post.user
52
52
  assert_equal this_blog.id, new_post.blog_id
@@ -62,7 +62,7 @@ class BackendControllerTest < Test::Unit::TestCase
62
62
  new_post = Article.find(result)
63
63
  assert_equal "new post body for post without", new_post.title
64
64
  assert_equal "new post body for post without title but with a lenghty body", new_post.body
65
- assert_equal "<p>new post body for post without title but with a lenghty body</p>", new_post.html(@controller, :body)
65
+ assert_equal "<p>new post body for post without title but with a lenghty body</p>", new_post.html(:body)
66
66
  end
67
67
 
68
68
  def test_blogger_new_post_with_categories
@@ -140,7 +140,7 @@ class BackendControllerTest < Test::Unit::TestCase
140
140
 
141
141
  assert_equal article.title, new_article.title
142
142
  assert_equal article.body, new_article.body
143
- assert_equal "<p>this is a <strong>test</strong></p>", new_article.html(@controller, :body)
143
+ assert_equal "<p>this is a <strong>test</strong></p>", new_article.html(:body)
144
144
  assert_equal Time.now.midnight.to_s, new_article.published_at.to_s
145
145
  assert_equal this_blog.id, new_article.blog_id
146
146
  end
@@ -162,9 +162,9 @@ class BackendControllerTest < Test::Unit::TestCase
162
162
  assert_equal "Posted via Test", new_post.title
163
163
  assert_equal "textile", new_post.text_filter.name
164
164
  assert_equal article.body, new_post.body
165
- assert_equal "<p>body</p>", new_post.html(@controller, :body)
165
+ assert_equal "<p>body</p>", new_post.html(:body)
166
166
  assert_equal article.extended, new_post.extended
167
- assert_equal "<p>extend me</p>", new_post.html(@controller, :extended)
167
+ assert_equal "<p>extend me</p>", new_post.html(:extended)
168
168
  assert_equal Time.now.midnight.to_s, new_post.published_at.to_s
169
169
  assert_equal this_blog.id, new_post.blog_id
170
170
  end
@@ -19,18 +19,18 @@ class RedirectControllerTest < Test::Unit::TestCase
19
19
  def test_redirect
20
20
  get :redirect, :from => "foo/bar"
21
21
  assert_response 301
22
- assert_redirected_to "/someplace/else"
22
+ assert_response :redirect, "/someplace/else"
23
23
  end
24
24
 
25
25
  def test_url_root_redirect
26
26
  @request.relative_url_root = "/blog"
27
27
  get :redirect, :from => "foo/bar"
28
28
  assert_response 301
29
- assert_redirected_to "/blog/someplace/else"
29
+ assert_response :redirect, "/blog/someplace/else"
30
30
 
31
31
  get :redirect, :from => "bar/foo"
32
32
  assert_response 301
33
- assert_redirected_to "/blog/someplace/else"
33
+ assert_response :redirect, "/blog/someplace/else"
34
34
  end
35
35
 
36
36
  def test_no_redirect
@@ -8,7 +8,7 @@ class TextfilterController; def rescue_action(e) raise e end; end
8
8
  class ActionController::Base; def rescue_action(e) raise e end; end
9
9
 
10
10
  class TextfilterControllerTest < Test::Unit::TestCase
11
- fixtures :text_filters
11
+ fixtures :text_filters, :blogs
12
12
 
13
13
  def setup
14
14
  @controller = TextfilterController.new
@@ -23,9 +23,13 @@ class TextfilterControllerTest < Test::Unit::TestCase
23
23
 
24
24
  # @controller.initialize_current_url #rescue nil
25
25
  end
26
+
27
+ def blog
28
+ blogs(:default)
29
+ end
26
30
 
27
- def filter_text(text, filters, filterparams={}, filter_html=false)
28
- TextFilter.filter_text(text, @controller, self, filters, filterparams, filter_html)
31
+ def filter_text(text, filters, filterparams={})
32
+ TextFilter.filter_text(blog, text, self, filters, filterparams)
29
33
  end
30
34
 
31
35
  def whiteboard
@@ -68,12 +72,6 @@ class TextfilterControllerTest < Test::Unit::TestCase
68
72
 
69
73
  assert_equal '<p><em>&#8220;foo&#8221;</em></p>',
70
74
  filter_text('*"foo"*',[:doesntexist1,:markdown,"doesn't exist 2",:smartypants,:nopenotmeeither])
71
-
72
- assert_equal '<p>foo</p>',
73
- filter_text('<p>foo</p>',[],{},false)
74
-
75
- assert_equal '&lt;p&gt;foo&lt;/p&gt;',
76
- filter_text('<p>foo</p>',[],{},true)
77
75
  end
78
76
 
79
77
  def test_amazon
@@ -200,7 +198,7 @@ end
200
198
 
201
199
  def test_named_filter
202
200
  assert_equal '<p><em>&#8220;foo&#8221;</em></p>',
203
- TextFilter.filter_text_by_name('*"foo"*', @controller, 'markdown smartypants')
201
+ TextFilter.filter_text_by_name(blog, '*"foo"*', 'markdown smartypants')
204
202
  end
205
203
 
206
204
  def test_code_plus_markup_chain
@@ -244,8 +242,8 @@ EOF
244
242
  \t<p><em>footer text here</em></p>
245
243
  EOF
246
244
 
247
- assert_equal expects_markdown.strip, TextFilter.filter_text_by_name(text, @controller, 'markdown')
248
- assert_equal expects_textile.strip, TextFilter.filter_text_by_name(text, @controller, 'textile')
245
+ assert_equal expects_markdown.strip, TextFilter.filter_text_by_name(blog, text, 'markdown')
246
+ assert_equal expects_textile.strip, TextFilter.filter_text_by_name(blog, text, 'textile')
249
247
  end
250
248
 
251
249
  def test_lightbox