typo 5.1.3 → 5.1.98

Sign up to get free protection for your applications and to get access to all the features.
Files changed (938) hide show
  1. data/CHANGELOG +1 -0
  2. data/MAINTAINERS +5 -1
  3. data/README +3 -10
  4. data/app/apis/meta_weblog_service.rb +1 -1
  5. data/app/controllers/accounts_controller.rb +20 -9
  6. data/app/controllers/admin/base_controller.rb +21 -1
  7. data/app/controllers/admin/blacklist_controller.rb +6 -15
  8. data/app/controllers/admin/cache_controller.rb +2 -6
  9. data/app/controllers/admin/categories_controller.rb +32 -26
  10. data/app/controllers/admin/content_controller.rb +40 -54
  11. data/app/controllers/admin/dashboard_controller.rb +58 -5
  12. data/app/controllers/admin/feedback_controller.rb +88 -17
  13. data/app/controllers/admin/pages_controller.rb +9 -30
  14. data/app/controllers/admin/profiles_controller.rb +7 -10
  15. data/app/controllers/admin/resources_controller.rb +13 -12
  16. data/app/controllers/admin/settings_controller.rb +9 -42
  17. data/app/controllers/admin/sidebar_controller.rb +21 -8
  18. data/app/controllers/admin/tags_controller.rb +7 -13
  19. data/app/controllers/admin/textfilters_controller.rb +1 -99
  20. data/app/controllers/admin/themes_controller.rb +8 -5
  21. data/app/controllers/admin/users_controller.rb +13 -11
  22. data/app/controllers/application.rb +1 -0
  23. data/app/controllers/articles_controller.rb +64 -16
  24. data/app/controllers/backend_controller.rb +8 -2
  25. data/app/controllers/grouping_controller.rb +16 -10
  26. data/app/controllers/redirect_controller.rb +2 -2
  27. data/app/controllers/users_controller.rb +4 -0
  28. data/app/controllers/xml_controller.rb +3 -1
  29. data/app/helpers/admin/base_helper.rb +60 -113
  30. data/app/helpers/admin/content_helper.rb +19 -1
  31. data/app/helpers/admin/feedback_helper.rb +0 -31
  32. data/app/helpers/admin/pages_helper.rb +0 -20
  33. data/app/helpers/admin/settings_helper.rb +5 -0
  34. data/app/helpers/application_helper.rb +43 -27
  35. data/app/helpers/authors_helper.rb +1 -3
  36. data/app/helpers/content_helper.rb +1 -18
  37. data/app/helpers/sidebar_helper.rb +12 -0
  38. data/app/helpers/theme_helper.rb +0 -20
  39. data/app/helpers/xml_helper.rb +1 -9
  40. data/app/models/article.rb +73 -9
  41. data/app/models/blog.rb +24 -3
  42. data/app/models/blog_sweeper.rb +4 -13
  43. data/app/models/category.rb +1 -0
  44. data/app/models/content.rb +45 -4
  45. data/app/models/feedback/states.rb +21 -2
  46. data/app/models/feedback.rb +2 -0
  47. data/app/models/page.rb +7 -0
  48. data/app/models/page_cache.rb +1 -1
  49. data/app/models/profile.rb +2 -0
  50. data/app/models/tag.rb +3 -1
  51. data/app/models/theme.rb +1 -1
  52. data/app/models/user.rb +35 -6
  53. data/app/views/accounts/login.html.erb +7 -9
  54. data/app/views/accounts/signup.html.erb +1 -1
  55. data/app/views/admin/base/_recent_comments.html.erb +3 -3
  56. data/app/views/admin/base/_recent_trackbacks.html.erb +3 -3
  57. data/app/views/admin/blacklist/_blacklist_patterns.html.erb +2 -5
  58. data/app/views/admin/blacklist/_quick_post.html.erb +1 -1
  59. data/app/views/admin/blacklist/edit.html.erb +2 -3
  60. data/app/views/admin/blacklist/index.html.erb +2 -2
  61. data/app/views/admin/categories/_categories.html.erb +8 -10
  62. data/app/views/admin/categories/_form.html.erb +12 -3
  63. data/app/views/admin/categories/index.html.erb +1 -5
  64. data/app/views/admin/categories/new.html.erb +9 -0
  65. data/app/views/admin/content/_article_list.html.erb +16 -0
  66. data/app/views/admin/content/_drafts.html.erb +3 -3
  67. data/app/views/admin/content/_form.html.erb +29 -53
  68. data/app/views/admin/content/index.html.erb +49 -9
  69. data/app/views/admin/content/new.html.erb +1 -1
  70. data/app/views/admin/dashboard/_comments.html.erb +1 -3
  71. data/app/views/admin/dashboard/_inbound.html.erb +19 -0
  72. data/app/views/admin/dashboard/_overview.html.erb +7 -2
  73. data/app/views/admin/dashboard/_sysinfo.html.erb +5 -5
  74. data/app/views/admin/dashboard/_typo_dev.html.erb +21 -0
  75. data/app/views/admin/dashboard/_welcome.html.erb +1 -1
  76. data/app/views/admin/dashboard/index.html.erb +14 -17
  77. data/app/views/admin/feedback/_button.html.erb +5 -4
  78. data/app/views/admin/{comments → feedback}/_form.html.erb +1 -0
  79. data/app/views/admin/feedback/_item.html.erb +3 -5
  80. data/app/views/admin/feedback/article.html.erb +33 -0
  81. data/app/views/admin/feedback/edit.html.erb +10 -0
  82. data/app/views/admin/feedback/index.html.erb +21 -24
  83. data/app/views/admin/pages/_form.html.erb +20 -28
  84. data/app/views/admin/pages/_pages.html.erb +14 -25
  85. data/app/views/admin/resources/_metadata_edit.html.erb +1 -1
  86. data/app/views/admin/resources/_resources.html.erb +8 -5
  87. data/app/views/admin/resources/index.html.erb +1 -3
  88. data/app/views/admin/settings/_submit.html.erb +2 -2
  89. data/app/views/admin/settings/feedback.html.erb +86 -49
  90. data/app/views/admin/settings/index.html.erb +54 -58
  91. data/app/views/admin/settings/read.html.erb +2 -1
  92. data/app/views/admin/settings/seo.html.erb +46 -0
  93. data/app/views/admin/settings/update_database.html.erb +27 -29
  94. data/app/views/admin/settings/write.html.erb +41 -11
  95. data/app/views/admin/shared/_edit.html.erb +2 -1
  96. data/app/views/admin/sidebar/index.html.erb +4 -4
  97. data/app/views/admin/sidebar/set_active.rjs +1 -1
  98. data/app/views/admin/tags/_tags.html.erb +7 -8
  99. data/app/views/admin/tags/edit.html.erb +2 -2
  100. data/app/views/admin/tags/index.html.erb +1 -3
  101. data/app/views/admin/users/_form.html.erb +14 -3
  102. data/app/views/admin/users/edit.html.erb +1 -1
  103. data/app/views/admin/users/index.html.erb +16 -16
  104. data/app/views/admin/users/new.html.erb +1 -1
  105. data/app/views/articles/_comment_failed.html.erb +1 -0
  106. data/app/views/articles/_rss20_feed.rss.builder +1 -1
  107. data/app/views/articles/groupings.html.erb +4 -3
  108. data/app/views/articles/index.html.erb +1 -3
  109. data/app/views/articles/search.html.erb +8 -0
  110. data/app/views/layouts/accounts.html.erb +2 -3
  111. data/app/views/layouts/administration.html.erb +44 -40
  112. data/app/views/shared/_loginform.html.erb +9 -3
  113. data/app/views/shared/_search.html.erb +3 -8
  114. data/config/boot.rb +96 -32
  115. data/config/environment.rb +14 -7
  116. data/config/environments/development.rb +2 -0
  117. data/config/initializers/access_rules.rb +41 -48
  118. data/config/initializers/inflector.rb +1 -0
  119. data/config/routes.rb +11 -21
  120. data/db/migrate/001_initial_schema.rb +0 -1
  121. data/db/migrate/003_add_article_user_id.rb +11 -0
  122. data/db/migrate/020_superclass_articles.rb +4 -3
  123. data/db/migrate/021_superclass_comments.rb +2 -2
  124. data/db/migrate/022_superclass_trackbacks.rb +2 -1
  125. data/db/migrate/028_rename_redirect_to.rb +5 -1
  126. data/db/migrate/057_add_categorization_model.rb +12 -6
  127. data/db/migrate/072_add_remember_token.rb +9 -0
  128. data/db/migrate/073_add_meta_and_subcategories.rb +13 -0
  129. data/db/migrate/074_add_remember_token_expires_at.rb +9 -0
  130. data/db/migrate/075_move_editor_to_user.rb +20 -0
  131. data/db/migrate/076_fix_users_empty_email.rb +15 -0
  132. data/db/migrate/077_fix_userless_articles.rb +20 -0
  133. data/db/schema.rb +38 -38
  134. data/doc/typo-5.2-release-notes.txt +52 -0
  135. data/lang/fr_FR.rb +35 -15
  136. data/lang/he_IL.rb +715 -0
  137. data/lib/tasks/release.rake +7 -7
  138. data/lib/tasks/rspec.rake +142 -0
  139. data/lib/text_filter_plugin.rb +5 -0
  140. data/lib/typo_version.rb +1 -1
  141. data/public/images/admin/typologo.gif +0 -0
  142. data/public/javascripts/administration.js +12 -0
  143. data/public/javascripts/controls.js +1 -3
  144. data/public/javascripts/dragdrop.js +1 -3
  145. data/public/javascripts/effects.js +5 -7
  146. data/public/javascripts/fckcustom.js +9 -8
  147. data/public/javascripts/fckeditor/fckconfig.js +2 -2
  148. data/public/javascripts/fckeditor/fckeditor.js +1 -1
  149. data/public/javascripts/prototype.js +317 -167
  150. data/public/javascripts/quicktags.js +511 -0
  151. data/public/robots.txt +16 -1
  152. data/public/sources/javascripts/administration.js +12 -0
  153. data/public/sources/javascripts/application.js +2 -0
  154. data/public/sources/javascripts/codecollapse.js +8 -0
  155. data/public/sources/javascripts/controls.js +963 -0
  156. data/public/sources/javascripts/cookies.js +60 -0
  157. data/public/sources/javascripts/dragdrop.js +972 -0
  158. data/public/sources/javascripts/effects.js +1120 -0
  159. data/public/sources/javascripts/fckcustom.js +28 -0
  160. data/public/sources/javascripts/lang/default.js +21 -0
  161. data/public/sources/javascripts/lang/en_US.js +21 -0
  162. data/public/sources/javascripts/lang/fr_FR.js +21 -0
  163. data/public/sources/javascripts/lightbox.js +202 -0
  164. data/public/sources/javascripts/prototype.js +4320 -0
  165. data/public/sources/javascripts/quicktags.js +511 -0
  166. data/public/sources/javascripts/scriptaculous.js +58 -0
  167. data/public/sources/javascripts/slider.js +258 -0
  168. data/public/sources/javascripts/typo.js +136 -0
  169. data/public/sources/stylesheets/administration.css +955 -0
  170. data/public/sources/stylesheets/administration_rtl.css +1026 -0
  171. data/public/sources/stylesheets/codecollapse.css +3 -0
  172. data/public/sources/stylesheets/coderay.css +126 -0
  173. data/public/sources/stylesheets/lightbox.css +62 -0
  174. data/public/sources/stylesheets/rss.css +54 -0
  175. data/public/sources/stylesheets/textmate/dawn.css +209 -0
  176. data/public/sources/stylesheets/textmate/iplastic.css +142 -0
  177. data/public/sources/stylesheets/textmate/space_cadet.css +99 -0
  178. data/public/sources/stylesheets/textmate/textmate.css +48 -0
  179. data/public/sources/stylesheets/textmate/twilight.css +227 -0
  180. data/public/sources/stylesheets/user-styles.css +22 -0
  181. data/public/stylesheets/administration.css +146 -214
  182. data/public/stylesheets/administration_rtl.css +1026 -0
  183. data/public/stylesheets/coderay.css +128 -0
  184. data/script/autospec +5 -0
  185. data/script/dbconsole +3 -0
  186. data/script/performance/request +3 -0
  187. data/script/spec_server +18 -4
  188. data/spec/controllers/accounts_controller_spec.rb +24 -11
  189. data/spec/controllers/admin/blacklist_controller_spec.rb +4 -4
  190. data/spec/controllers/admin/cache_controller_spec.rb +32 -0
  191. data/spec/controllers/admin/categories_controller_spec.rb +8 -16
  192. data/spec/controllers/admin/content_controller_spec.rb +327 -171
  193. data/spec/controllers/admin/feedback_controller_spec.rb +278 -26
  194. data/spec/controllers/admin/pages_controller_spec.rb +0 -6
  195. data/spec/controllers/admin/resources_controller_spec.rb +3 -6
  196. data/spec/controllers/admin/settings_controller_spec.rb +21 -1
  197. data/spec/controllers/admin/tags_controller_spec.rb +35 -0
  198. data/spec/controllers/admin/textfilters_controller_spec.rb +10 -9
  199. data/spec/controllers/admin/users_controller_spec.rb +17 -18
  200. data/spec/controllers/articles_controller_spec.rb +4 -1
  201. data/spec/controllers/authors_controller_spec.rb +3 -6
  202. data/spec/controllers/backend_controller_spec.rb +26 -3
  203. data/spec/controllers/categories_controller_spec.rb +3 -6
  204. data/spec/controllers/comments_controller_spec.rb +4 -3
  205. data/spec/controllers/redirect_controller_spec.rb +5 -5
  206. data/spec/controllers/routes/articles_routing_spec.rb +31 -0
  207. data/spec/controllers/tags_controller_spec.rb +3 -6
  208. data/spec/controllers/textfilter_controller_spec.rb +37 -21
  209. data/spec/controllers/xml_controller_spec.rb +4 -1
  210. data/spec/helpers/application_helper_spec.rb +25 -0
  211. data/spec/helpers/content_helper_spec.rb +2 -0
  212. data/spec/lib/text_filter_plugin_spec.rb +15 -0
  213. data/spec/models/article_closing_spec.rb +4 -0
  214. data/spec/models/article_spec.rb +72 -3
  215. data/spec/models/blog_spec.rb +12 -0
  216. data/spec/models/comment_spec.rb +155 -127
  217. data/spec/models/metafragment_spec.rb +12 -0
  218. data/spec/models/resource_spec.rb +1 -0
  219. data/spec/models/tag_spec.rb +2 -2
  220. data/spec/models/theme_spec.rb +2 -2
  221. data/spec/models/user_spec.rb +14 -0
  222. data/spec/spec_helper.rb +1 -0
  223. data/spec/views/articles/index_spec.rb +57 -0
  224. data/test/fixtures/contents.yml +18 -0
  225. data/test/fixtures/feedback.yml +27 -0
  226. data/test/fixtures/profiles.yml +4 -0
  227. data/test/mocks/themes/typographic/views/articles/_article.html.erb +1 -1
  228. data/test/mocks/themes/typographic/views/articles/index.html.erb +1 -1
  229. data/themes/dirtylicious/layouts/default.html.erb +1 -1
  230. data/themes/dirtylicious/views/articles/index.html.erb +1 -3
  231. data/themes/scribbish/views/articles/index.html.erb +1 -3
  232. data/themes/standard_issue/views/articles/_article.html.erb +1 -1
  233. data/themes/standard_issue/views/articles/index.html.erb +1 -3
  234. data/themes/typographic/views/articles/_article.html.erb +1 -1
  235. data/themes/typographic/views/articles/index.html.erb +1 -3
  236. data/vendor/actionwebservice/CHANGELOG +63 -8
  237. data/vendor/actionwebservice/README +17 -0
  238. data/vendor/actionwebservice/Rakefile +12 -11
  239. data/vendor/actionwebservice/actionwebservice.gemspec +26 -0
  240. data/vendor/actionwebservice/generators/web_service/USAGE +28 -0
  241. data/vendor/actionwebservice/generators/web_service/templates/api_definition.rb +5 -0
  242. data/vendor/actionwebservice/generators/web_service/templates/controller.rb +8 -0
  243. data/vendor/actionwebservice/generators/web_service/templates/functional_test.rb +19 -0
  244. data/vendor/actionwebservice/generators/web_service/web_service_generator.rb +29 -0
  245. data/vendor/actionwebservice/install.rb +1 -1
  246. data/vendor/actionwebservice/lib/action_web_service/api.rb +1 -1
  247. data/vendor/actionwebservice/lib/action_web_service/casting.rb +7 -1
  248. data/vendor/actionwebservice/lib/action_web_service/dispatcher/action_controller_dispatcher.rb +2 -2
  249. data/vendor/actionwebservice/lib/action_web_service/protocol/soap_protocol/marshaler.rb +7 -0
  250. data/vendor/actionwebservice/lib/action_web_service/scaffolding.rb +8 -8
  251. data/vendor/actionwebservice/lib/action_web_service/templates/scaffolds/{layout.erb → layout.html.erb} +0 -0
  252. data/vendor/actionwebservice/lib/action_web_service/templates/scaffolds/{methods.erb → methods.html.erb} +0 -0
  253. data/vendor/actionwebservice/lib/action_web_service/templates/scaffolds/{parameters.erb → parameters.html.erb} +0 -0
  254. data/vendor/actionwebservice/lib/action_web_service/templates/scaffolds/{result.erb → result.html.erb} +0 -0
  255. data/vendor/actionwebservice/lib/action_web_service/version.rb +3 -3
  256. data/vendor/actionwebservice/lib/action_web_service.rb +3 -3
  257. data/vendor/actionwebservice/test/abstract_client.rb +1 -1
  258. data/vendor/actionwebservice/test/abstract_dispatcher.rb +0 -4
  259. data/vendor/actionwebservice/test/abstract_unit.rb +6 -18
  260. data/vendor/actionwebservice/test/client_xmlrpc_test.rb +0 -1
  261. data/vendor/actionwebservice/test/gencov +0 -0
  262. data/vendor/actionwebservice/test/run +0 -0
  263. data/vendor/actionwebservice/test/scaffolded_controller_test.rb +5 -5
  264. data/vendor/gems/coderay-0.8.260/.specification +114 -0
  265. data/vendor/gems/coderay-0.8.260/FOLDERS +53 -0
  266. data/vendor/gems/coderay-0.8.260/LICENSE +504 -0
  267. data/vendor/gems/coderay-0.8.260/README +128 -0
  268. data/vendor/gems/coderay-0.8.260/bin/coderay +82 -0
  269. data/vendor/gems/coderay-0.8.260/bin/coderay_stylesheet +4 -0
  270. data/vendor/gems/coderay-0.8.260/lib/coderay/duo.rb +87 -0
  271. data/vendor/gems/coderay-0.8.260/lib/coderay/encoder.rb +182 -0
  272. data/vendor/gems/coderay-0.8.260/lib/coderay/encoders/_map.rb +9 -0
  273. data/vendor/gems/coderay-0.8.260/lib/coderay/encoders/count.rb +21 -0
  274. data/vendor/gems/coderay-0.8.260/lib/coderay/encoders/debug.rb +49 -0
  275. data/vendor/gems/coderay-0.8.260/lib/coderay/encoders/div.rb +20 -0
  276. data/vendor/gems/coderay-0.8.260/lib/coderay/encoders/html/css.rb +70 -0
  277. data/vendor/gems/coderay-0.8.260/lib/coderay/encoders/html/numerization.rb +124 -0
  278. data/vendor/gems/coderay-0.8.260/lib/coderay/encoders/html/output.rb +197 -0
  279. data/vendor/gems/coderay-0.8.260/lib/coderay/encoders/html.rb +287 -0
  280. data/vendor/gems/coderay-0.8.260/lib/coderay/encoders/null.rb +26 -0
  281. data/vendor/gems/coderay-0.8.260/lib/coderay/encoders/page.rb +21 -0
  282. data/vendor/gems/coderay-0.8.260/lib/coderay/encoders/span.rb +20 -0
  283. data/vendor/gems/coderay-0.8.260/lib/coderay/encoders/statistic.rb +77 -0
  284. data/vendor/gems/coderay-0.8.260/lib/coderay/encoders/text.rb +32 -0
  285. data/vendor/gems/coderay-0.8.260/lib/coderay/encoders/tokens.rb +44 -0
  286. data/vendor/gems/coderay-0.8.260/lib/coderay/encoders/xml.rb +70 -0
  287. data/vendor/gems/coderay-0.8.260/lib/coderay/encoders/yaml.rb +22 -0
  288. data/vendor/gems/coderay-0.8.260/lib/coderay/for_redcloth.rb +72 -0
  289. data/vendor/gems/coderay-0.8.260/lib/coderay/helpers/file_type.rb +211 -0
  290. data/vendor/gems/coderay-0.8.260/lib/coderay/helpers/gzip_simple.rb +123 -0
  291. data/vendor/gems/coderay-0.8.260/lib/coderay/helpers/plugin.rb +333 -0
  292. data/vendor/gems/coderay-0.8.260/lib/coderay/helpers/word_list.rb +123 -0
  293. data/vendor/gems/coderay-0.8.260/lib/coderay/scanner.rb +255 -0
  294. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/_map.rb +15 -0
  295. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/c.rb +165 -0
  296. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/css.rb +181 -0
  297. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/debug.rb +61 -0
  298. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/delphi.rb +150 -0
  299. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/diff.rb +104 -0
  300. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/html.rb +177 -0
  301. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/java/builtin_types.rb +419 -0
  302. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/java.rb +179 -0
  303. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/java_script.rb +187 -0
  304. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/json.rb +106 -0
  305. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/nitro_xhtml.rb +134 -0
  306. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/plaintext.rb +18 -0
  307. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/rhtml.rb +73 -0
  308. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/ruby/patterns.rb +226 -0
  309. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/ruby.rb +381 -0
  310. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/scheme.rb +142 -0
  311. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/sql.Keith.rb +143 -0
  312. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/sql.rb +154 -0
  313. data/vendor/gems/coderay-0.8.260/lib/coderay/scanners/xml.rb +19 -0
  314. data/vendor/gems/coderay-0.8.260/lib/coderay/style.rb +20 -0
  315. data/vendor/gems/coderay-0.8.260/lib/coderay/styles/_map.rb +7 -0
  316. data/vendor/gems/coderay-0.8.260/lib/coderay/styles/cycnus.rb +146 -0
  317. data/vendor/gems/coderay-0.8.260/lib/coderay/styles/murphy.rb +132 -0
  318. data/vendor/gems/coderay-0.8.260/lib/coderay/token_classes.rb +82 -0
  319. data/vendor/gems/coderay-0.8.260/lib/coderay/tokens.rb +387 -0
  320. data/vendor/gems/coderay-0.8.260/lib/coderay.rb +321 -0
  321. data/vendor/gems/coderay-0.8.260/lib/term/ansicolor.rb +220 -0
  322. data/vendor/plugins/acts_as_tree/README +26 -0
  323. data/vendor/plugins/{classic_pagination → acts_as_tree}/Rakefile +3 -3
  324. data/vendor/plugins/acts_as_tree/init.rb +1 -0
  325. data/vendor/plugins/acts_as_tree/lib/active_record/acts/tree.rb +96 -0
  326. data/vendor/{actionwebservice/lib/action_web_service/templates/scaffolds/layout.rhtml → plugins/acts_as_tree/test/abstract_unit.rb} +0 -0
  327. data/vendor/plugins/acts_as_tree/test/acts_as_tree_test.rb +219 -0
  328. data/vendor/{actionwebservice/lib/action_web_service/templates/scaffolds/methods.rhtml → plugins/acts_as_tree/test/database.yml} +0 -0
  329. data/vendor/{actionwebservice/lib/action_web_service/templates/scaffolds/parameters.rhtml → plugins/acts_as_tree/test/fixtures/mixin.rb} +0 -0
  330. data/vendor/{actionwebservice/lib/action_web_service/templates/scaffolds/result.rhtml → plugins/acts_as_tree/test/fixtures/mixins.yml} +0 -0
  331. data/vendor/plugins/{rspec_on_rails/generators/rspec/templates/previous_failures.txt → acts_as_tree/test/schema.rb} +0 -0
  332. data/vendor/plugins/expiring_action_cache/lib/metafragment.rb +1 -1
  333. data/vendor/plugins/fckeditor/lib/fckeditor.rb +1 -1
  334. data/vendor/plugins/livesearch_sidebar/init.rb +4 -0
  335. data/vendor/plugins/livesearch_sidebar/lib/livesearch_sidebar.rb +5 -0
  336. data/vendor/plugins/livesearch_sidebar/views/content.rhtml +15 -0
  337. data/vendor/plugins/localization/bin/make_language.rb +78 -0
  338. data/vendor/plugins/localization/lib/localization.rb +14 -0
  339. data/vendor/plugins/rspec/.autotest +1 -0
  340. data/vendor/plugins/rspec/{CHANGES → History.txt} +215 -62
  341. data/vendor/plugins/rspec/{MIT-LICENSE → License.txt} +3 -1
  342. data/vendor/plugins/rspec/Manifest.txt +403 -0
  343. data/vendor/plugins/rspec/README.txt +39 -0
  344. data/vendor/plugins/rspec/Rakefile +39 -229
  345. data/vendor/plugins/rspec/TODO.txt +10 -0
  346. data/vendor/plugins/rspec/bin/autospec +4 -0
  347. data/vendor/plugins/rspec/bin/spec +1 -1
  348. data/vendor/plugins/rspec/examples/pure/autogenerated_docstrings_example.rb +4 -4
  349. data/vendor/plugins/rspec/examples/pure/partial_mock_example.rb +1 -0
  350. data/vendor/plugins/rspec/examples/pure/shared_example_group_example.rb +2 -2
  351. data/vendor/plugins/rspec/examples/pure/yielding_example.rb +33 -0
  352. data/vendor/plugins/rspec/examples/stories/calculator.rb +1 -1
  353. data/vendor/plugins/rspec/examples/stories/game-of-life/behaviour/everything.rb +1 -1
  354. data/vendor/plugins/rspec/examples/stories/game-of-life/behaviour/stories/CellsWithMoreThanThreeNeighboursDie.story +17 -17
  355. data/vendor/plugins/rspec/lib/autotest/discover.rb +1 -1
  356. data/vendor/plugins/rspec/lib/autotest/rspec.rb +10 -38
  357. data/vendor/plugins/rspec/lib/spec/adapters/ruby_engine/mri.rb +8 -0
  358. data/vendor/plugins/rspec/lib/spec/adapters/ruby_engine/rubinius.rb +8 -0
  359. data/vendor/plugins/rspec/lib/spec/adapters/ruby_engine.rb +26 -0
  360. data/vendor/plugins/rspec/lib/spec/adapters.rb +1 -0
  361. data/vendor/plugins/rspec/lib/spec/example/before_and_after_hooks.rb +93 -0
  362. data/vendor/plugins/rspec/lib/spec/example/configuration.rb +40 -17
  363. data/vendor/plugins/rspec/lib/spec/example/errors.rb +23 -2
  364. data/vendor/plugins/rspec/lib/spec/example/example_group.rb +12 -3
  365. data/vendor/plugins/rspec/lib/spec/example/example_group_factory.rb +41 -22
  366. data/vendor/plugins/rspec/lib/spec/example/example_group_methods.rb +88 -144
  367. data/vendor/plugins/rspec/lib/spec/example/example_matcher.rb +2 -0
  368. data/vendor/plugins/rspec/lib/spec/example/example_methods.rb +19 -20
  369. data/vendor/plugins/rspec/lib/spec/example/shared_example_group.rb +6 -12
  370. data/vendor/plugins/rspec/lib/spec/example.rb +1 -1
  371. data/vendor/plugins/rspec/lib/spec/expectations/differs/default.rb +1 -1
  372. data/vendor/plugins/rspec/lib/spec/expectations/extensions/object.rb +4 -12
  373. data/vendor/plugins/rspec/lib/spec/expectations/handler.rb +10 -10
  374. data/vendor/plugins/rspec/lib/spec/extensions/main.rb +3 -18
  375. data/vendor/plugins/rspec/lib/spec/extensions/metaclass.rb +7 -0
  376. data/vendor/plugins/rspec/lib/spec/extensions/object.rb +0 -4
  377. data/vendor/plugins/rspec/lib/spec/extensions.rb +1 -0
  378. data/vendor/plugins/rspec/lib/spec/interop/test/unit/testcase.rb +12 -2
  379. data/vendor/plugins/rspec/lib/spec/matchers/be.rb +18 -21
  380. data/vendor/plugins/rspec/lib/spec/matchers/be_close.rb +5 -5
  381. data/vendor/plugins/rspec/lib/spec/matchers/change.rb +45 -41
  382. data/vendor/plugins/rspec/lib/spec/matchers/eql.rb +6 -6
  383. data/vendor/plugins/rspec/lib/spec/matchers/equal.rb +6 -6
  384. data/vendor/plugins/rspec/lib/spec/matchers/exist.rb +10 -5
  385. data/vendor/plugins/rspec/lib/spec/matchers/has.rb +2 -12
  386. data/vendor/plugins/rspec/lib/spec/matchers/have.rb +25 -20
  387. data/vendor/plugins/rspec/lib/spec/matchers/include.rb +12 -5
  388. data/vendor/plugins/rspec/lib/spec/matchers/match.rb +9 -9
  389. data/vendor/plugins/rspec/lib/spec/matchers/operator_matcher.rb +25 -19
  390. data/vendor/plugins/rspec/lib/spec/matchers/raise_error.rb +60 -37
  391. data/vendor/plugins/rspec/lib/spec/matchers/respond_to.rb +5 -4
  392. data/vendor/plugins/rspec/lib/spec/matchers/satisfy.rb +5 -5
  393. data/vendor/plugins/rspec/lib/spec/matchers/simple_matcher.rb +115 -12
  394. data/vendor/plugins/rspec/lib/spec/matchers/throw_symbol.rb +3 -3
  395. data/vendor/plugins/rspec/lib/spec/matchers.rb +8 -2
  396. data/vendor/plugins/rspec/lib/spec/mocks/argument_constraints.rb +165 -0
  397. data/vendor/plugins/rspec/lib/spec/mocks/argument_expectation.rb +24 -158
  398. data/vendor/plugins/rspec/lib/spec/mocks/error_generator.rb +1 -1
  399. data/vendor/plugins/rspec/lib/spec/mocks/extensions.rb +1 -0
  400. data/vendor/plugins/rspec/lib/spec/mocks/framework.rb +15 -0
  401. data/vendor/plugins/rspec/lib/spec/mocks/message_expectation.rb +74 -10
  402. data/vendor/plugins/rspec/lib/spec/mocks/methods.rb +15 -3
  403. data/vendor/plugins/rspec/lib/spec/mocks/mock.rb +13 -7
  404. data/vendor/plugins/rspec/lib/spec/mocks/proxy.rb +71 -17
  405. data/vendor/plugins/rspec/lib/spec/mocks/spec_methods.rb +9 -1
  406. data/vendor/plugins/rspec/lib/spec/mocks.rb +1 -12
  407. data/vendor/plugins/rspec/lib/spec/rake/spectask.rb +19 -27
  408. data/vendor/plugins/rspec/lib/spec/rake/verify_rcov.rb +3 -3
  409. data/vendor/plugins/rspec/lib/spec/runner/backtrace_tweaker.rb +7 -8
  410. data/vendor/plugins/rspec/lib/spec/runner/command_line.rb +6 -17
  411. data/vendor/plugins/rspec/lib/spec/runner/drb_command_line.rb +1 -1
  412. data/vendor/plugins/rspec/lib/spec/runner/formatter/base_formatter.rb +4 -3
  413. data/vendor/plugins/rspec/lib/spec/runner/formatter/base_text_formatter.rb +5 -9
  414. data/vendor/plugins/rspec/lib/spec/runner/formatter/failing_example_groups_formatter.rb +4 -8
  415. data/vendor/plugins/rspec/lib/spec/runner/formatter/html_formatter.rb +18 -14
  416. data/vendor/plugins/rspec/lib/spec/runner/formatter/nested_text_formatter.rb +65 -0
  417. data/vendor/plugins/rspec/lib/spec/runner/formatter/profile_formatter.rb +4 -0
  418. data/vendor/plugins/rspec/lib/spec/runner/formatter/progress_bar_formatter.rb +6 -2
  419. data/vendor/plugins/rspec/lib/spec/runner/formatter/specdoc_formatter.rb +1 -1
  420. data/vendor/plugins/rspec/lib/spec/runner/formatter/story/html_formatter.rb +62 -16
  421. data/vendor/plugins/rspec/lib/spec/runner/formatter/story/plain_text_formatter.rb +81 -18
  422. data/vendor/plugins/rspec/lib/spec/runner/formatter/story/progress_bar_formatter.rb +42 -0
  423. data/vendor/plugins/rspec/lib/spec/runner/heckle_runner.rb +2 -2
  424. data/vendor/plugins/rspec/lib/spec/runner/option_parser.rb +49 -45
  425. data/vendor/plugins/rspec/lib/spec/runner/options.rb +54 -20
  426. data/vendor/plugins/rspec/lib/spec/runner/reporter.rb +36 -12
  427. data/vendor/plugins/rspec/lib/spec/runner/spec_parser.rb +1 -1
  428. data/vendor/plugins/rspec/lib/spec/runner.rb +17 -6
  429. data/vendor/plugins/rspec/lib/spec/story/extensions/regexp.rb +2 -2
  430. data/vendor/plugins/rspec/lib/spec/story/extensions/string.rb +2 -2
  431. data/vendor/plugins/rspec/lib/spec/story/runner/plain_text_story_runner.rb +2 -2
  432. data/vendor/plugins/rspec/lib/spec/story/runner/scenario_runner.rb +8 -0
  433. data/vendor/plugins/rspec/lib/spec/story/runner/story_mediator.rb +15 -1
  434. data/vendor/plugins/rspec/lib/spec/story/runner/story_parser.rb +20 -0
  435. data/vendor/plugins/rspec/lib/spec/story/runner/story_runner.rb +3 -1
  436. data/vendor/plugins/rspec/lib/spec/story/runner.rb +8 -5
  437. data/vendor/plugins/rspec/lib/spec/story/step.rb +43 -31
  438. data/vendor/plugins/rspec/lib/spec/story/step_mother.rb +2 -1
  439. data/vendor/plugins/rspec/lib/spec/story/story.rb +8 -11
  440. data/vendor/plugins/rspec/lib/spec/story/world.rb +6 -3
  441. data/vendor/plugins/rspec/lib/spec/version.rb +13 -22
  442. data/vendor/plugins/rspec/lib/spec.rb +15 -13
  443. data/vendor/plugins/rspec/plugins/mock_frameworks/rspec.rb +2 -0
  444. data/vendor/plugins/rspec/rake_tasks/failing_examples_with_html.rake +1 -1
  445. data/vendor/plugins/rspec/rake_tasks/verify_rcov.rake +2 -2
  446. data/vendor/plugins/rspec/rspec.gemspec +22 -0
  447. data/vendor/plugins/rspec/spec/{autotest_helper.rb → autotest/autotest_helper.rb} +2 -2
  448. data/vendor/plugins/rspec/spec/{autotest_matchers.rb → autotest/autotest_matchers.rb} +0 -0
  449. data/vendor/plugins/rspec/spec/autotest/discover_spec.rb +1 -1
  450. data/vendor/plugins/rspec/spec/autotest/rspec_spec.rb +94 -139
  451. data/vendor/plugins/rspec/spec/rspec_suite.rb +0 -1
  452. data/vendor/plugins/rspec/spec/spec/adapters/ruby_engine_spec.rb +16 -0
  453. data/vendor/plugins/rspec/spec/spec/example/configuration_spec.rb +229 -215
  454. data/vendor/plugins/rspec/spec/spec/example/example_group_class_definition_spec.rb +9 -9
  455. data/vendor/plugins/rspec/spec/spec/example/example_group_factory_spec.rb +137 -101
  456. data/vendor/plugins/rspec/spec/spec/example/example_group_methods_spec.rb +456 -361
  457. data/vendor/plugins/rspec/spec/spec/example/example_group_spec.rb +460 -488
  458. data/vendor/plugins/rspec/spec/spec/example/example_methods_spec.rb +117 -52
  459. data/vendor/plugins/rspec/spec/spec/example/nested_example_group_spec.rb +12 -0
  460. data/vendor/plugins/rspec/spec/spec/example/pending_module_spec.rb +114 -0
  461. data/vendor/plugins/rspec/spec/spec/example/shared_example_group_spec.rb +219 -203
  462. data/vendor/plugins/rspec/spec/spec/expectations/differs/default_spec.rb +27 -9
  463. data/vendor/plugins/rspec/spec/spec/expectations/extensions/object_spec.rb +0 -12
  464. data/vendor/plugins/rspec/spec/spec/extensions/main_spec.rb +23 -28
  465. data/vendor/plugins/rspec/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +13 -0
  466. data/vendor/plugins/rspec/spec/spec/interop/test/unit/spec_spec.rb +15 -8
  467. data/vendor/plugins/rspec/spec/spec/interop/test/unit/testcase_spec.rb +4 -0
  468. data/vendor/plugins/rspec/spec/spec/matchers/be_spec.rb +24 -0
  469. data/vendor/plugins/rspec/spec/spec/matchers/change_spec.rb +16 -6
  470. data/vendor/plugins/rspec/spec/spec/matchers/handler_spec.rb +58 -37
  471. data/vendor/plugins/rspec/spec/spec/matchers/has_spec.rb +26 -0
  472. data/vendor/plugins/rspec/spec/spec/matchers/have_spec.rb +105 -2
  473. data/vendor/plugins/rspec/spec/spec/matchers/include_spec.rb +19 -0
  474. data/vendor/plugins/rspec/spec/spec/matchers/operator_matcher_spec.rb +35 -2
  475. data/vendor/plugins/rspec/spec/spec/matchers/raise_error_spec.rb +124 -0
  476. data/vendor/plugins/rspec/spec/spec/matchers/respond_to_spec.rb +6 -6
  477. data/vendor/plugins/rspec/spec/spec/matchers/simple_matcher_spec.rb +64 -2
  478. data/vendor/plugins/rspec/spec/spec/mocks/any_number_of_times_spec.rb +7 -0
  479. data/vendor/plugins/rspec/spec/spec/mocks/{bug_report_10263.rb → bug_report_10263_spec.rb} +0 -0
  480. data/vendor/plugins/rspec/spec/spec/mocks/bug_report_11545_spec.rb +2 -0
  481. data/vendor/plugins/rspec/spec/spec/mocks/bug_report_496.rb +17 -0
  482. data/vendor/plugins/rspec/spec/spec/mocks/failing_mock_argument_constraints_spec.rb +10 -30
  483. data/vendor/plugins/rspec/spec/spec/mocks/hash_including_matcher_spec.rb +53 -0
  484. data/vendor/plugins/rspec/spec/spec/mocks/mock_spec.rb +123 -43
  485. data/vendor/plugins/rspec/spec/spec/mocks/nil_expectation_warning_spec.rb +53 -0
  486. data/vendor/plugins/rspec/spec/spec/mocks/null_object_mock_spec.rb +14 -0
  487. data/vendor/plugins/rspec/spec/spec/mocks/options_hash_spec.rb +18 -28
  488. data/vendor/plugins/rspec/spec/spec/mocks/partial_mock_spec.rb +50 -7
  489. data/vendor/plugins/rspec/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +26 -50
  490. data/vendor/plugins/rspec/spec/spec/mocks/stub_spec.rb +7 -0
  491. data/vendor/plugins/rspec/spec/spec/package/bin_spec_spec.rb +8 -0
  492. data/vendor/plugins/rspec/spec/spec/runner/command_line_spec.rb +102 -108
  493. data/vendor/plugins/rspec/spec/spec/runner/drb_command_line_spec.rb +11 -6
  494. data/vendor/plugins/rspec/spec/spec/runner/formatter/base_formatter_spec.rb +112 -0
  495. data/vendor/plugins/rspec/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +3 -2
  496. data/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.6.html +30 -25
  497. data/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatter_spec.rb +1 -6
  498. data/vendor/plugins/rspec/spec/spec/runner/formatter/nested_text_formatter_spec.rb +318 -0
  499. data/vendor/plugins/rspec/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +30 -2
  500. data/vendor/plugins/rspec/spec/spec/runner/formatter/spec_mate_formatter_spec.rb +4 -4
  501. data/vendor/plugins/rspec/spec/spec/runner/formatter/specdoc_formatter_spec.rb +133 -100
  502. data/vendor/plugins/rspec/spec/spec/runner/formatter/story/html_formatter_spec.rb +76 -2
  503. data/vendor/plugins/rspec/spec/spec/runner/formatter/story/plain_text_formatter_spec.rb +266 -1
  504. data/vendor/plugins/rspec/spec/spec/runner/formatter/story/progress_bar_formatter_spec.rb +82 -0
  505. data/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +33 -28
  506. data/vendor/plugins/rspec/spec/spec/runner/heckle_runner_spec.rb +8 -8
  507. data/vendor/plugins/rspec/spec/spec/runner/option_parser_spec.rb +104 -61
  508. data/vendor/plugins/rspec/spec/spec/runner/options_spec.rb +103 -17
  509. data/vendor/plugins/rspec/spec/spec/runner/output_one_time_fixture_runner.rb +1 -1
  510. data/vendor/plugins/rspec/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +6 -0
  511. data/vendor/plugins/rspec/spec/spec/runner/reporter_spec.rb +59 -10
  512. data/vendor/plugins/rspec/spec/spec/runner/spec_drb.opts +1 -0
  513. data/vendor/plugins/rspec/spec/spec/runner/spec_parser_spec.rb +10 -4
  514. data/vendor/plugins/rspec/spec/spec/story/runner/plain_text_story_runner_spec.rb +15 -17
  515. data/vendor/plugins/rspec/spec/spec/story/runner/scenario_runner_spec.rb +124 -52
  516. data/vendor/plugins/rspec/spec/spec/story/runner/story_mediator_spec.rb +12 -2
  517. data/vendor/plugins/rspec/spec/spec/story/runner/story_parser_spec.rb +23 -6
  518. data/vendor/plugins/rspec/spec/spec/story/runner/story_runner_spec.rb +43 -5
  519. data/vendor/plugins/rspec/spec/spec/story/runner_spec.rb +59 -72
  520. data/vendor/plugins/rspec/spec/spec/story/scenario_spec.rb +1 -3
  521. data/vendor/plugins/rspec/spec/spec/story/step_mother_spec.rb +12 -0
  522. data/vendor/plugins/rspec/spec/spec/story/step_spec.rb +76 -4
  523. data/vendor/plugins/rspec/spec/spec/story/story_spec.rb +3 -5
  524. data/vendor/plugins/rspec/spec/spec/story/world_spec.rb +8 -8
  525. data/vendor/plugins/rspec/spec/spec_helper.rb +40 -66
  526. data/vendor/plugins/rspec/stories/all.rb +1 -1
  527. data/vendor/plugins/rspec/stories/configuration/before_blocks.story +21 -0
  528. data/vendor/plugins/rspec/stories/configuration/stories.rb +7 -0
  529. data/vendor/plugins/rspec/stories/mock_framework_integration/stories.rb +7 -0
  530. data/vendor/plugins/rspec/stories/mock_framework_integration/use_flexmock.story +9 -0
  531. data/vendor/plugins/rspec/stories/resources/spec/before_blocks_example.rb +32 -0
  532. data/vendor/plugins/rspec/stories/resources/spec/spec_with_flexmock.rb +18 -0
  533. data/vendor/plugins/rspec/stories/stories/multiline_steps.story +23 -0
  534. data/vendor/plugins/rspec/stories/stories/steps/multiline_steps.rb +13 -0
  535. data/vendor/plugins/rspec/stories/stories/stories.rb +6 -0
  536. data/vendor/plugins/rspec-rails/History.txt +93 -0
  537. data/vendor/plugins/{rspec_on_rails/MIT-LICENSE → rspec-rails/License.txt} +7 -5
  538. data/vendor/plugins/rspec-rails/Manifest.txt +161 -0
  539. data/vendor/plugins/rspec-rails/README.txt +46 -0
  540. data/vendor/plugins/rspec-rails/Rakefile +39 -0
  541. data/vendor/plugins/rspec-rails/UPGRADE +7 -0
  542. data/vendor/plugins/{rspec_on_rails → rspec-rails}/generators/rspec/CHANGES +0 -0
  543. data/vendor/plugins/{rspec_on_rails → rspec-rails}/generators/rspec/rspec_generator.rb +9 -4
  544. data/vendor/plugins/{rspec_on_rails → rspec-rails}/generators/rspec/templates/all_stories.rb +0 -0
  545. data/vendor/plugins/{rspec_on_rails/spec_resources/views/controller_spec/_partial.rhtml → rspec-rails/generators/rspec/templates/previous_failures.txt} +0 -0
  546. data/vendor/plugins/{rspec_on_rails → rspec-rails}/generators/rspec/templates/rcov.opts +0 -0
  547. data/vendor/plugins/{rspec_on_rails/tasks → rspec-rails/generators/rspec/templates}/rspec.rake +6 -11
  548. data/vendor/plugins/rspec-rails/generators/rspec/templates/script/autospec +5 -0
  549. data/vendor/plugins/{rspec_on_rails → rspec-rails}/generators/rspec/templates/script/spec +1 -0
  550. data/vendor/plugins/{rspec_on_rails → rspec-rails}/generators/rspec/templates/script/spec_server +18 -4
  551. data/vendor/plugins/rspec-rails/generators/rspec/templates/spec.opts +4 -0
  552. data/vendor/plugins/{rspec_on_rails → rspec-rails}/generators/rspec/templates/spec_helper.rb +8 -0
  553. data/vendor/plugins/{rspec_on_rails → rspec-rails}/generators/rspec/templates/stories_helper.rb +0 -0
  554. data/vendor/plugins/{rspec_on_rails → rspec-rails}/generators/rspec_controller/USAGE +0 -0
  555. data/vendor/plugins/{rspec_on_rails → rspec-rails}/generators/rspec_controller/rspec_controller_generator.rb +0 -0
  556. data/vendor/plugins/{rspec_on_rails → rspec-rails}/generators/rspec_controller/templates/controller_spec.rb +1 -1
  557. data/vendor/plugins/rspec-rails/generators/rspec_controller/templates/helper_spec.rb +11 -0
  558. data/vendor/plugins/{rspec_on_rails → rspec-rails}/generators/rspec_controller/templates/view_spec.rb +2 -2
  559. data/vendor/plugins/rspec-rails/generators/rspec_default_values.rb +19 -0
  560. data/vendor/plugins/{rspec_on_rails → rspec-rails}/generators/rspec_model/USAGE +0 -0
  561. data/vendor/plugins/{rspec_on_rails → rspec-rails}/generators/rspec_model/rspec_model_generator.rb +7 -2
  562. data/vendor/plugins/rspec-rails/generators/rspec_model/templates/model_spec.rb +15 -0
  563. data/vendor/plugins/{rspec_on_rails → rspec-rails}/generators/rspec_scaffold/rspec_scaffold_generator.rb +2 -15
  564. data/vendor/plugins/rspec-rails/generators/rspec_scaffold/templates/controller_spec.rb +173 -0
  565. data/vendor/plugins/{rspec_on_rails → rspec-rails}/generators/rspec_scaffold/templates/edit_erb_spec.rb +8 -7
  566. data/vendor/plugins/rspec-rails/generators/rspec_scaffold/templates/helper_spec.rb +11 -0
  567. data/vendor/plugins/rspec-rails/generators/rspec_scaffold/templates/index_erb_spec.rb +27 -0
  568. data/vendor/plugins/{rspec_on_rails → rspec-rails}/generators/rspec_scaffold/templates/new_erb_spec.rb +7 -7
  569. data/vendor/plugins/{rspec_on_rails → rspec-rails}/generators/rspec_scaffold/templates/routing_spec.rb +15 -17
  570. data/vendor/plugins/rspec-rails/generators/rspec_scaffold/templates/show_erb_spec.rb +23 -0
  571. data/vendor/plugins/{rspec_on_rails → rspec-rails}/init.rb +0 -0
  572. data/vendor/plugins/{rspec_on_rails → rspec-rails}/lib/autotest/discover.rb +0 -0
  573. data/vendor/plugins/{rspec_on_rails → rspec-rails}/lib/autotest/rails_rspec.rb +1 -6
  574. data/vendor/plugins/rspec-rails/lib/spec/rails/example/assigns_hash_proxy.rb +40 -0
  575. data/vendor/plugins/{rspec_on_rails → rspec-rails}/lib/spec/rails/example/controller_example_group.rb +56 -55
  576. data/vendor/plugins/rspec-rails/lib/spec/rails/example/cookies_proxy.rb +25 -0
  577. data/vendor/plugins/{rspec_on_rails → rspec-rails}/lib/spec/rails/example/functional_example_group.rb +31 -10
  578. data/vendor/plugins/rspec-rails/lib/spec/rails/example/helper_example_group.rb +170 -0
  579. data/vendor/plugins/{rspec_on_rails → rspec-rails}/lib/spec/rails/example/model_example_group.rb +0 -0
  580. data/vendor/plugins/rspec-rails/lib/spec/rails/example/rails_example_group.rb +33 -0
  581. data/vendor/plugins/rspec-rails/lib/spec/rails/example/render_observer.rb +93 -0
  582. data/vendor/plugins/{rspec_on_rails → rspec-rails}/lib/spec/rails/example/view_example_group.rb +18 -6
  583. data/vendor/plugins/{rspec_on_rails → rspec-rails}/lib/spec/rails/example.rb +1 -1
  584. data/vendor/plugins/{rspec_on_rails → rspec-rails}/lib/spec/rails/extensions/action_controller/base.rb +0 -0
  585. data/vendor/plugins/{rspec_on_rails → rspec-rails}/lib/spec/rails/extensions/action_controller/rescue.rb +0 -0
  586. data/vendor/plugins/{rspec_on_rails → rspec-rails}/lib/spec/rails/extensions/action_controller/test_response.rb +0 -0
  587. data/vendor/plugins/{rspec_on_rails → rspec-rails}/lib/spec/rails/extensions/action_view/base.rb +8 -4
  588. data/vendor/plugins/{rspec_on_rails → rspec-rails}/lib/spec/rails/extensions/active_record/base.rb +0 -0
  589. data/vendor/plugins/{rspec_on_rails → rspec-rails}/lib/spec/rails/extensions/object.rb +0 -0
  590. data/vendor/plugins/{rspec_on_rails → rspec-rails}/lib/spec/rails/extensions/spec/example/configuration.rb +6 -1
  591. data/vendor/plugins/{rspec_on_rails → rspec-rails}/lib/spec/rails/extensions/spec/matchers/have.rb +2 -2
  592. data/vendor/plugins/{rspec_on_rails → rspec-rails}/lib/spec/rails/extensions.rb +0 -0
  593. data/vendor/plugins/rspec-rails/lib/spec/rails/interop/testcase.rb +14 -0
  594. data/vendor/plugins/{rspec_on_rails → rspec-rails}/lib/spec/rails/matchers/assert_select.rb +1 -0
  595. data/vendor/plugins/rspec-rails/lib/spec/rails/matchers/change.rb +11 -0
  596. data/vendor/plugins/{rspec_on_rails → rspec-rails}/lib/spec/rails/matchers/have_text.rb +4 -2
  597. data/vendor/plugins/rspec-rails/lib/spec/rails/matchers/include_text.rb +54 -0
  598. data/vendor/plugins/{rspec_on_rails → rspec-rails}/lib/spec/rails/matchers/redirect_to.rb +1 -1
  599. data/vendor/plugins/{rspec_on_rails → rspec-rails}/lib/spec/rails/matchers/render_template.rb +26 -6
  600. data/vendor/plugins/{rspec_on_rails → rspec-rails}/lib/spec/rails/matchers.rb +2 -0
  601. data/vendor/plugins/rspec-rails/lib/spec/rails/mocks.rb +132 -0
  602. data/vendor/plugins/{rspec_on_rails → rspec-rails}/lib/spec/rails/story_adapter.rb +11 -3
  603. data/vendor/plugins/rspec-rails/lib/spec/rails/version.rb +15 -0
  604. data/vendor/plugins/rspec-rails/lib/spec/rails.rb +15 -0
  605. data/vendor/plugins/rspec-rails/rspec-rails.gemspec +28 -0
  606. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec/rails/autotest/mappings_spec.rb +1 -1
  607. data/vendor/plugins/rspec-rails/spec/rails/example/assigns_hash_proxy_spec.rb +96 -0
  608. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec/rails/example/configuration_spec.rb +0 -0
  609. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec/rails/example/controller_isolation_spec.rb +20 -1
  610. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec/rails/example/controller_spec_spec.rb +119 -27
  611. data/vendor/plugins/rspec-rails/spec/rails/example/cookies_proxy_spec.rb +74 -0
  612. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec/rails/example/example_group_factory_spec.rb +0 -0
  613. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec/rails/example/helper_spec_spec.rb +60 -4
  614. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec/rails/example/model_spec_spec.rb +0 -0
  615. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec/rails/example/shared_behaviour_spec.rb +0 -0
  616. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec/rails/example/test_unit_assertion_accessibility_spec.rb +0 -0
  617. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec/rails/example/view_spec_spec.rb +75 -51
  618. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec/rails/extensions/action_controller_rescue_action_spec.rb +0 -0
  619. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec/rails/extensions/action_view_base_spec.rb +10 -10
  620. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec/rails/extensions/active_record_spec.rb +0 -0
  621. data/vendor/plugins/rspec-rails/spec/rails/interop/testcase_spec.rb +66 -0
  622. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec/rails/matchers/assert_select_spec.rb +34 -3
  623. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec/rails/matchers/description_generation_spec.rb +0 -0
  624. data/vendor/plugins/rspec-rails/spec/rails/matchers/errors_on_spec.rb +25 -0
  625. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec/rails/matchers/have_text_spec.rb +0 -0
  626. data/vendor/plugins/rspec-rails/spec/rails/matchers/include_text_spec.rb +64 -0
  627. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec/rails/matchers/redirect_to_spec.rb +7 -1
  628. data/vendor/plugins/{rspec_on_rails/spec/rails/matchers/render_spec.rb → rspec-rails/spec/rails/matchers/render_template_spec.rb} +21 -14
  629. data/vendor/plugins/rspec-rails/spec/rails/matchers/should_change_spec.rb +15 -0
  630. data/vendor/plugins/rspec-rails/spec/rails/mocks/ar_classes.rb +10 -0
  631. data/vendor/plugins/rspec-rails/spec/rails/mocks/mock_model_spec.rb +106 -0
  632. data/vendor/plugins/rspec-rails/spec/rails/mocks/stub_model_spec.rb +80 -0
  633. data/vendor/plugins/rspec-rails/spec/rails/sample_modified_fixture.rb +8 -0
  634. data/vendor/plugins/rspec-rails/spec/rails/sample_spec.rb +8 -0
  635. data/vendor/plugins/rspec-rails/spec/rails/spec_server_spec.rb +96 -0
  636. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec/rails/spec_spec.rb +0 -0
  637. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec/rails_suite.rb +0 -0
  638. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec/spec_helper.rb +13 -1
  639. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/controllers/action_view_base_spec_controller.rb +0 -0
  640. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/controllers/controller_spec_controller.rb +46 -3
  641. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/controllers/redirect_spec_controller.rb +0 -0
  642. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/controllers/render_spec_controller.rb +4 -0
  643. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/controllers/rjs_spec_controller.rb +0 -0
  644. data/vendor/plugins/rspec-rails/spec_resources/helpers/addition_helper.rb +5 -0
  645. data/vendor/plugins/rspec-rails/spec_resources/helpers/explicit_helper.rb +38 -0
  646. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/helpers/more_explicit_helper.rb +0 -0
  647. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/helpers/plugin_application_helper.rb +0 -0
  648. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/helpers/view_spec_helper.rb +0 -0
  649. data/vendor/plugins/{rspec_on_rails/spec_resources/views/controller_spec/action_setting_the_assigns_hash.rhtml → rspec-rails/spec_resources/views/controller_spec/_partial.rhtml} +0 -0
  650. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/views/controller_spec/action_setting_flash_after_session_reset.rhtml +0 -0
  651. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/views/controller_spec/action_setting_flash_before_session_reset.rhtml +0 -0
  652. data/vendor/plugins/{rspec_on_rails/spec_resources/views/render_spec/_a_partial.rhtml → rspec-rails/spec_resources/views/controller_spec/action_setting_the_assigns_hash.rhtml} +0 -0
  653. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/views/controller_spec/action_with_errors_in_template.rhtml +0 -0
  654. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/views/controller_spec/action_with_template.rhtml +0 -0
  655. data/vendor/plugins/{rspec_on_rails/spec_resources/views/render_spec/some_action.rhtml → rspec-rails/spec_resources/views/layouts/application.rhtml} +0 -0
  656. data/vendor/plugins/{rspec_on_rails/spec_resources/views/view_spec/_partial_used_twice.rhtml → rspec-rails/spec_resources/views/layouts/simple.rhtml} +0 -0
  657. data/vendor/plugins/rspec-rails/spec_resources/views/objects/_object.html.erb +1 -0
  658. data/vendor/plugins/rspec-rails/spec_resources/views/render_spec/_a_partial.rhtml +0 -0
  659. data/vendor/plugins/rspec-rails/spec_resources/views/render_spec/action_with_alternate_layout.rhtml +0 -0
  660. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/views/render_spec/some_action.js.rjs +0 -0
  661. data/vendor/plugins/rspec-rails/spec_resources/views/render_spec/some_action.rhtml +0 -0
  662. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/views/render_spec/some_action.rjs +0 -0
  663. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/views/rjs_spec/_replacement_partial.rhtml +0 -0
  664. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/views/rjs_spec/hide_div.rjs +0 -0
  665. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/views/rjs_spec/hide_page_element.rjs +0 -0
  666. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/views/rjs_spec/insert_html.rjs +0 -0
  667. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/views/rjs_spec/replace.rjs +0 -0
  668. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/views/rjs_spec/replace_html.rjs +0 -0
  669. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/views/rjs_spec/replace_html_with_partial.rjs +0 -0
  670. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/views/rjs_spec/visual_effect.rjs +0 -0
  671. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/views/rjs_spec/visual_toggle_effect.rjs +0 -0
  672. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/views/tag_spec/no_tags.rhtml +0 -0
  673. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/views/tag_spec/single_div_with_no_attributes.rhtml +0 -0
  674. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/views/tag_spec/single_div_with_one_attribute.rhtml +0 -0
  675. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/views/view_spec/_partial.rhtml +0 -0
  676. data/vendor/plugins/rspec-rails/spec_resources/views/view_spec/_partial_used_twice.rhtml +0 -0
  677. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/views/view_spec/_partial_with_local_variable.rhtml +0 -0
  678. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/views/view_spec/_partial_with_sub_partial.rhtml +0 -0
  679. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/views/view_spec/_spacer.rhtml +0 -0
  680. data/vendor/plugins/rspec-rails/spec_resources/views/view_spec/accessor.rhtml +5 -0
  681. data/vendor/plugins/rspec-rails/spec_resources/views/view_spec/block_helper.rhtml +3 -0
  682. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/views/view_spec/entry_form.rhtml +0 -0
  683. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/views/view_spec/explicit_helper.rhtml +0 -0
  684. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/views/view_spec/foo/show.rhtml +0 -0
  685. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/views/view_spec/implicit_helper.rhtml +0 -0
  686. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/views/view_spec/multiple_helpers.rhtml +0 -0
  687. data/vendor/plugins/rspec-rails/spec_resources/views/view_spec/should_not_receive.rhtml +3 -0
  688. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/views/view_spec/template_with_partial.rhtml +0 -0
  689. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/views/view_spec/template_with_partial_using_collection.rhtml +0 -0
  690. data/vendor/plugins/{rspec_on_rails → rspec-rails}/spec_resources/views/view_spec/template_with_partial_with_array.rhtml +0 -0
  691. data/vendor/plugins/{rspec_on_rails → rspec-rails}/stories/all.rb +0 -0
  692. data/vendor/plugins/rspec-rails/stories/configuration/stories.rb +5 -0
  693. data/vendor/plugins/{rspec_on_rails → rspec-rails}/stories/helper.rb +1 -0
  694. data/vendor/plugins/{rspec_on_rails → rspec-rails}/stories/steps/people.rb +0 -0
  695. data/vendor/plugins/{rspec_on_rails → rspec-rails}/stories/transactions_should_rollback +0 -0
  696. data/vendor/plugins/{rspec_on_rails → rspec-rails}/stories/transactions_should_rollback.rb +0 -0
  697. data/vendor/plugins/typo_textfilter_code/lib/typo_textfilter_code.rb +25 -20
  698. data/vendor/plugins/typo_textfilter_flickr/lib/typo_textfilter_flickr.rb +1 -1
  699. data/vendor/plugins/typo_textfilter_lightbox/lib/typo_textfilter_lightbox.rb +1 -1
  700. data/vendor/plugins/will_paginate/.manifest +49 -0
  701. data/vendor/plugins/will_paginate/CHANGELOG.rdoc +110 -0
  702. data/vendor/plugins/will_paginate/LICENSE +18 -0
  703. data/vendor/plugins/will_paginate/README.rdoc +107 -0
  704. data/vendor/plugins/will_paginate/Rakefile +62 -0
  705. data/vendor/plugins/will_paginate/examples/apple-circle.gif +0 -0
  706. data/vendor/plugins/will_paginate/examples/index.haml +69 -0
  707. data/vendor/plugins/will_paginate/examples/index.html +92 -0
  708. data/vendor/plugins/will_paginate/examples/pagination.css +90 -0
  709. data/vendor/plugins/will_paginate/examples/pagination.sass +91 -0
  710. data/vendor/plugins/will_paginate/init.rb +1 -0
  711. data/vendor/plugins/will_paginate/lib/will_paginate/array.rb +16 -0
  712. data/vendor/plugins/will_paginate/lib/will_paginate/collection.rb +146 -0
  713. data/vendor/plugins/will_paginate/lib/will_paginate/core_ext.rb +32 -0
  714. data/vendor/plugins/will_paginate/lib/will_paginate/finder.rb +260 -0
  715. data/vendor/plugins/will_paginate/lib/will_paginate/named_scope.rb +170 -0
  716. data/vendor/plugins/will_paginate/lib/will_paginate/named_scope_patch.rb +37 -0
  717. data/vendor/plugins/will_paginate/lib/will_paginate/version.rb +9 -0
  718. data/vendor/plugins/will_paginate/lib/will_paginate/view_helpers.rb +383 -0
  719. data/vendor/plugins/will_paginate/lib/will_paginate.rb +82 -0
  720. data/vendor/plugins/will_paginate/test/boot.rb +21 -0
  721. data/vendor/plugins/will_paginate/test/collection_test.rb +143 -0
  722. data/vendor/plugins/will_paginate/test/console +8 -0
  723. data/vendor/plugins/will_paginate/test/database.yml +22 -0
  724. data/vendor/plugins/will_paginate/test/finder_test.rb +476 -0
  725. data/vendor/plugins/will_paginate/test/fixtures/admin.rb +3 -0
  726. data/vendor/plugins/will_paginate/test/fixtures/developer.rb +14 -0
  727. data/vendor/plugins/{classic_pagination → will_paginate}/test/fixtures/developers_projects.yml +0 -0
  728. data/vendor/plugins/will_paginate/test/fixtures/project.rb +15 -0
  729. data/vendor/plugins/{classic_pagination → will_paginate}/test/fixtures/projects.yml +3 -4
  730. data/vendor/plugins/will_paginate/test/fixtures/replies.yml +29 -0
  731. data/vendor/plugins/{classic_pagination → will_paginate}/test/fixtures/reply.rb +2 -0
  732. data/vendor/plugins/will_paginate/test/fixtures/schema.rb +38 -0
  733. data/vendor/plugins/will_paginate/test/fixtures/topic.rb +10 -0
  734. data/vendor/plugins/{classic_pagination → will_paginate}/test/fixtures/topics.yml +9 -1
  735. data/vendor/plugins/will_paginate/test/fixtures/user.rb +2 -0
  736. data/vendor/plugins/{classic_pagination/test/fixtures/developers.yml → will_paginate/test/fixtures/users.yml} +15 -1
  737. data/vendor/plugins/will_paginate/test/helper.rb +37 -0
  738. data/vendor/plugins/will_paginate/test/lib/activerecord_test_case.rb +36 -0
  739. data/vendor/plugins/will_paginate/test/lib/activerecord_test_connector.rb +73 -0
  740. data/vendor/plugins/will_paginate/test/lib/load_fixtures.rb +11 -0
  741. data/vendor/plugins/will_paginate/test/lib/view_test_process.rb +165 -0
  742. data/vendor/plugins/will_paginate/test/tasks.rake +59 -0
  743. data/vendor/plugins/will_paginate/test/view_test.rb +363 -0
  744. data/vendor/plugins/will_paginate/will_paginate.gemspec +22 -0
  745. data/vendor/plugins/xml_sidebar/views/content.rhtml +3 -3
  746. metadata +614 -542
  747. data/CHANGES-5.1.3 +0 -21
  748. data/app/controllers/admin/comments_controller.rb +0 -57
  749. data/app/controllers/admin/trackbacks_controller.rb +0 -45
  750. data/app/views/accounts/logout.html.erb +0 -12
  751. data/app/views/accounts/welcome.html.erb +0 -13
  752. data/app/views/admin/categories/_quick_post.html.erb +0 -11
  753. data/app/views/admin/categories/edit.html.erb +0 -11
  754. data/app/views/admin/comments/destroy.html.erb +0 -11
  755. data/app/views/admin/comments/edit.html.erb +0 -14
  756. data/app/views/admin/comments/index.html.erb +0 -30
  757. data/app/views/admin/comments/show.html.erb +0 -28
  758. data/app/views/admin/content/_articles.html.erb +0 -47
  759. data/app/views/admin/content/_pages.html.erb +0 -3
  760. data/app/views/admin/content/edit.html.erb +0 -3
  761. data/app/views/admin/pages/_quick_post.html.erb +0 -21
  762. data/app/views/admin/settings/podcast.html.erb +0 -44
  763. data/app/views/admin/settings/spam.html.erb +0 -42
  764. data/app/views/admin/textfilters/_form.html.erb +0 -60
  765. data/app/views/admin/textfilters/_macros.html.erb +0 -16
  766. data/app/views/admin/textfilters/_textfilters.html.erb +0 -20
  767. data/app/views/admin/textfilters/destroy.html.erb +0 -10
  768. data/app/views/admin/textfilters/edit.html.erb +0 -14
  769. data/app/views/admin/textfilters/index.html.erb +0 -12
  770. data/app/views/admin/textfilters/macro_help.html.erb +0 -3
  771. data/app/views/admin/textfilters/new.html.erb +0 -12
  772. data/app/views/admin/textfilters/preview.html.erb +0 -3
  773. data/app/views/admin/textfilters/show.html.erb +0 -29
  774. data/app/views/admin/textfilters/show_help.html.erb +0 -4
  775. data/app/views/admin/trackbacks/_form.html.erb +0 -19
  776. data/app/views/admin/trackbacks/destroy.html.erb +0 -6
  777. data/app/views/admin/trackbacks/edit.html.erb +0 -11
  778. data/app/views/admin/trackbacks/index.html.erb +0 -22
  779. data/app/views/admin/trackbacks/show.html.erb +0 -14
  780. data/app/views/admin/users/_user.html.erb +0 -20
  781. data/doc/typo-4.0-release-notes.txt +0 -135
  782. data/public/images/admin/arrow_comment_group.gif +0 -0
  783. data/public/images/admin/bc-bg.gif +0 -0
  784. data/public/images/admin/bgdivider.png +0 -0
  785. data/public/images/admin/bgoff.png +0 -0
  786. data/public/images/admin/bgover.png +0 -0
  787. data/public/images/admin/bgselected.png +0 -0
  788. data/public/images/admin/cancel.png +0 -0
  789. data/public/images/admin/checked.png +0 -0
  790. data/public/images/admin/delete.png +0 -0
  791. data/public/images/admin/edit.png +0 -0
  792. data/public/images/admin/help.png +0 -0
  793. data/public/images/admin/loginformbg.png +0 -0
  794. data/public/images/admin/show.png +0 -0
  795. data/public/images/admin/table-header-first.png +0 -0
  796. data/public/stylesheets/typo_code.css +0 -62
  797. data/spec/controllers/admin/comments_controller_spec.rb +0 -74
  798. data/spec/controllers/admin/trackbacks_controller_spec.rb +0 -57
  799. data/spec/helpers/admin_base_helper_spec.rb +0 -13
  800. data/themes/dirtylicious/views/shared/_search.html.erb +0 -16
  801. data/themes/scribbish/views/shared/_search.html.erb +0 -16
  802. data/themes/standard_issue/views/shared/_search.html.erb +0 -17
  803. data/themes/typographic/views/shared/_search.html.erb +0 -17
  804. data/vendor/plugins/classic_pagination/CHANGELOG +0 -152
  805. data/vendor/plugins/classic_pagination/README +0 -18
  806. data/vendor/plugins/classic_pagination/init.rb +0 -33
  807. data/vendor/plugins/classic_pagination/install.rb +0 -1
  808. data/vendor/plugins/classic_pagination/lib/pagination.rb +0 -405
  809. data/vendor/plugins/classic_pagination/lib/pagination_helper.rb +0 -135
  810. data/vendor/plugins/classic_pagination/test/fixtures/companies.yml +0 -24
  811. data/vendor/plugins/classic_pagination/test/fixtures/company.rb +0 -9
  812. data/vendor/plugins/classic_pagination/test/fixtures/developer.rb +0 -7
  813. data/vendor/plugins/classic_pagination/test/fixtures/project.rb +0 -3
  814. data/vendor/plugins/classic_pagination/test/fixtures/replies.yml +0 -13
  815. data/vendor/plugins/classic_pagination/test/fixtures/schema.sql +0 -42
  816. data/vendor/plugins/classic_pagination/test/fixtures/topic.rb +0 -3
  817. data/vendor/plugins/classic_pagination/test/helper.rb +0 -117
  818. data/vendor/plugins/classic_pagination/test/pagination_helper_test.rb +0 -38
  819. data/vendor/plugins/classic_pagination/test/pagination_test.rb +0 -177
  820. data/vendor/plugins/rspec/README +0 -71
  821. data/vendor/plugins/rspec/TODO +0 -2
  822. data/vendor/plugins/rspec/UPGRADE +0 -31
  823. data/vendor/plugins/rspec/autotest/discover.rb +0 -6
  824. data/vendor/plugins/rspec/autotest/rspec.rb +0 -1
  825. data/vendor/plugins/rspec/bin/spec_translator +0 -8
  826. data/vendor/plugins/rspec/lib/spec/mocks/argument_constraint_matchers.rb +0 -27
  827. data/vendor/plugins/rspec/lib/spec/translator.rb +0 -114
  828. data/vendor/plugins/rspec/pre_commit/lib/pre_commit/core.rb +0 -50
  829. data/vendor/plugins/rspec/pre_commit/lib/pre_commit/pre_commit.rb +0 -54
  830. data/vendor/plugins/rspec/pre_commit/lib/pre_commit/rspec.rb +0 -111
  831. data/vendor/plugins/rspec/pre_commit/lib/pre_commit/rspec_on_rails.rb +0 -313
  832. data/vendor/plugins/rspec/pre_commit/lib/pre_commit.rb +0 -4
  833. data/vendor/plugins/rspec/pre_commit/spec/pre_commit/pre_commit_spec.rb +0 -15
  834. data/vendor/plugins/rspec/pre_commit/spec/pre_commit/rspec_on_rails_spec.rb +0 -36
  835. data/vendor/plugins/rspec/pre_commit/spec/spec_helper.rb +0 -3
  836. data/vendor/plugins/rspec/pre_commit/spec/spec_suite.rb +0 -11
  837. data/vendor/plugins/rspec/report.html +0 -4358
  838. data/vendor/plugins/rspec/spec/spec/example/example_spec.rb +0 -53
  839. data/vendor/plugins/rspec/spec/spec/runner/execution_context_spec.rb +0 -31
  840. data/vendor/plugins/rspec/spec/spec/translator_spec.rb +0 -265
  841. data/vendor/plugins/rspec_on_rails/README +0 -3
  842. data/vendor/plugins/rspec_on_rails/Rakefile +0 -9
  843. data/vendor/plugins/rspec_on_rails/generators/rspec/templates/spec.opts +0 -6
  844. data/vendor/plugins/rspec_on_rails/generators/rspec_controller/templates/helper_spec.rb +0 -11
  845. data/vendor/plugins/rspec_on_rails/generators/rspec_model/templates/model_spec.rb +0 -11
  846. data/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/controller_spec.rb +0 -313
  847. data/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/helper_spec.rb +0 -11
  848. data/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/index_erb_spec.rb +0 -22
  849. data/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/show_erb_spec.rb +0 -22
  850. data/vendor/plugins/rspec_on_rails/lib/spec/rails/example/assigns_hash_proxy.rb +0 -42
  851. data/vendor/plugins/rspec_on_rails/lib/spec/rails/example/helper_example_group.rb +0 -82
  852. data/vendor/plugins/rspec_on_rails/lib/spec/rails/example/ivar_proxy.rb +0 -62
  853. data/vendor/plugins/rspec_on_rails/lib/spec/rails/example/rails_example_group.rb +0 -68
  854. data/vendor/plugins/rspec_on_rails/lib/spec/rails/example/render_observer.rb +0 -90
  855. data/vendor/plugins/rspec_on_rails/lib/spec/rails/version.rb +0 -23
  856. data/vendor/plugins/rspec_on_rails/lib/spec/rails.rb +0 -51
  857. data/vendor/plugins/rspec_on_rails/spec/rails/autotest/rails_rspec_spec.rb +0 -8
  858. data/vendor/plugins/rspec_on_rails/spec/rails/example/assigns_hash_proxy_spec.rb +0 -55
  859. data/vendor/plugins/rspec_on_rails/spec/rails/example/ivar_proxy_spec.rb +0 -64
  860. data/vendor/plugins/rspec_on_rails/spec/rails/matchers/errors_on_spec.rb +0 -13
  861. data/vendor/plugins/rspec_on_rails/spec/rails/mocks/mock_model_spec.rb +0 -65
  862. data/vendor/plugins/rspec_on_rails/spec/rails/sample_spec.rb +0 -7
  863. data/vendor/plugins/rspec_on_rails/spec/rails/spec_server_spec.rb +0 -89
  864. data/vendor/plugins/rspec_on_rails/spec_resources/helpers/explicit_helper.rb +0 -10
  865. data/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/accessor.rhtml +0 -3
  866. data/vendor/syntax/LICENSE +0 -27
  867. data/vendor/syntax/NEWS +0 -16
  868. data/vendor/syntax/README +0 -38
  869. data/vendor/syntax/Rakefile +0 -194
  870. data/vendor/syntax/api/classes/Syntax/Convertors/Abstract.html +0 -159
  871. data/vendor/syntax/api/classes/Syntax/Convertors/HTML.html +0 -149
  872. data/vendor/syntax/api/classes/Syntax/Convertors.html +0 -91
  873. data/vendor/syntax/api/classes/Syntax/Default.html +0 -123
  874. data/vendor/syntax/api/classes/Syntax/Ruby.html +0 -319
  875. data/vendor/syntax/api/classes/Syntax/Token.html +0 -151
  876. data/vendor/syntax/api/classes/Syntax/Tokenizer.html +0 -324
  877. data/vendor/syntax/api/classes/Syntax/Version.html +0 -109
  878. data/vendor/syntax/api/classes/Syntax/XML.html +0 -205
  879. data/vendor/syntax/api/classes/Syntax/YAML.html +0 -189
  880. data/vendor/syntax/api/classes/Syntax.html +0 -173
  881. data/vendor/syntax/api/created.rid +0 -1
  882. data/vendor/syntax/api/files/README.html +0 -155
  883. data/vendor/syntax/api/files/lib/syntax/common_rb.html +0 -96
  884. data/vendor/syntax/api/files/lib/syntax/convertors/abstract_rb.html +0 -96
  885. data/vendor/syntax/api/files/lib/syntax/convertors/html_rb.html +0 -96
  886. data/vendor/syntax/api/files/lib/syntax/lang/ruby_rb.html +0 -96
  887. data/vendor/syntax/api/files/lib/syntax/lang/xml_rb.html +0 -96
  888. data/vendor/syntax/api/files/lib/syntax/lang/yaml_rb.html +0 -96
  889. data/vendor/syntax/api/files/lib/syntax/version_rb.html +0 -92
  890. data/vendor/syntax/api/files/lib/syntax_rb.html +0 -96
  891. data/vendor/syntax/api/fr_class_index.html +0 -56
  892. data/vendor/syntax/api/fr_file_index.html +0 -54
  893. data/vendor/syntax/api/fr_method_index.html +0 -65
  894. data/vendor/syntax/api/index.html +0 -26
  895. data/vendor/syntax/api/rdoc-style.css +0 -175
  896. data/vendor/syntax/doc/manual/chapter.erb +0 -38
  897. data/vendor/syntax/doc/manual/example.erb +0 -18
  898. data/vendor/syntax/doc/manual/index.erb +0 -29
  899. data/vendor/syntax/doc/manual/manual.rb +0 -311
  900. data/vendor/syntax/doc/manual/manual.yml +0 -43
  901. data/vendor/syntax/doc/manual/page.erb +0 -87
  902. data/vendor/syntax/doc/manual/parts/0000.txt +0 -5
  903. data/vendor/syntax/doc/manual/parts/0001.txt +0 -16
  904. data/vendor/syntax/doc/manual/parts/0002.txt +0 -24
  905. data/vendor/syntax/doc/manual/parts/0003.txt +0 -6
  906. data/vendor/syntax/doc/manual/parts/0004.txt +0 -32
  907. data/vendor/syntax/doc/manual/parts/0005.txt +0 -18
  908. data/vendor/syntax/doc/manual/parts/0006.txt +0 -62
  909. data/vendor/syntax/doc/manual/parts/0007.txt +0 -3
  910. data/vendor/syntax/doc/manual/parts/0008.txt +0 -5
  911. data/vendor/syntax/doc/manual/parts/0009.txt +0 -29
  912. data/vendor/syntax/doc/manual/parts/0010.txt +0 -21
  913. data/vendor/syntax/doc/manual/stylesheets/manual.css +0 -270
  914. data/vendor/syntax/doc/manual/stylesheets/ruby.css +0 -17
  915. data/vendor/syntax/doc/manual/tutorial.erb +0 -30
  916. data/vendor/syntax/doc/manual-html/chapter-1.html +0 -198
  917. data/vendor/syntax/doc/manual-html/chapter-2.html +0 -262
  918. data/vendor/syntax/doc/manual-html/chapter-3.html +0 -266
  919. data/vendor/syntax/doc/manual-html/chapter-4.html +0 -267
  920. data/vendor/syntax/doc/manual-html/index.html +0 -152
  921. data/vendor/syntax/doc/manual-html/stylesheets/manual.css +0 -270
  922. data/vendor/syntax/doc/manual-html/stylesheets/ruby.css +0 -17
  923. data/vendor/syntax/lib/syntax/common.rb +0 -163
  924. data/vendor/syntax/lib/syntax/convertors/abstract.rb +0 -27
  925. data/vendor/syntax/lib/syntax/convertors/html.rb +0 -51
  926. data/vendor/syntax/lib/syntax/lang/ruby.rb +0 -317
  927. data/vendor/syntax/lib/syntax/lang/xml.rb +0 -108
  928. data/vendor/syntax/lib/syntax/lang/yaml.rb +0 -105
  929. data/vendor/syntax/lib/syntax/version.rb +0 -9
  930. data/vendor/syntax/lib/syntax.rb +0 -38
  931. data/vendor/syntax/setup.rb +0 -1331
  932. data/vendor/syntax/syntax.gemspec +0 -24
  933. data/vendor/syntax/test/ALL-TESTS.rb +0 -5
  934. data/vendor/syntax/test/syntax/tc_ruby.rb +0 -871
  935. data/vendor/syntax/test/syntax/tc_xml.rb +0 -202
  936. data/vendor/syntax/test/syntax/tc_yaml.rb +0 -228
  937. data/vendor/syntax/test/syntax/tokenizer_testcase.rb +0 -40
  938. data/vendor/syntax/test/tc_syntax.rb +0 -22
@@ -1,5 +1,5 @@
1
- /* Prototype JavaScript framework, version 1.6.0.1
2
- * (c) 2005-2007 Sam Stephenson
1
+ /* Prototype JavaScript framework, version 1.6.0.3
2
+ * (c) 2005-2008 Sam Stephenson
3
3
  *
4
4
  * Prototype is freely distributable under the terms of an MIT-style license.
5
5
  * For details, see the Prototype web site: http://www.prototypejs.org/
@@ -7,23 +7,26 @@
7
7
  *--------------------------------------------------------------------------*/
8
8
 
9
9
  var Prototype = {
10
- Version: '1.6.0.1',
10
+ Version: '1.6.0.3',
11
11
 
12
12
  Browser: {
13
- IE: !!(window.attachEvent && !window.opera),
14
- Opera: !!window.opera,
13
+ IE: !!(window.attachEvent &&
14
+ navigator.userAgent.indexOf('Opera') === -1),
15
+ Opera: navigator.userAgent.indexOf('Opera') > -1,
15
16
  WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,
16
- Gecko: navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('KHTML') == -1,
17
+ Gecko: navigator.userAgent.indexOf('Gecko') > -1 &&
18
+ navigator.userAgent.indexOf('KHTML') === -1,
17
19
  MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/)
18
20
  },
19
21
 
20
22
  BrowserFeatures: {
21
23
  XPath: !!document.evaluate,
24
+ SelectorsAPI: !!document.querySelector,
22
25
  ElementExtensions: !!window.HTMLElement,
23
26
  SpecificElementExtensions:
24
- document.createElement('div').__proto__ &&
25
- document.createElement('div').__proto__ !==
26
- document.createElement('form').__proto__
27
+ document.createElement('div')['__proto__'] &&
28
+ document.createElement('div')['__proto__'] !==
29
+ document.createElement('form')['__proto__']
27
30
  },
28
31
 
29
32
  ScriptFragment: '<script[^>]*>([\\S\\s]*?)<\/script>',
@@ -83,12 +86,13 @@ Class.Methods = {
83
86
  var property = properties[i], value = source[property];
84
87
  if (ancestor && Object.isFunction(value) &&
85
88
  value.argumentNames().first() == "$super") {
86
- var method = value, value = Object.extend((function(m) {
89
+ var method = value;
90
+ value = (function(m) {
87
91
  return function() { return ancestor[m].apply(this, arguments) };
88
- })(property).wrap(method), {
89
- valueOf: function() { return method },
90
- toString: function() { return method.toString() }
91
- });
92
+ })(property).wrap(method);
93
+
94
+ value.valueOf = method.valueOf.bind(method);
95
+ value.toString = method.toString.bind(method);
92
96
  }
93
97
  this.prototype[property] = value;
94
98
  }
@@ -110,7 +114,7 @@ Object.extend(Object, {
110
114
  try {
111
115
  if (Object.isUndefined(object)) return 'undefined';
112
116
  if (object === null) return 'null';
113
- return object.inspect ? object.inspect() : object.toString();
117
+ return object.inspect ? object.inspect() : String(object);
114
118
  } catch (e) {
115
119
  if (e instanceof RangeError) return '...';
116
120
  throw e;
@@ -167,11 +171,12 @@ Object.extend(Object, {
167
171
  },
168
172
 
169
173
  isElement: function(object) {
170
- return object && object.nodeType == 1;
174
+ return !!(object && object.nodeType == 1);
171
175
  },
172
176
 
173
177
  isArray: function(object) {
174
- return object && object.constructor === Array;
178
+ return object != null && typeof object == "object" &&
179
+ 'splice' in object && 'join' in object;
175
180
  },
176
181
 
177
182
  isHash: function(object) {
@@ -197,7 +202,8 @@ Object.extend(Object, {
197
202
 
198
203
  Object.extend(Function.prototype, {
199
204
  argumentNames: function() {
200
- var names = this.toString().match(/^[\s\(]*function[^(]*\((.*?)\)/)[1].split(",").invoke("strip");
205
+ var names = this.toString().match(/^[\s\(]*function[^(]*\(([^\)]*)\)/)[1]
206
+ .replace(/\s+/g, '').split(',');
201
207
  return names.length == 1 && !names[0] ? [] : names;
202
208
  },
203
209
 
@@ -231,6 +237,11 @@ Object.extend(Function.prototype, {
231
237
  }, timeout);
232
238
  },
233
239
 
240
+ defer: function() {
241
+ var args = [0.01].concat($A(arguments));
242
+ return this.delay.apply(this, args);
243
+ },
244
+
234
245
  wrap: function(wrapper) {
235
246
  var __method = this;
236
247
  return function() {
@@ -247,8 +258,6 @@ Object.extend(Function.prototype, {
247
258
  }
248
259
  });
249
260
 
250
- Function.prototype.defer = Function.prototype.delay.curry(0.01);
251
-
252
261
  Date.prototype.toJSON = function() {
253
262
  return '"' + this.getUTCFullYear() + '-' +
254
263
  (this.getUTCMonth() + 1).toPaddedString(2) + '-' +
@@ -529,7 +538,7 @@ if (Prototype.Browser.WebKit || Prototype.Browser.IE) Object.extend(String.proto
529
538
  return this.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');
530
539
  },
531
540
  unescapeHTML: function() {
532
- return this.replace(/&amp;/g,'&').replace(/&lt;/g,'<').replace(/&gt;/g,'>');
541
+ return this.stripTags().replace(/&amp;/g,'&').replace(/&lt;/g,'<').replace(/&gt;/g,'>');
533
542
  }
534
543
  });
535
544
 
@@ -546,7 +555,7 @@ Object.extend(String.prototype.escapeHTML, {
546
555
  text: document.createTextNode('')
547
556
  });
548
557
 
549
- with (String.prototype.escapeHTML) div.appendChild(text);
558
+ String.prototype.escapeHTML.div.appendChild(String.prototype.escapeHTML.text);
550
559
 
551
560
  var Template = Class.create({
552
561
  initialize: function(template, pattern) {
@@ -578,7 +587,7 @@ var Template = Class.create({
578
587
  }
579
588
 
580
589
  return before + String.interpret(ctx);
581
- }.bind(this));
590
+ });
582
591
  }
583
592
  });
584
593
  Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/;
@@ -588,10 +597,9 @@ var $break = { };
588
597
  var Enumerable = {
589
598
  each: function(iterator, context) {
590
599
  var index = 0;
591
- iterator = iterator.bind(context);
592
600
  try {
593
601
  this._each(function(value) {
594
- iterator(value, index++);
602
+ iterator.call(context, value, index++);
595
603
  });
596
604
  } catch (e) {
597
605
  if (e != $break) throw e;
@@ -600,47 +608,46 @@ var Enumerable = {
600
608
  },
601
609
 
602
610
  eachSlice: function(number, iterator, context) {
603
- iterator = iterator ? iterator.bind(context) : Prototype.K;
604
611
  var index = -number, slices = [], array = this.toArray();
612
+ if (number < 1) return array;
605
613
  while ((index += number) < array.length)
606
614
  slices.push(array.slice(index, index+number));
607
615
  return slices.collect(iterator, context);
608
616
  },
609
617
 
610
618
  all: function(iterator, context) {
611
- iterator = iterator ? iterator.bind(context) : Prototype.K;
619
+ iterator = iterator || Prototype.K;
612
620
  var result = true;
613
621
  this.each(function(value, index) {
614
- result = result && !!iterator(value, index);
622
+ result = result && !!iterator.call(context, value, index);
615
623
  if (!result) throw $break;
616
624
  });
617
625
  return result;
618
626
  },
619
627
 
620
628
  any: function(iterator, context) {
621
- iterator = iterator ? iterator.bind(context) : Prototype.K;
629
+ iterator = iterator || Prototype.K;
622
630
  var result = false;
623
631
  this.each(function(value, index) {
624
- if (result = !!iterator(value, index))
632
+ if (result = !!iterator.call(context, value, index))
625
633
  throw $break;
626
634
  });
627
635
  return result;
628
636
  },
629
637
 
630
638
  collect: function(iterator, context) {
631
- iterator = iterator ? iterator.bind(context) : Prototype.K;
639
+ iterator = iterator || Prototype.K;
632
640
  var results = [];
633
641
  this.each(function(value, index) {
634
- results.push(iterator(value, index));
642
+ results.push(iterator.call(context, value, index));
635
643
  });
636
644
  return results;
637
645
  },
638
646
 
639
647
  detect: function(iterator, context) {
640
- iterator = iterator.bind(context);
641
648
  var result;
642
649
  this.each(function(value, index) {
643
- if (iterator(value, index)) {
650
+ if (iterator.call(context, value, index)) {
644
651
  result = value;
645
652
  throw $break;
646
653
  }
@@ -649,17 +656,16 @@ var Enumerable = {
649
656
  },
650
657
 
651
658
  findAll: function(iterator, context) {
652
- iterator = iterator.bind(context);
653
659
  var results = [];
654
660
  this.each(function(value, index) {
655
- if (iterator(value, index))
661
+ if (iterator.call(context, value, index))
656
662
  results.push(value);
657
663
  });
658
664
  return results;
659
665
  },
660
666
 
661
667
  grep: function(filter, iterator, context) {
662
- iterator = iterator ? iterator.bind(context) : Prototype.K;
668
+ iterator = iterator || Prototype.K;
663
669
  var results = [];
664
670
 
665
671
  if (Object.isString(filter))
@@ -667,7 +673,7 @@ var Enumerable = {
667
673
 
668
674
  this.each(function(value, index) {
669
675
  if (filter.match(value))
670
- results.push(iterator(value, index));
676
+ results.push(iterator.call(context, value, index));
671
677
  });
672
678
  return results;
673
679
  },
@@ -695,9 +701,8 @@ var Enumerable = {
695
701
  },
696
702
 
697
703
  inject: function(memo, iterator, context) {
698
- iterator = iterator.bind(context);
699
704
  this.each(function(value, index) {
700
- memo = iterator(memo, value, index);
705
+ memo = iterator.call(context, memo, value, index);
701
706
  });
702
707
  return memo;
703
708
  },
@@ -710,10 +715,10 @@ var Enumerable = {
710
715
  },
711
716
 
712
717
  max: function(iterator, context) {
713
- iterator = iterator ? iterator.bind(context) : Prototype.K;
718
+ iterator = iterator || Prototype.K;
714
719
  var result;
715
720
  this.each(function(value, index) {
716
- value = iterator(value, index);
721
+ value = iterator.call(context, value, index);
717
722
  if (result == null || value >= result)
718
723
  result = value;
719
724
  });
@@ -721,10 +726,10 @@ var Enumerable = {
721
726
  },
722
727
 
723
728
  min: function(iterator, context) {
724
- iterator = iterator ? iterator.bind(context) : Prototype.K;
729
+ iterator = iterator || Prototype.K;
725
730
  var result;
726
731
  this.each(function(value, index) {
727
- value = iterator(value, index);
732
+ value = iterator.call(context, value, index);
728
733
  if (result == null || value < result)
729
734
  result = value;
730
735
  });
@@ -732,10 +737,10 @@ var Enumerable = {
732
737
  },
733
738
 
734
739
  partition: function(iterator, context) {
735
- iterator = iterator ? iterator.bind(context) : Prototype.K;
740
+ iterator = iterator || Prototype.K;
736
741
  var trues = [], falses = [];
737
742
  this.each(function(value, index) {
738
- (iterator(value, index) ?
743
+ (iterator.call(context, value, index) ?
739
744
  trues : falses).push(value);
740
745
  });
741
746
  return [trues, falses];
@@ -750,19 +755,20 @@ var Enumerable = {
750
755
  },
751
756
 
752
757
  reject: function(iterator, context) {
753
- iterator = iterator.bind(context);
754
758
  var results = [];
755
759
  this.each(function(value, index) {
756
- if (!iterator(value, index))
760
+ if (!iterator.call(context, value, index))
757
761
  results.push(value);
758
762
  });
759
763
  return results;
760
764
  },
761
765
 
762
766
  sortBy: function(iterator, context) {
763
- iterator = iterator.bind(context);
764
767
  return this.map(function(value, index) {
765
- return {value: value, criteria: iterator(value, index)};
768
+ return {
769
+ value: value,
770
+ criteria: iterator.call(context, value, index)
771
+ };
766
772
  }).sort(function(left, right) {
767
773
  var a = left.criteria, b = right.criteria;
768
774
  return a < b ? -1 : a > b ? 1 : 0;
@@ -812,14 +818,18 @@ function $A(iterable) {
812
818
  }
813
819
 
814
820
  if (Prototype.Browser.WebKit) {
815
- function $A(iterable) {
821
+ $A = function(iterable) {
816
822
  if (!iterable) return [];
817
- if (!(Object.isFunction(iterable) && iterable == '[object NodeList]') &&
818
- iterable.toArray) return iterable.toArray();
823
+ // In Safari, only use the `toArray` method if it's not a NodeList.
824
+ // A NodeList is a function, has an function `item` property, and a numeric
825
+ // `length` property. Adapted from Google Doctype.
826
+ if (!(typeof iterable === 'function' && typeof iterable.length ===
827
+ 'number' && typeof iterable.item === 'function') && iterable.toArray)
828
+ return iterable.toArray();
819
829
  var length = iterable.length || 0, results = new Array(length);
820
830
  while (length--) results[length] = iterable[length];
821
831
  return results;
822
- }
832
+ };
823
833
  }
824
834
 
825
835
  Array.from = $A;
@@ -962,8 +972,8 @@ Object.extend(Number.prototype, {
962
972
  return this + 1;
963
973
  },
964
974
 
965
- times: function(iterator) {
966
- $R(0, this, true).each(iterator);
975
+ times: function(iterator, context) {
976
+ $R(0, this, true).each(iterator, context);
967
977
  return this;
968
978
  },
969
979
 
@@ -1010,7 +1020,9 @@ var Hash = Class.create(Enumerable, (function() {
1010
1020
  },
1011
1021
 
1012
1022
  get: function(key) {
1013
- return this._object[key];
1023
+ // simulating poorly supported hasOwnProperty
1024
+ if (this._object[key] !== Object.prototype[key])
1025
+ return this._object[key];
1014
1026
  },
1015
1027
 
1016
1028
  unset: function(key) {
@@ -1050,14 +1062,14 @@ var Hash = Class.create(Enumerable, (function() {
1050
1062
  },
1051
1063
 
1052
1064
  toQueryString: function() {
1053
- return this.map(function(pair) {
1065
+ return this.inject([], function(results, pair) {
1054
1066
  var key = encodeURIComponent(pair.key), values = pair.value;
1055
1067
 
1056
1068
  if (values && typeof values == 'object') {
1057
1069
  if (Object.isArray(values))
1058
- return values.map(toQueryPair.curry(key)).join('&');
1059
- }
1060
- return toQueryPair(key, values);
1070
+ return results.concat(values.map(toQueryPair.curry(key)));
1071
+ } else results.push(toQueryPair(key, values));
1072
+ return results;
1061
1073
  }).join('&');
1062
1074
  },
1063
1075
 
@@ -1298,7 +1310,7 @@ Ajax.Request = Class.create(Ajax.Base, {
1298
1310
 
1299
1311
  var contentType = response.getHeader('Content-type');
1300
1312
  if (this.options.evalJS == 'force'
1301
- || (this.options.evalJS && contentType
1313
+ || (this.options.evalJS && this.isSameOrigin() && contentType
1302
1314
  && contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i)))
1303
1315
  this.evalResponse();
1304
1316
  }
@@ -1316,6 +1328,15 @@ Ajax.Request = Class.create(Ajax.Base, {
1316
1328
  }
1317
1329
  },
1318
1330
 
1331
+ isSameOrigin: function() {
1332
+ var m = this.url.match(/^\s*https?:\/\/[^\/]*/);
1333
+ return !m || (m[0] == '#{protocol}//#{domain}#{port}'.interpolate({
1334
+ protocol: location.protocol,
1335
+ domain: document.domain,
1336
+ port: location.port ? ':' + location.port : ''
1337
+ }));
1338
+ },
1339
+
1319
1340
  getHeader: function(name) {
1320
1341
  try {
1321
1342
  return this.transport.getResponseHeader(name) || null;
@@ -1391,7 +1412,8 @@ Ajax.Response = Class.create({
1391
1412
  if (!json) return null;
1392
1413
  json = decodeURIComponent(escape(json));
1393
1414
  try {
1394
- return json.evalJSON(this.request.options.sanitizeJSON);
1415
+ return json.evalJSON(this.request.options.sanitizeJSON ||
1416
+ !this.request.isSameOrigin());
1395
1417
  } catch (e) {
1396
1418
  this.request.dispatchException(e);
1397
1419
  }
@@ -1404,7 +1426,8 @@ Ajax.Response = Class.create({
1404
1426
  this.responseText.blank())
1405
1427
  return null;
1406
1428
  try {
1407
- return this.responseText.evalJSON(options.sanitizeJSON);
1429
+ return this.responseText.evalJSON(options.sanitizeJSON ||
1430
+ !this.request.isSameOrigin());
1408
1431
  } catch (e) {
1409
1432
  this.request.dispatchException(e);
1410
1433
  }
@@ -1546,6 +1569,7 @@ if (!Node.ELEMENT_NODE) {
1546
1569
  return Element.writeAttribute(cache[tagName].cloneNode(false), attributes);
1547
1570
  };
1548
1571
  Object.extend(this.Element, element || { });
1572
+ if (element) this.Element.prototype = element.prototype;
1549
1573
  }).call(window);
1550
1574
 
1551
1575
  Element.cache = { };
@@ -1562,12 +1586,14 @@ Element.Methods = {
1562
1586
  },
1563
1587
 
1564
1588
  hide: function(element) {
1565
- $(element).style.display = 'none';
1589
+ element = $(element);
1590
+ element.style.display = 'none';
1566
1591
  return element;
1567
1592
  },
1568
1593
 
1569
1594
  show: function(element) {
1570
- $(element).style.display = '';
1595
+ element = $(element);
1596
+ element.style.display = '';
1571
1597
  return element;
1572
1598
  },
1573
1599
 
@@ -1610,7 +1636,7 @@ Element.Methods = {
1610
1636
 
1611
1637
  var content, insert, tagName, childNodes;
1612
1638
 
1613
- for (position in insertions) {
1639
+ for (var position in insertions) {
1614
1640
  content = insertions[position];
1615
1641
  position = position.toLowerCase();
1616
1642
  insert = Element._insertionTranslations[position];
@@ -1674,7 +1700,7 @@ Element.Methods = {
1674
1700
  },
1675
1701
 
1676
1702
  descendants: function(element) {
1677
- return $(element).getElementsBySelector("*");
1703
+ return $(element).select("*");
1678
1704
  },
1679
1705
 
1680
1706
  firstDescendant: function(element) {
@@ -1721,7 +1747,7 @@ Element.Methods = {
1721
1747
  element = $(element);
1722
1748
  if (arguments.length == 1) return element.firstDescendant();
1723
1749
  return Object.isNumber(expression) ? element.descendants()[expression] :
1724
- element.select(expression)[index || 0];
1750
+ Element.select(element, expression)[index || 0];
1725
1751
  },
1726
1752
 
1727
1753
  previous: function(element, expression, index) {
@@ -1851,23 +1877,16 @@ Element.Methods = {
1851
1877
 
1852
1878
  descendantOf: function(element, ancestor) {
1853
1879
  element = $(element), ancestor = $(ancestor);
1854
- var originalAncestor = ancestor;
1855
1880
 
1856
1881
  if (element.compareDocumentPosition)
1857
1882
  return (element.compareDocumentPosition(ancestor) & 8) === 8;
1858
1883
 
1859
- if (element.sourceIndex && !Prototype.Browser.Opera) {
1860
- var e = element.sourceIndex, a = ancestor.sourceIndex,
1861
- nextAncestor = ancestor.nextSibling;
1862
- if (!nextAncestor) {
1863
- do { ancestor = ancestor.parentNode; }
1864
- while (!(nextAncestor = ancestor.nextSibling) && ancestor.parentNode);
1865
- }
1866
- if (nextAncestor) return (e > a && e < nextAncestor.sourceIndex);
1867
- }
1884
+ if (ancestor.contains)
1885
+ return ancestor.contains(element) && ancestor !== element;
1868
1886
 
1869
1887
  while (element = element.parentNode)
1870
- if (element == originalAncestor) return true;
1888
+ if (element == ancestor) return true;
1889
+
1871
1890
  return false;
1872
1891
  },
1873
1892
 
@@ -1882,7 +1901,7 @@ Element.Methods = {
1882
1901
  element = $(element);
1883
1902
  style = style == 'float' ? 'cssFloat' : style.camelize();
1884
1903
  var value = element.style[style];
1885
- if (!value) {
1904
+ if (!value || value == 'auto') {
1886
1905
  var css = document.defaultView.getComputedStyle(element, null);
1887
1906
  value = css ? css[style] : null;
1888
1907
  }
@@ -1921,7 +1940,7 @@ Element.Methods = {
1921
1940
 
1922
1941
  getDimensions: function(element) {
1923
1942
  element = $(element);
1924
- var display = $(element).getStyle('display');
1943
+ var display = element.getStyle('display');
1925
1944
  if (display != 'none' && display != null) // Safari bug
1926
1945
  return {width: element.offsetWidth, height: element.offsetHeight};
1927
1946
 
@@ -1950,7 +1969,7 @@ Element.Methods = {
1950
1969
  element.style.position = 'relative';
1951
1970
  // Opera returns the offset relative to the positioning context, when an
1952
1971
  // element is position relative but top and left have not been defined
1953
- if (window.opera) {
1972
+ if (Prototype.Browser.Opera) {
1954
1973
  element.style.top = 0;
1955
1974
  element.style.left = 0;
1956
1975
  }
@@ -2005,9 +2024,9 @@ Element.Methods = {
2005
2024
  valueL += element.offsetLeft || 0;
2006
2025
  element = element.offsetParent;
2007
2026
  if (element) {
2008
- if (element.tagName == 'BODY') break;
2027
+ if (element.tagName.toUpperCase() == 'BODY') break;
2009
2028
  var p = Element.getStyle(element, 'position');
2010
- if (p == 'relative' || p == 'absolute') break;
2029
+ if (p !== 'static') break;
2011
2030
  }
2012
2031
  } while (element);
2013
2032
  return Element._returnOffset(valueL, valueT);
@@ -2015,7 +2034,7 @@ Element.Methods = {
2015
2034
 
2016
2035
  absolutize: function(element) {
2017
2036
  element = $(element);
2018
- if (element.getStyle('position') == 'absolute') return;
2037
+ if (element.getStyle('position') == 'absolute') return element;
2019
2038
  // Position.prepare(); // To be done manually by Scripty when it needs it.
2020
2039
 
2021
2040
  var offsets = element.positionedOffset();
@@ -2039,7 +2058,7 @@ Element.Methods = {
2039
2058
 
2040
2059
  relativize: function(element) {
2041
2060
  element = $(element);
2042
- if (element.getStyle('position') == 'relative') return;
2061
+ if (element.getStyle('position') == 'relative') return element;
2043
2062
  // Position.prepare(); // To be done manually by Scripty when it needs it.
2044
2063
 
2045
2064
  element.style.position = 'relative';
@@ -2090,7 +2109,7 @@ Element.Methods = {
2090
2109
 
2091
2110
  element = forElement;
2092
2111
  do {
2093
- if (!Prototype.Browser.Opera || element.tagName == 'BODY') {
2112
+ if (!Prototype.Browser.Opera || (element.tagName && (element.tagName.toUpperCase() == 'BODY'))) {
2094
2113
  valueT -= element.scrollTop || 0;
2095
2114
  valueL -= element.scrollLeft || 0;
2096
2115
  }
@@ -2200,12 +2219,36 @@ if (Prototype.Browser.Opera) {
2200
2219
  }
2201
2220
 
2202
2221
  else if (Prototype.Browser.IE) {
2203
- $w('positionedOffset getOffsetParent viewportOffset').each(function(method) {
2222
+ // IE doesn't report offsets correctly for static elements, so we change them
2223
+ // to "relative" to get the values, then change them back.
2224
+ Element.Methods.getOffsetParent = Element.Methods.getOffsetParent.wrap(
2225
+ function(proceed, element) {
2226
+ element = $(element);
2227
+ // IE throws an error if element is not in document
2228
+ try { element.offsetParent }
2229
+ catch(e) { return $(document.body) }
2230
+ var position = element.getStyle('position');
2231
+ if (position !== 'static') return proceed(element);
2232
+ element.setStyle({ position: 'relative' });
2233
+ var value = proceed(element);
2234
+ element.setStyle({ position: position });
2235
+ return value;
2236
+ }
2237
+ );
2238
+
2239
+ $w('positionedOffset viewportOffset').each(function(method) {
2204
2240
  Element.Methods[method] = Element.Methods[method].wrap(
2205
2241
  function(proceed, element) {
2206
2242
  element = $(element);
2243
+ try { element.offsetParent }
2244
+ catch(e) { return Element._returnOffset(0,0) }
2207
2245
  var position = element.getStyle('position');
2208
- if (position != 'static') return proceed(element);
2246
+ if (position !== 'static') return proceed(element);
2247
+ // Trigger hasLayout on the offset parent so that IE6 reports
2248
+ // accurate offsetTop and offsetLeft values for position: fixed.
2249
+ var offsetParent = element.getOffsetParent();
2250
+ if (offsetParent && offsetParent.getStyle('position') === 'fixed')
2251
+ offsetParent.setStyle({ zoom: 1 });
2209
2252
  element.setStyle({ position: 'relative' });
2210
2253
  var value = proceed(element);
2211
2254
  element.setStyle({ position: position });
@@ -2214,6 +2257,14 @@ else if (Prototype.Browser.IE) {
2214
2257
  );
2215
2258
  });
2216
2259
 
2260
+ Element.Methods.cumulativeOffset = Element.Methods.cumulativeOffset.wrap(
2261
+ function(proceed, element) {
2262
+ try { element.offsetParent }
2263
+ catch(e) { return Element._returnOffset(0,0) }
2264
+ return proceed(element);
2265
+ }
2266
+ );
2267
+
2217
2268
  Element.Methods.getStyle = function(element, style) {
2218
2269
  element = $(element);
2219
2270
  style = (style == 'float' || style == 'cssFloat') ? 'styleFloat' : style.camelize();
@@ -2287,7 +2338,10 @@ else if (Prototype.Browser.IE) {
2287
2338
  };
2288
2339
 
2289
2340
  Element._attributeTranslations.write = {
2290
- names: Object.clone(Element._attributeTranslations.read.names),
2341
+ names: Object.extend({
2342
+ cellpadding: 'cellPadding',
2343
+ cellspacing: 'cellSpacing'
2344
+ }, Element._attributeTranslations.read.names),
2291
2345
  values: {
2292
2346
  checked: function(element, value) {
2293
2347
  element.checked = !!value;
@@ -2302,7 +2356,7 @@ else if (Prototype.Browser.IE) {
2302
2356
  Element._attributeTranslations.has = {};
2303
2357
 
2304
2358
  $w('colSpan rowSpan vAlign dateTime accessKey tabIndex ' +
2305
- 'encType maxLength readOnly longDesc').each(function(attr) {
2359
+ 'encType maxLength readOnly longDesc frameBorder').each(function(attr) {
2306
2360
  Element._attributeTranslations.write.names[attr.toLowerCase()] = attr;
2307
2361
  Element._attributeTranslations.has[attr.toLowerCase()] = attr;
2308
2362
  });
@@ -2355,7 +2409,7 @@ else if (Prototype.Browser.WebKit) {
2355
2409
  (value < 0.00001) ? 0 : value;
2356
2410
 
2357
2411
  if (value == 1)
2358
- if(element.tagName == 'IMG' && element.width) {
2412
+ if(element.tagName.toUpperCase() == 'IMG' && element.width) {
2359
2413
  element.width++; element.width--;
2360
2414
  } else try {
2361
2415
  var n = document.createTextNode(' ');
@@ -2407,7 +2461,7 @@ if (Prototype.Browser.IE || Prototype.Browser.Opera) {
2407
2461
  };
2408
2462
  }
2409
2463
 
2410
- if (document.createElement('div').outerHTML) {
2464
+ if ('outerHTML' in document.createElement('div')) {
2411
2465
  Element.Methods.replace = function(element, content) {
2412
2466
  element = $(element);
2413
2467
 
@@ -2486,7 +2540,7 @@ Element.Methods.Simulated = {
2486
2540
  hasAttribute: function(element, attribute) {
2487
2541
  attribute = Element._attributeTranslations.has[attribute] || attribute;
2488
2542
  var node = $(element).getAttributeNode(attribute);
2489
- return node && node.specified;
2543
+ return !!(node && node.specified);
2490
2544
  }
2491
2545
  };
2492
2546
 
@@ -2495,9 +2549,9 @@ Element.Methods.ByTag = { };
2495
2549
  Object.extend(Element, Element.Methods);
2496
2550
 
2497
2551
  if (!Prototype.BrowserFeatures.ElementExtensions &&
2498
- document.createElement('div').__proto__) {
2552
+ document.createElement('div')['__proto__']) {
2499
2553
  window.HTMLElement = { };
2500
- window.HTMLElement.prototype = document.createElement('div').__proto__;
2554
+ window.HTMLElement.prototype = document.createElement('div')['__proto__'];
2501
2555
  Prototype.BrowserFeatures.ElementExtensions = true;
2502
2556
  }
2503
2557
 
@@ -2512,7 +2566,7 @@ Element.extend = (function() {
2512
2566
  element.nodeType != 1 || element == window) return element;
2513
2567
 
2514
2568
  var methods = Object.clone(Methods),
2515
- tagName = element.tagName, property, value;
2569
+ tagName = element.tagName.toUpperCase(), property, value;
2516
2570
 
2517
2571
  // extend methods for specific tags
2518
2572
  if (ByTag[tagName]) Object.extend(methods, ByTag[tagName]);
@@ -2608,7 +2662,7 @@ Element.addMethods = function(methods) {
2608
2662
  if (window[klass]) return window[klass];
2609
2663
 
2610
2664
  window[klass] = { };
2611
- window[klass].prototype = document.createElement(tagName).__proto__;
2665
+ window[klass].prototype = document.createElement(tagName)['__proto__'];
2612
2666
  return window[klass];
2613
2667
  }
2614
2668
 
@@ -2634,12 +2688,18 @@ Element.addMethods = function(methods) {
2634
2688
 
2635
2689
  document.viewport = {
2636
2690
  getDimensions: function() {
2637
- var dimensions = { };
2638
- var B = Prototype.Browser;
2691
+ var dimensions = { }, B = Prototype.Browser;
2639
2692
  $w('width height').each(function(d) {
2640
2693
  var D = d.capitalize();
2641
- dimensions[d] = (B.WebKit && !document.evaluate) ? self['inner' + D] :
2642
- (B.Opera) ? document.body['client' + D] : document.documentElement['client' + D];
2694
+ if (B.WebKit && !document.evaluate) {
2695
+ // Safari <3.0 needs self.innerWidth/Height
2696
+ dimensions[d] = self['inner' + D];
2697
+ } else if (B.Opera && parseFloat(window.opera.version()) < 9.5) {
2698
+ // Opera <9.5 needs document.body.clientWidth/Height
2699
+ dimensions[d] = document.body['client' + D]
2700
+ } else {
2701
+ dimensions[d] = document.documentElement['client' + D];
2702
+ }
2643
2703
  });
2644
2704
  return dimensions;
2645
2705
  },
@@ -2658,14 +2718,24 @@ document.viewport = {
2658
2718
  window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop);
2659
2719
  }
2660
2720
  };
2661
- /* Portions of the Selector class are derived from Jack Slocums DomQuery,
2721
+ /* Portions of the Selector class are derived from Jack Slocum's DomQuery,
2662
2722
  * part of YUI-Ext version 0.40, distributed under the terms of an MIT-style
2663
2723
  * license. Please see http://www.yui-ext.com/ for more information. */
2664
2724
 
2665
2725
  var Selector = Class.create({
2666
2726
  initialize: function(expression) {
2667
2727
  this.expression = expression.strip();
2668
- this.compileMatcher();
2728
+
2729
+ if (this.shouldUseSelectorsAPI()) {
2730
+ this.mode = 'selectorsAPI';
2731
+ } else if (this.shouldUseXPath()) {
2732
+ this.mode = 'xpath';
2733
+ this.compileXPathMatcher();
2734
+ } else {
2735
+ this.mode = "normal";
2736
+ this.compileMatcher();
2737
+ }
2738
+
2669
2739
  },
2670
2740
 
2671
2741
  shouldUseXPath: function() {
@@ -2680,16 +2750,29 @@ var Selector = Class.create({
2680
2750
 
2681
2751
  // XPath can't do namespaced attributes, nor can it read
2682
2752
  // the "checked" property from DOM nodes
2683
- if ((/(\[[\w-]*?:|:checked)/).test(this.expression))
2753
+ if ((/(\[[\w-]*?:|:checked)/).test(e))
2684
2754
  return false;
2685
2755
 
2686
2756
  return true;
2687
2757
  },
2688
2758
 
2689
- compileMatcher: function() {
2690
- if (this.shouldUseXPath())
2691
- return this.compileXPathMatcher();
2759
+ shouldUseSelectorsAPI: function() {
2760
+ if (!Prototype.BrowserFeatures.SelectorsAPI) return false;
2761
+
2762
+ if (!Selector._div) Selector._div = new Element('div');
2763
+
2764
+ // Make sure the browser treats the selector as valid. Test on an
2765
+ // isolated element to minimize cost of this check.
2766
+ try {
2767
+ Selector._div.querySelector(this.expression);
2768
+ } catch(e) {
2769
+ return false;
2770
+ }
2771
+
2772
+ return true;
2773
+ },
2692
2774
 
2775
+ compileMatcher: function() {
2693
2776
  var e = this.expression, ps = Selector.patterns, h = Selector.handlers,
2694
2777
  c = Selector.criteria, le, p, m;
2695
2778
 
@@ -2707,7 +2790,7 @@ var Selector = Class.create({
2707
2790
  p = ps[i];
2708
2791
  if (m = e.match(p)) {
2709
2792
  this.matcher.push(Object.isFunction(c[i]) ? c[i](m) :
2710
- new Template(c[i]).evaluate(m));
2793
+ new Template(c[i]).evaluate(m));
2711
2794
  e = e.replace(m[0], '');
2712
2795
  break;
2713
2796
  }
@@ -2746,8 +2829,27 @@ var Selector = Class.create({
2746
2829
 
2747
2830
  findElements: function(root) {
2748
2831
  root = root || document;
2749
- if (this.xpath) return document._getElementsByXPath(this.xpath, root);
2750
- return this.matcher(root);
2832
+ var e = this.expression, results;
2833
+
2834
+ switch (this.mode) {
2835
+ case 'selectorsAPI':
2836
+ // querySelectorAll queries document-wide, then filters to descendants
2837
+ // of the context element. That's not what we want.
2838
+ // Add an explicit context to the selector if necessary.
2839
+ if (root !== document) {
2840
+ var oldId = root.id, id = $(root).identify();
2841
+ e = "#" + id + " " + e;
2842
+ }
2843
+
2844
+ results = $A(root.querySelectorAll(e)).map(Element.extend);
2845
+ root.id = oldId;
2846
+
2847
+ return results;
2848
+ case 'xpath':
2849
+ return document._getElementsByXPath(this.xpath, root);
2850
+ default:
2851
+ return this.matcher(root);
2852
+ }
2751
2853
  },
2752
2854
 
2753
2855
  match: function(element) {
@@ -2838,10 +2940,10 @@ Object.extend(Selector, {
2838
2940
  'first-child': '[not(preceding-sibling::*)]',
2839
2941
  'last-child': '[not(following-sibling::*)]',
2840
2942
  'only-child': '[not(preceding-sibling::* or following-sibling::*)]',
2841
- 'empty': "[count(*) = 0 and (count(text()) = 0 or translate(text(), ' \t\r\n', '') = '')]",
2943
+ 'empty': "[count(*) = 0 and (count(text()) = 0)]",
2842
2944
  'checked': "[@checked]",
2843
- 'disabled': "[@disabled]",
2844
- 'enabled': "[not(@disabled)]",
2945
+ 'disabled': "[(@disabled) and (@type!='hidden')]",
2946
+ 'enabled': "[not(@disabled) and (@type!='hidden')]",
2845
2947
  'not': function(m) {
2846
2948
  var e = m[6], p = Selector.patterns,
2847
2949
  x = Selector.xpath, le, v;
@@ -2901,13 +3003,13 @@ Object.extend(Selector, {
2901
3003
  },
2902
3004
 
2903
3005
  criteria: {
2904
- tagName: 'n = h.tagName(n, r, "#{1}", c); c = false;',
2905
- className: 'n = h.className(n, r, "#{1}", c); c = false;',
2906
- id: 'n = h.id(n, r, "#{1}", c); c = false;',
2907
- attrPresence: 'n = h.attrPresence(n, r, "#{1}"); c = false;',
3006
+ tagName: 'n = h.tagName(n, r, "#{1}", c); c = false;',
3007
+ className: 'n = h.className(n, r, "#{1}", c); c = false;',
3008
+ id: 'n = h.id(n, r, "#{1}", c); c = false;',
3009
+ attrPresence: 'n = h.attrPresence(n, r, "#{1}", c); c = false;',
2908
3010
  attr: function(m) {
2909
3011
  m[3] = (m[5] || m[6]);
2910
- return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}"); c = false;').evaluate(m);
3012
+ return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}", c); c = false;').evaluate(m);
2911
3013
  },
2912
3014
  pseudo: function(m) {
2913
3015
  if (m[6]) m[6] = m[6].replace(/"/g, '\\"');
@@ -2933,7 +3035,7 @@ Object.extend(Selector, {
2933
3035
  className: /^\.([\w\-\*]+)(\b|$)/,
2934
3036
  pseudo:
2935
3037
  /^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|(?=\s|[:+~>]))/,
2936
- attrPresence: /^\[([\w]+)\]/,
3038
+ attrPresence: /^\[((?:[\w]+:)?[\w]+)\]/,
2937
3039
  attr: /\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\4]*?)\4|([^'"][^\]]*?)))?\]/
2938
3040
  },
2939
3041
 
@@ -2957,7 +3059,7 @@ Object.extend(Selector, {
2957
3059
 
2958
3060
  attr: function(element, matches) {
2959
3061
  var nodeValue = Element.readAttribute(element, matches[1]);
2960
- return Selector.operators[matches[2]](nodeValue, matches[3]);
3062
+ return nodeValue && Selector.operators[matches[2]](nodeValue, matches[5] || matches[6]);
2961
3063
  }
2962
3064
  },
2963
3065
 
@@ -2972,14 +3074,15 @@ Object.extend(Selector, {
2972
3074
 
2973
3075
  // marks an array of nodes for counting
2974
3076
  mark: function(nodes) {
3077
+ var _true = Prototype.emptyFunction;
2975
3078
  for (var i = 0, node; node = nodes[i]; i++)
2976
- node._counted = true;
3079
+ node._countedByPrototype = _true;
2977
3080
  return nodes;
2978
3081
  },
2979
3082
 
2980
3083
  unmark: function(nodes) {
2981
3084
  for (var i = 0, node; node = nodes[i]; i++)
2982
- node._counted = undefined;
3085
+ node._countedByPrototype = undefined;
2983
3086
  return nodes;
2984
3087
  },
2985
3088
 
@@ -2987,15 +3090,15 @@ Object.extend(Selector, {
2987
3090
  // "ofType" flag indicates whether we're indexing for nth-of-type
2988
3091
  // rather than nth-child
2989
3092
  index: function(parentNode, reverse, ofType) {
2990
- parentNode._counted = true;
3093
+ parentNode._countedByPrototype = Prototype.emptyFunction;
2991
3094
  if (reverse) {
2992
3095
  for (var nodes = parentNode.childNodes, i = nodes.length - 1, j = 1; i >= 0; i--) {
2993
3096
  var node = nodes[i];
2994
- if (node.nodeType == 1 && (!ofType || node._counted)) node.nodeIndex = j++;
3097
+ if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++;
2995
3098
  }
2996
3099
  } else {
2997
3100
  for (var i = 0, j = 1, nodes = parentNode.childNodes; node = nodes[i]; i++)
2998
- if (node.nodeType == 1 && (!ofType || node._counted)) node.nodeIndex = j++;
3101
+ if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++;
2999
3102
  }
3000
3103
  },
3001
3104
 
@@ -3004,8 +3107,8 @@ Object.extend(Selector, {
3004
3107
  if (nodes.length == 0) return nodes;
3005
3108
  var results = [], n;
3006
3109
  for (var i = 0, l = nodes.length; i < l; i++)
3007
- if (!(n = nodes[i])._counted) {
3008
- n._counted = true;
3110
+ if (!(n = nodes[i])._countedByPrototype) {
3111
+ n._countedByPrototype = Prototype.emptyFunction;
3009
3112
  results.push(Element.extend(n));
3010
3113
  }
3011
3114
  return Selector.handlers.unmark(results);
@@ -3045,7 +3148,7 @@ Object.extend(Selector, {
3045
3148
 
3046
3149
  nextElementSibling: function(node) {
3047
3150
  while (node = node.nextSibling)
3048
- if (node.nodeType == 1) return node;
3151
+ if (node.nodeType == 1) return node;
3049
3152
  return null;
3050
3153
  },
3051
3154
 
@@ -3117,16 +3220,18 @@ Object.extend(Selector, {
3117
3220
  return results;
3118
3221
  },
3119
3222
 
3120
- attrPresence: function(nodes, root, attr) {
3223
+ attrPresence: function(nodes, root, attr, combinator) {
3121
3224
  if (!nodes) nodes = root.getElementsByTagName("*");
3225
+ if (nodes && combinator) nodes = this[combinator](nodes);
3122
3226
  var results = [];
3123
3227
  for (var i = 0, node; node = nodes[i]; i++)
3124
3228
  if (Element.hasAttribute(node, attr)) results.push(node);
3125
3229
  return results;
3126
3230
  },
3127
3231
 
3128
- attr: function(nodes, root, attr, value, operator) {
3232
+ attr: function(nodes, root, attr, value, operator, combinator) {
3129
3233
  if (!nodes) nodes = root.getElementsByTagName("*");
3234
+ if (nodes && combinator) nodes = this[combinator](nodes);
3130
3235
  var handler = Selector.operators[operator], results = [];
3131
3236
  for (var i = 0, node; node = nodes[i]; i++) {
3132
3237
  var nodeValue = Element.readAttribute(node, attr);
@@ -3205,7 +3310,7 @@ Object.extend(Selector, {
3205
3310
  var h = Selector.handlers, results = [], indexed = [], m;
3206
3311
  h.mark(nodes);
3207
3312
  for (var i = 0, node; node = nodes[i]; i++) {
3208
- if (!node.parentNode._counted) {
3313
+ if (!node.parentNode._countedByPrototype) {
3209
3314
  h.index(node.parentNode, reverse, ofType);
3210
3315
  indexed.push(node.parentNode);
3211
3316
  }
@@ -3232,7 +3337,7 @@ Object.extend(Selector, {
3232
3337
  'empty': function(nodes, value, root) {
3233
3338
  for (var i = 0, results = [], node; node = nodes[i]; i++) {
3234
3339
  // IE treats comments as element nodes
3235
- if (node.tagName == '!' || (node.firstChild && !node.innerHTML.match(/^\s*$/))) continue;
3340
+ if (node.tagName == '!' || node.firstChild) continue;
3236
3341
  results.push(node);
3237
3342
  }
3238
3343
  return results;
@@ -3243,14 +3348,15 @@ Object.extend(Selector, {
3243
3348
  var exclusions = new Selector(selector).findElements(root);
3244
3349
  h.mark(exclusions);
3245
3350
  for (var i = 0, results = [], node; node = nodes[i]; i++)
3246
- if (!node._counted) results.push(node);
3351
+ if (!node._countedByPrototype) results.push(node);
3247
3352
  h.unmark(exclusions);
3248
3353
  return results;
3249
3354
  },
3250
3355
 
3251
3356
  'enabled': function(nodes, value, root) {
3252
3357
  for (var i = 0, results = [], node; node = nodes[i]; i++)
3253
- if (!node.disabled) results.push(node);
3358
+ if (!node.disabled && (!node.type || node.type !== 'hidden'))
3359
+ results.push(node);
3254
3360
  return results;
3255
3361
  },
3256
3362
 
@@ -3270,18 +3376,29 @@ Object.extend(Selector, {
3270
3376
  operators: {
3271
3377
  '=': function(nv, v) { return nv == v; },
3272
3378
  '!=': function(nv, v) { return nv != v; },
3273
- '^=': function(nv, v) { return nv.startsWith(v); },
3379
+ '^=': function(nv, v) { return nv == v || nv && nv.startsWith(v); },
3380
+ '$=': function(nv, v) { return nv == v || nv && nv.endsWith(v); },
3381
+ '*=': function(nv, v) { return nv == v || nv && nv.include(v); },
3274
3382
  '$=': function(nv, v) { return nv.endsWith(v); },
3275
3383
  '*=': function(nv, v) { return nv.include(v); },
3276
3384
  '~=': function(nv, v) { return (' ' + nv + ' ').include(' ' + v + ' '); },
3277
- '|=': function(nv, v) { return ('-' + nv.toUpperCase() + '-').include('-' + v.toUpperCase() + '-'); }
3385
+ '|=': function(nv, v) { return ('-' + (nv || "").toUpperCase() +
3386
+ '-').include('-' + (v || "").toUpperCase() + '-'); }
3387
+ },
3388
+
3389
+ split: function(expression) {
3390
+ var expressions = [];
3391
+ expression.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m) {
3392
+ expressions.push(m[1].strip());
3393
+ });
3394
+ return expressions;
3278
3395
  },
3279
3396
 
3280
3397
  matchElements: function(elements, expression) {
3281
- var matches = new Selector(expression).findElements(), h = Selector.handlers;
3398
+ var matches = $$(expression), h = Selector.handlers;
3282
3399
  h.mark(matches);
3283
3400
  for (var i = 0, results = [], element; element = elements[i]; i++)
3284
- if (element._counted) results.push(element);
3401
+ if (element._countedByPrototype) results.push(element);
3285
3402
  h.unmark(matches);
3286
3403
  return results;
3287
3404
  },
@@ -3294,11 +3411,7 @@ Object.extend(Selector, {
3294
3411
  },
3295
3412
 
3296
3413
  findChildElements: function(element, expressions) {
3297
- var exprs = expressions.join(',');
3298
- expressions = [];
3299
- exprs.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m) {
3300
- expressions.push(m[1].strip());
3301
- });
3414
+ expressions = Selector.split(expressions.join(','));
3302
3415
  var results = [], h = Selector.handlers;
3303
3416
  for (var i = 0, l = expressions.length, selector; i < l; i++) {
3304
3417
  selector = new Selector(expressions[i].strip());
@@ -3309,13 +3422,22 @@ Object.extend(Selector, {
3309
3422
  });
3310
3423
 
3311
3424
  if (Prototype.Browser.IE) {
3312
- // IE returns comment nodes on getElementsByTagName("*").
3313
- // Filter them out.
3314
- Selector.handlers.concat = function(a, b) {
3315
- for (var i = 0, node; node = b[i]; i++)
3316
- if (node.tagName !== "!") a.push(node);
3317
- return a;
3318
- };
3425
+ Object.extend(Selector.handlers, {
3426
+ // IE returns comment nodes on getElementsByTagName("*").
3427
+ // Filter them out.
3428
+ concat: function(a, b) {
3429
+ for (var i = 0, node; node = b[i]; i++)
3430
+ if (node.tagName !== "!") a.push(node);
3431
+ return a;
3432
+ },
3433
+
3434
+ // IE improperly serializes _countedByPrototype in (inner|outer)HTML.
3435
+ unmark: function(nodes) {
3436
+ for (var i = 0, node; node = nodes[i]; i++)
3437
+ node.removeAttribute('_countedByPrototype');
3438
+ return nodes;
3439
+ }
3440
+ });
3319
3441
  }
3320
3442
 
3321
3443
  function $$() {
@@ -3335,7 +3457,7 @@ var Form = {
3335
3457
  var data = elements.inject({ }, function(result, element) {
3336
3458
  if (!element.disabled && element.name) {
3337
3459
  key = element.name; value = $(element).getValue();
3338
- if (value != null && (element.type != 'submit' || (!submitted &&
3460
+ if (value != null && element.type != 'file' && (element.type != 'submit' || (!submitted &&
3339
3461
  submit !== false && (!submit || key == submit) && (submitted = true)))) {
3340
3462
  if (key in result) {
3341
3463
  // a key is already present; construct an array of values
@@ -3496,7 +3618,6 @@ Form.Element.Methods = {
3496
3618
 
3497
3619
  disable: function(element) {
3498
3620
  element = $(element);
3499
- element.blur();
3500
3621
  element.disabled = true;
3501
3622
  return element;
3502
3623
  },
@@ -3536,22 +3657,22 @@ Form.Element.Serializers = {
3536
3657
  else element.value = value;
3537
3658
  },
3538
3659
 
3539
- select: function(element, index) {
3540
- if (Object.isUndefined(index))
3660
+ select: function(element, value) {
3661
+ if (Object.isUndefined(value))
3541
3662
  return this[element.type == 'select-one' ?
3542
3663
  'selectOne' : 'selectMany'](element);
3543
3664
  else {
3544
- var opt, value, single = !Object.isArray(index);
3665
+ var opt, currentValue, single = !Object.isArray(value);
3545
3666
  for (var i = 0, length = element.length; i < length; i++) {
3546
3667
  opt = element.options[i];
3547
- value = this.optionValue(opt);
3668
+ currentValue = this.optionValue(opt);
3548
3669
  if (single) {
3549
- if (value == index) {
3670
+ if (currentValue == value) {
3550
3671
  opt.selected = true;
3551
3672
  return;
3552
3673
  }
3553
3674
  }
3554
- else opt.selected = index.include(value);
3675
+ else opt.selected = value.include(currentValue);
3555
3676
  }
3556
3677
  }
3557
3678
  },
@@ -3722,8 +3843,23 @@ Event.Methods = (function() {
3722
3843
  isRightClick: function(event) { return isButton(event, 2) },
3723
3844
 
3724
3845
  element: function(event) {
3725
- var node = Event.extend(event).target;
3726
- return Element.extend(node.nodeType == Node.TEXT_NODE ? node.parentNode : node);
3846
+ event = Event.extend(event);
3847
+
3848
+ var node = event.target,
3849
+ type = event.type,
3850
+ currentTarget = event.currentTarget;
3851
+
3852
+ if (currentTarget && currentTarget.tagName) {
3853
+ // Firefox screws up the "click" event when moving between radio buttons
3854
+ // via arrow keys. It also screws up the "load" and "error" events on images,
3855
+ // reporting the document as the target instead of the original image.
3856
+ if (type === 'load' || type === 'error' ||
3857
+ (type === 'click' && currentTarget.tagName.toLowerCase() === 'input'
3858
+ && currentTarget.type === 'radio'))
3859
+ node = currentTarget;
3860
+ }
3861
+ if (node.nodeType == Node.TEXT_NODE) node = node.parentNode;
3862
+ return Element.extend(node);
3727
3863
  },
3728
3864
 
3729
3865
  findElement: function(event, expression) {
@@ -3734,11 +3870,15 @@ Event.Methods = (function() {
3734
3870
  },
3735
3871
 
3736
3872
  pointer: function(event) {
3873
+ var docElement = document.documentElement,
3874
+ body = document.body || { scrollLeft: 0, scrollTop: 0 };
3737
3875
  return {
3738
3876
  x: event.pageX || (event.clientX +
3739
- (document.documentElement.scrollLeft || document.body.scrollLeft)),
3877
+ (docElement.scrollLeft || body.scrollLeft) -
3878
+ (docElement.clientLeft || 0)),
3740
3879
  y: event.pageY || (event.clientY +
3741
- (document.documentElement.scrollTop || document.body.scrollTop))
3880
+ (docElement.scrollTop || body.scrollTop) -
3881
+ (docElement.clientTop || 0))
3742
3882
  };
3743
3883
  },
3744
3884
 
@@ -3783,7 +3923,7 @@ Event.extend = (function() {
3783
3923
  };
3784
3924
 
3785
3925
  } else {
3786
- Event.prototype = Event.prototype || document.createEvent("HTMLEvents").__proto__;
3926
+ Event.prototype = Event.prototype || document.createEvent("HTMLEvents")['__proto__'];
3787
3927
  Object.extend(Event.prototype, methods);
3788
3928
  return Prototype.K;
3789
3929
  }
@@ -3793,9 +3933,9 @@ Object.extend(Event, (function() {
3793
3933
  var cache = Event.cache;
3794
3934
 
3795
3935
  function getEventID(element) {
3796
- if (element._eventID) return element._eventID;
3936
+ if (element._prototypeEventID) return element._prototypeEventID[0];
3797
3937
  arguments.callee.id = arguments.callee.id || 1;
3798
- return element._eventID = ++arguments.callee.id;
3938
+ return element._prototypeEventID = [++arguments.callee.id];
3799
3939
  }
3800
3940
 
3801
3941
  function getDOMEventName(eventName) {
@@ -3848,10 +3988,20 @@ Object.extend(Event, (function() {
3848
3988
  cache[id][eventName] = null;
3849
3989
  }
3850
3990
 
3991
+
3992
+ // Internet Explorer needs to remove event handlers on page unload
3993
+ // in order to avoid memory leaks.
3851
3994
  if (window.attachEvent) {
3852
3995
  window.attachEvent("onunload", destroyCache);
3853
3996
  }
3854
3997
 
3998
+ // Safari has a dummy event handler on page unload so that it won't
3999
+ // use its bfcache. Safari <= 3.1 has an issue with restoring the "document"
4000
+ // object when page is returned to via the back button using its bfcache.
4001
+ if (Prototype.Browser.WebKit) {
4002
+ window.addEventListener('unload', Prototype.emptyFunction, false);
4003
+ }
4004
+
3855
4005
  return {
3856
4006
  observe: function(element, eventName, handler) {
3857
4007
  element = $(element);