radiant 0.9.0.rc2 → 0.9.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of radiant might be problematic. Click here for more details.

Files changed (946) hide show
  1. data/CHANGELOG +18 -6
  2. data/CONTRIBUTORS +7 -1
  3. data/INSTALL +0 -5
  4. data/README +21 -0
  5. data/app/controllers/admin/layouts_controller.rb +1 -0
  6. data/app/controllers/admin/preferences_controller.rb +4 -3
  7. data/app/controllers/admin/resource_controller.rb +62 -8
  8. data/app/controllers/admin/snippets_controller.rb +1 -0
  9. data/app/controllers/admin/users_controller.rb +1 -0
  10. data/app/controllers/application_controller.rb +0 -17
  11. data/app/controllers/site_controller.rb +6 -4
  12. data/app/helpers/application_helper.rb +19 -0
  13. data/app/models/standard_tags.rb +212 -18
  14. data/app/models/status.rb +1 -1
  15. data/app/models/user.rb +2 -2
  16. data/app/views/admin/extensions/index.html.haml +1 -1
  17. data/app/views/admin/layouts/_form.html.haml +4 -4
  18. data/app/views/admin/layouts/index.html.haml +2 -2
  19. data/app/views/admin/page_parts/_page_part.html.haml +2 -2
  20. data/app/views/admin/pages/_fields.html.haml +5 -5
  21. data/app/views/admin/preferences/edit.html.haml +3 -3
  22. data/app/views/admin/snippets/_form.html.haml +5 -5
  23. data/app/views/admin/snippets/index.html.haml +3 -3
  24. data/app/views/admin/users/_form.html.haml +3 -4
  25. data/app/views/admin/users/index.html.haml +2 -1
  26. data/app/views/layouts/application.html.haml +1 -1
  27. data/config/environment.rb +2 -2
  28. data/config/environments/cucumber.rb +3 -3
  29. data/config/locales/en.yml +10 -10
  30. data/config/locales/en_available_tags.yml +80 -1
  31. data/db/migrate/20081203140407_add_indexes.rb +10 -10
  32. data/db/schema.rb +1 -1
  33. data/features/admin/resource_pagination.feature +27 -0
  34. data/features/admin/user_preferences.feature +17 -0
  35. data/features/step_definitions/admin/pagination_steps.rb +46 -0
  36. data/features/step_definitions/web_steps.rb +13 -3
  37. data/features/support/env.rb +7 -3
  38. data/features/support/paths.rb +1 -1
  39. data/lib/generators/instance/templates/instance_environment.rb +2 -2
  40. data/lib/generators/language_extension/templates/lang.yml +6 -6
  41. data/lib/plugins/active_record_extensions/lib/active_record_extensions.rb +0 -29
  42. data/lib/radiant.rb +3 -3
  43. data/lib/radiant/admin_ui.rb +1 -1
  44. data/lib/radiant/extension/script.rb +20 -5
  45. data/lib/radiant/extension_loader.rb +1 -1
  46. data/lib/radiant/initializer.rb +9 -3
  47. data/lib/radiant/pagination/controller.rb +34 -0
  48. data/lib/radiant/pagination/link_renderer.rb +7 -4
  49. data/lib/task_support.rb +6 -1
  50. data/lib/tasks/cucumber.rake +1 -1
  51. data/lib/tasks/framework.rake +1 -2
  52. data/lib/tasks/release.rake +11 -3
  53. data/lib/tasks/rspec.rake +1 -1
  54. data/public/images/admin/shadow.png +0 -0
  55. data/public/images/admin/shadow_grey.png +0 -0
  56. data/public/javascripts/admin/application.js +4 -1
  57. data/public/javascripts/admin/cookie.js +2 -2
  58. data/public/javascripts/admin/validationerror.js +18 -0
  59. data/public/stylesheets/admin/main.css +110 -37
  60. data/public/stylesheets/sass/admin/main.sass +3 -2
  61. data/public/stylesheets/sass/admin/modules/_grid.sass +56 -0
  62. data/public/stylesheets/sass/admin/partials/_actions.sass +74 -34
  63. data/public/stylesheets/sass/admin/partials/{_depreciated.sass → _deprecated.sass} +1 -1
  64. data/public/stylesheets/sass/admin/partials/_popup.sass +1 -1
  65. data/public/stylesheets/sass/admin/partials/_validations.sass +21 -0
  66. data/spec/controllers/admin/paginated_controller_spec.rb +26 -0
  67. data/spec/controllers/admin/preferences_controller_spec.rb +14 -0
  68. data/spec/controllers/application_controller_spec.rb +1 -11
  69. data/spec/controllers/site_controller_spec.rb +9 -0
  70. data/spec/datasets/users_dataset.rb +1 -1
  71. data/spec/generators/instance_generator_spec.rb +1 -1
  72. data/spec/helpers/application_helper_spec.rb +38 -0
  73. data/spec/lib/radiant/extension/script_spec.rb +5 -1
  74. data/spec/lib/radiant/initializer_spec.rb +7 -0
  75. data/spec/lib/radiant_spec.rb +1 -1
  76. data/spec/lib/task_support_spec.rb +14 -0
  77. data/spec/matchers/render_matcher.rb +14 -1
  78. data/spec/models/layout_spec.rb +3 -3
  79. data/spec/models/page_part_spec.rb +3 -3
  80. data/spec/models/page_spec.rb +8 -9
  81. data/spec/models/snippet_spec.rb +3 -3
  82. data/spec/models/standard_tags_spec.rb +99 -5
  83. data/spec/models/user_spec.rb +11 -11
  84. data/vendor/extensions/archive/app/models/archive_finder.rb +5 -0
  85. data/vendor/extensions/french_language_pack/config/locales/fr.yml +31 -25
  86. data/vendor/extensions/german_language_pack/README +2 -1
  87. data/vendor/extensions/german_language_pack/config/locales/de.yml +47 -45
  88. data/vendor/extensions/german_language_pack/config/locales/de_available_tags.yml +375 -304
  89. data/vendor/extensions/german_language_pack/german_language_pack_extension.rb +2 -2
  90. data/vendor/extensions/markdown_filter/README +1 -1
  91. data/vendor/extensions/markdown_filter/lib/markdown_filter.rb +4 -4
  92. data/vendor/extensions/markdown_filter/lib/markdown_tags.rb +0 -15
  93. data/vendor/extensions/markdown_filter/markdown_filter_extension.rb +1 -10
  94. data/vendor/extensions/markdown_filter/spec/models/markdown_filter_spec.rb +1 -1
  95. data/vendor/extensions/markdown_filter/vendor/kramdown/CONTRIBUTERS +4 -0
  96. data/vendor/extensions/markdown_filter/vendor/kramdown/ChangeLog +1332 -0
  97. data/vendor/extensions/markdown_filter/vendor/kramdown/README +10 -0
  98. data/vendor/extensions/markdown_filter/vendor/kramdown/Rakefile +97 -38
  99. data/vendor/extensions/markdown_filter/vendor/kramdown/VERSION +1 -1
  100. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/generate_data.rb +6 -4
  101. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/historic-jruby-1.4.0.dat +7 -7
  102. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/historic-ruby-1.8.6.dat +7 -7
  103. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/historic-ruby-1.8.7.dat +7 -7
  104. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/historic-ruby-1.9.1p243.dat +7 -7
  105. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/historic-ruby-1.9.2dev.dat +7 -7
  106. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/testing.sh +1 -1
  107. data/vendor/extensions/markdown_filter/vendor/kramdown/bin/kramdown +11 -4
  108. data/vendor/extensions/markdown_filter/vendor/kramdown/data/kramdown/document.html +9 -0
  109. data/vendor/extensions/markdown_filter/vendor/kramdown/data/kramdown/document.latex +43 -0
  110. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/default.less.css +510 -0
  111. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/default.template +26 -33
  112. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/documentation.page +72 -0
  113. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/index.page +21 -49
  114. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/installation.page +6 -6
  115. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/links.markdown +6 -0
  116. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/news.page +3 -2
  117. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/quickref.page +140 -127
  118. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/syntax.page +501 -431
  119. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/tests.page +3 -3
  120. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown.rb +1 -1
  121. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/compatibility.rb +1 -1
  122. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/converter.rb +8 -3
  123. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/converter/base.rb +40 -4
  124. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/converter/html.rb +99 -27
  125. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/converter/latex.rb +57 -18
  126. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/document.rb +32 -13
  127. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/error.rb +1 -1
  128. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/options.rb +34 -14
  129. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser.rb +9 -3
  130. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/base.rb +95 -0
  131. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/html.rb +387 -0
  132. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown.rb +74 -65
  133. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/abbreviation.rb +65 -0
  134. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/attribute_list.rb +3 -2
  135. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/autolink.rb +8 -3
  136. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/blank_line.rb +2 -2
  137. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/blockquote.rb +2 -2
  138. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/codeblock.rb +3 -3
  139. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/codespan.rb +1 -1
  140. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/emphasis.rb +4 -3
  141. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/eob.rb +2 -2
  142. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/escaped_chars.rb +2 -2
  143. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/extension.rb +47 -55
  144. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/footnote.rb +1 -1
  145. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/header.rb +3 -18
  146. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/horizontal_rule.rb +2 -2
  147. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/html.rb +69 -149
  148. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/html_entity.rb +4 -4
  149. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/line_break.rb +1 -1
  150. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/link.rb +2 -2
  151. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/list.rb +12 -9
  152. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/math.rb +53 -0
  153. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/paragraph.rb +2 -2
  154. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/smart_quotes.rb +5 -4
  155. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/table.rb +4 -3
  156. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/typographic_symbol.rb +7 -3
  157. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/version.rb +2 -2
  158. data/vendor/extensions/markdown_filter/vendor/kramdown/man/man1/kramdown.1 +222 -0
  159. data/vendor/extensions/markdown_filter/vendor/kramdown/test/run_tests.rb +1 -0
  160. data/vendor/extensions/markdown_filter/vendor/kramdown/test/test_files.rb +68 -7
  161. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/with_auto_id_prefix.html +3 -0
  162. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/with_auto_id_prefix.options +2 -0
  163. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/with_auto_id_prefix.text +3 -0
  164. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/item_ial.html +9 -0
  165. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/item_ial.text +5 -0
  166. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/mixed.html +9 -3
  167. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/special_cases.html +49 -0
  168. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/special_cases.text +29 -0
  169. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/comment.html +5 -0
  170. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/comment.text +3 -0
  171. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/content_model/tables.html +2 -2
  172. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/code.html +10 -0
  173. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/code.text +9 -0
  174. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/comment.html +7 -0
  175. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/comment.text +8 -0
  176. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/emphasis.html +1 -0
  177. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/emphasis.text +1 -0
  178. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/entity.html +1 -0
  179. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/entity.text +1 -0
  180. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/header.html +6 -0
  181. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/header.options +2 -0
  182. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/header.text +6 -0
  183. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/list_dl.html +8 -0
  184. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/list_dl.text +8 -0
  185. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/list_ol.html +15 -0
  186. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/list_ol.text +17 -0
  187. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/list_ul.html +19 -0
  188. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/list_ul.text +22 -0
  189. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/options +1 -0
  190. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/paragraph.html +3 -0
  191. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/paragraph.text +4 -0
  192. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/table_normal.html +13 -0
  193. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/table_normal.text +12 -0
  194. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/table_simple.html +10 -0
  195. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/table_simple.text +14 -0
  196. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/typography.html +1 -0
  197. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/typography.text +1 -0
  198. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/parse_as_raw.html +3 -5
  199. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/parse_as_raw.text +0 -1
  200. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/11_ial/auto_id_and_ial.html +1 -1
  201. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/11_ial/auto_id_and_ial.text +1 -1
  202. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/11_ial/simple.html +5 -0
  203. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/11_ial/simple.text +7 -0
  204. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/comment.text +5 -5
  205. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/ignored.html +0 -2
  206. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/ignored.text +3 -6
  207. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/nomarkdown.text +4 -4
  208. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/options.html +1 -1
  209. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/options.text +5 -6
  210. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/options2.text +1 -1
  211. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/options3.text +1 -1
  212. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/15_math/normal.html +19 -0
  213. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/15_math/normal.text +18 -0
  214. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/02_emphasis/errors.html +1 -1
  215. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/02_emphasis/nesting.html +4 -0
  216. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/02_emphasis/nesting.text +3 -0
  217. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/04_footnote/definitions.latex +18 -0
  218. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/04_footnote/footnote_nr.latex +6 -0
  219. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/04_footnote/markers.latex +32 -0
  220. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/05_html/invalid.html +1 -0
  221. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/05_html/invalid.text +1 -0
  222. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/abbreviations/abbrev.html +8 -0
  223. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/abbreviations/abbrev.text +15 -0
  224. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/abbreviations/abbrev_defs.html +2 -0
  225. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/abbreviations/abbrev_defs.text +5 -0
  226. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/autolinks/url_links.html +3 -0
  227. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/autolinks/url_links.text +3 -0
  228. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/extension/comment.html +6 -0
  229. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/extension/comment.text +6 -0
  230. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/extension/ignored.html +1 -0
  231. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/extension/ignored.text +1 -0
  232. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/extension/nomarkdown.html +1 -0
  233. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/extension/nomarkdown.text +1 -0
  234. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/extension/options.html +1 -0
  235. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/extension/options.text +1 -0
  236. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/ial/simple.html +2 -1
  237. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/ial/simple.text +1 -0
  238. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/math/normal.html +5 -0
  239. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/math/normal.text +5 -0
  240. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/typography.html +3 -0
  241. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/typography.text +3 -0
  242. data/vendor/extensions/smarty_pants_filter/README +1 -0
  243. data/vendor/extensions/smarty_pants_filter/Rakefile +136 -0
  244. data/vendor/extensions/{markdown_filter → smarty_pants_filter}/lib/smarty_pants_filter.rb +0 -0
  245. data/vendor/extensions/smarty_pants_filter/lib/smarty_pants_tags.rb +18 -0
  246. data/vendor/extensions/smarty_pants_filter/lib/tasks/smarty_pants_filter_extension_tasks.rake +28 -0
  247. data/vendor/extensions/smarty_pants_filter/smarty_pants_filter_extension.rb +18 -0
  248. data/vendor/extensions/{markdown_filter → smarty_pants_filter}/smartypants.html +0 -0
  249. data/vendor/extensions/{markdown_filter → smarty_pants_filter}/spec/models/smarty_pants_filter_spec.rb +0 -0
  250. data/vendor/extensions/smarty_pants_filter/spec/spec.opts +6 -0
  251. data/vendor/extensions/smarty_pants_filter/spec/spec_helper.rb +36 -0
  252. data/vendor/extensions/smarty_pants_filter/test/test_helper.rb +19 -0
  253. data/vendor/extensions/{markdown_filter → smarty_pants_filter}/test/unit/smarty_pants_filter_test.rb +0 -0
  254. data/vendor/extensions/{markdown_filter → smarty_pants_filter}/vendor/rubypants/README +0 -0
  255. data/vendor/extensions/{markdown_filter → smarty_pants_filter}/vendor/rubypants/Rakefile +0 -0
  256. data/vendor/extensions/{markdown_filter → smarty_pants_filter}/vendor/rubypants/install.rb +0 -0
  257. data/vendor/extensions/{markdown_filter → smarty_pants_filter}/vendor/rubypants/rubypants.rb +0 -0
  258. data/vendor/extensions/{markdown_filter → smarty_pants_filter}/vendor/rubypants/test_rubypants.rb +0 -0
  259. data/vendor/plugins/haml/Rakefile +84 -52
  260. data/vendor/plugins/haml/VERSION +1 -1
  261. data/vendor/plugins/haml/doc-src/HAML_CHANGELOG.md +77 -0
  262. data/vendor/plugins/haml/doc-src/SASS_CHANGELOG.md +60 -0
  263. data/vendor/plugins/haml/extra/haml-mode.el +15 -12
  264. data/vendor/plugins/haml/extra/sass-mode.el +2 -2
  265. data/vendor/plugins/haml/haml.gemspec +16 -7
  266. data/vendor/plugins/haml/init.rb +3 -1
  267. data/vendor/plugins/haml/lib/haml.rb +1 -0
  268. data/vendor/plugins/haml/lib/haml/filters.rb +14 -2
  269. data/vendor/plugins/haml/lib/haml/helpers.rb +34 -14
  270. data/vendor/plugins/haml/lib/haml/helpers/action_view_extensions.rb +6 -4
  271. data/vendor/plugins/haml/lib/haml/helpers/action_view_mods.rb +74 -34
  272. data/vendor/plugins/haml/lib/haml/helpers/xss_mods.rb +37 -8
  273. data/vendor/plugins/haml/lib/haml/html.rb +1 -1
  274. data/vendor/plugins/haml/lib/haml/precompiler.rb +3 -2
  275. data/vendor/plugins/haml/lib/haml/railtie.rb +18 -0
  276. data/vendor/plugins/haml/lib/haml/template.rb +15 -4
  277. data/vendor/plugins/haml/lib/haml/template/plugin.rb +37 -2
  278. data/vendor/plugins/haml/lib/haml/util.rb +56 -2
  279. data/vendor/plugins/haml/lib/haml/version.rb +29 -14
  280. data/vendor/plugins/haml/lib/sass/files.rb +10 -2
  281. data/vendor/plugins/haml/lib/sass/plugin.rb +7 -2
  282. data/vendor/plugins/haml/lib/sass/plugin/rack.rb +2 -2
  283. data/vendor/plugins/haml/lib/sass/plugin/rails.rb +2 -1
  284. data/vendor/plugins/haml/lib/sass/script/number.rb +2 -2
  285. data/vendor/plugins/haml/lib/sass/tree/if_node.rb +1 -0
  286. data/vendor/plugins/haml/lib/sass/tree/rule_node.rb +9 -1
  287. data/vendor/plugins/haml/test/haml/engine_test.rb +24 -2
  288. data/vendor/plugins/haml/test/haml/helper_test.rb +60 -9
  289. data/vendor/plugins/haml/test/haml/template_test.rb +80 -3
  290. data/vendor/plugins/haml/test/haml/templates/helpers.haml +26 -0
  291. data/vendor/plugins/haml/test/haml/templates/partial_layout.haml +6 -2
  292. data/vendor/plugins/haml/test/sass/engine_test.rb +6 -1
  293. data/vendor/plugins/haml/test/test_helper.rb +16 -1
  294. data/vendor/radius/LICENSE +19 -0
  295. data/vendor/radius/QUICKSTART.rdoc +7 -7
  296. data/vendor/radius/README.rdoc +9 -25
  297. data/vendor/radius/Rakefile +4 -27
  298. data/vendor/radius/VERSION +1 -0
  299. data/vendor/radius/lib/radius/parser.rb +4 -4
  300. data/vendor/radius/lib/radius/parser/scan.rb +371 -940
  301. data/vendor/radius/lib/radius/parser/scan.rl +2 -1
  302. data/vendor/radius/lib/radius/version.rb +5 -11
  303. data/vendor/radius/radius.gemspec +55 -22
  304. data/vendor/radius/tasks/jeweler.rake +21 -0
  305. data/vendor/radius/tasks/rdoc.rake +13 -0
  306. data/vendor/radius/tasks/test.rake +7 -0
  307. data/vendor/radius/test/parser_test.rb +5 -0
  308. data/vendor/radius/test/test_helper.rb +1 -0
  309. data/vendor/rails/actionmailer/CHANGELOG +18 -0
  310. data/vendor/rails/actionmailer/MIT-LICENSE +1 -1
  311. data/vendor/rails/actionmailer/Rakefile +1 -1
  312. data/vendor/rails/actionmailer/lib/action_mailer.rb +1 -1
  313. data/vendor/rails/actionmailer/lib/action_mailer/base.rb +2 -2
  314. data/vendor/rails/actionmailer/lib/action_mailer/quoting.rb +1 -0
  315. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail.rb +1 -0
  316. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/Makefile +18 -0
  317. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/address.rb +4 -38
  318. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/attachments.rb +65 -0
  319. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/base64.rb +0 -0
  320. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/compat.rb +0 -0
  321. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/config.rb +0 -0
  322. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/core_extensions.rb +0 -0
  323. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/encode.rb +9 -0
  324. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/header.rb +4 -2
  325. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/index.rb +0 -0
  326. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/interface.rb +33 -1
  327. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/loader.rb +0 -0
  328. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/mail.rb +1 -1
  329. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/mailbox.rb +3 -2
  330. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/main.rb +0 -0
  331. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/mbox.rb +0 -0
  332. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/net.rb +3 -1
  333. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/obsolete.rb +0 -0
  334. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/parser.rb +1060 -0
  335. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/parser.y +416 -0
  336. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/port.rb +0 -0
  337. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/quoting.rb +47 -1
  338. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/require_arch.rb +0 -0
  339. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/scanner.rb +0 -0
  340. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/scanner_r.rb +2 -1
  341. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/stringio.rb +0 -0
  342. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/utils.rb +50 -25
  343. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/COPYING +504 -0
  344. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/README +12 -0
  345. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet.rb +67 -0
  346. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/big5freq.rb +927 -0
  347. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/big5prober.rb +42 -0
  348. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/chardistribution.rb +238 -0
  349. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/charsetgroupprober.rb +112 -0
  350. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/charsetprober.rb +75 -0
  351. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/codingstatemachine.rb +64 -0
  352. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/constants.rb +42 -0
  353. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/escprober.rb +89 -0
  354. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/escsm.rb +244 -0
  355. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/eucjpprober.rb +88 -0
  356. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/euckrfreq.rb +596 -0
  357. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/euckrprober.rb +42 -0
  358. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/euctwfreq.rb +430 -0
  359. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/euctwprober.rb +42 -0
  360. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/gb2312freq.rb +474 -0
  361. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/gb2312prober.rb +42 -0
  362. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/hebrewprober.rb +289 -0
  363. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/jisfreq.rb +570 -0
  364. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/jpcntx.rb +229 -0
  365. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/langbulgarianmodel.rb +229 -0
  366. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/langcyrillicmodel.rb +330 -0
  367. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/langgreekmodel.rb +227 -0
  368. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/langhebrewmodel.rb +202 -0
  369. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/langhungarianmodel.rb +226 -0
  370. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/langthaimodel.rb +201 -0
  371. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/latin1prober.rb +147 -0
  372. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/mbcharsetprober.rb +89 -0
  373. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/mbcsgroupprober.rb +45 -0
  374. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/mbcssm.rb +542 -0
  375. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/sbcharsetprober.rb +124 -0
  376. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/sbcsgroupprober.rb +56 -0
  377. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/sjisprober.rb +88 -0
  378. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/universaldetector.rb +168 -0
  379. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/utf8prober.rb +87 -0
  380. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/version.rb +1 -1
  381. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail.rb +2 -2
  382. data/vendor/rails/actionmailer/lib/action_mailer/version.rb +1 -1
  383. data/vendor/rails/actionmailer/test/abstract_unit.rb +4 -4
  384. data/vendor/rails/actionmailer/test/fixtures/helpers/example_helper.rb +1 -1
  385. data/vendor/rails/actionmailer/test/mail_service_test.rb +66 -2
  386. data/vendor/rails/actionmailer/test/quoting_test.rb +10 -4
  387. data/vendor/rails/actionpack/CHANGELOG +55 -0
  388. data/vendor/rails/actionpack/MIT-LICENSE +1 -1
  389. data/vendor/rails/actionpack/README +7 -7
  390. data/vendor/rails/actionpack/Rakefile +2 -2
  391. data/vendor/rails/actionpack/lib/action_controller.rb +2 -2
  392. data/vendor/rails/actionpack/lib/action_controller/assertions/response_assertions.rb +18 -9
  393. data/vendor/rails/actionpack/lib/action_controller/base.rb +14 -14
  394. data/vendor/rails/actionpack/lib/action_controller/caching/fragments.rb +6 -6
  395. data/vendor/rails/actionpack/lib/action_controller/cookies.rb +96 -0
  396. data/vendor/rails/actionpack/lib/action_controller/failsafe.rb +1 -0
  397. data/vendor/rails/actionpack/lib/action_controller/flash.rb +42 -0
  398. data/vendor/rails/actionpack/lib/action_controller/integration.rb +5 -1
  399. data/vendor/rails/actionpack/lib/action_controller/polymorphic_routes.rb +1 -1
  400. data/vendor/rails/actionpack/lib/action_controller/rack_lint_patch.rb +1 -1
  401. data/vendor/rails/actionpack/lib/action_controller/rescue.rb +2 -2
  402. data/vendor/rails/actionpack/lib/action_controller/response.rb +4 -7
  403. data/vendor/rails/actionpack/lib/action_controller/routing/route_set.rb +1 -0
  404. data/vendor/rails/actionpack/lib/action_controller/session/abstract_store.rb +6 -0
  405. data/vendor/rails/actionpack/lib/action_controller/session/cookie_store.rb +6 -0
  406. data/vendor/rails/actionpack/lib/action_controller/templates/rescues/_trace.erb +2 -2
  407. data/vendor/rails/actionpack/lib/action_controller/url_rewriter.rb +4 -1
  408. data/vendor/rails/actionpack/lib/action_pack.rb +1 -1
  409. data/vendor/rails/actionpack/lib/action_pack/version.rb +1 -1
  410. data/vendor/rails/actionpack/lib/action_view.rb +3 -3
  411. data/vendor/rails/actionpack/lib/action_view/helpers/active_record_helper.rb +11 -11
  412. data/vendor/rails/actionpack/lib/action_view/helpers/asset_tag_helper.rb +2 -2
  413. data/vendor/rails/actionpack/lib/action_view/helpers/capture_helper.rb +2 -2
  414. data/vendor/rails/actionpack/lib/action_view/helpers/date_helper.rb +12 -11
  415. data/vendor/rails/actionpack/lib/action_view/helpers/debug_helper.rb +2 -2
  416. data/vendor/rails/actionpack/lib/action_view/helpers/form_helper.rb +49 -12
  417. data/vendor/rails/actionpack/lib/action_view/helpers/form_options_helper.rb +3 -4
  418. data/vendor/rails/actionpack/lib/action_view/helpers/form_tag_helper.rb +7 -4
  419. data/vendor/rails/actionpack/lib/action_view/helpers/javascript_helper.rb +1 -1
  420. data/vendor/rails/actionpack/lib/action_view/helpers/number_helper.rb +1 -1
  421. data/vendor/rails/actionpack/lib/action_view/helpers/prototype_helper.rb +2 -2
  422. data/vendor/rails/actionpack/lib/action_view/helpers/raw_output_helper.rb +2 -2
  423. data/vendor/rails/actionpack/lib/action_view/helpers/sanitize_helper.rb +2 -10
  424. data/vendor/rails/actionpack/lib/action_view/helpers/tag_helper.rb +6 -5
  425. data/vendor/rails/actionpack/lib/action_view/helpers/text_helper.rb +5 -5
  426. data/vendor/rails/actionpack/lib/action_view/helpers/translation_helper.rb +37 -9
  427. data/vendor/rails/actionpack/lib/action_view/helpers/url_helper.rb +9 -11
  428. data/vendor/rails/actionpack/lib/action_view/partials.rb +2 -1
  429. data/vendor/rails/actionpack/lib/action_view/paths.rb +8 -0
  430. data/vendor/rails/actionpack/lib/action_view/renderable.rb +16 -2
  431. data/vendor/rails/actionpack/lib/action_view/template_handlers/erb.rb +7 -4
  432. data/vendor/rails/actionpack/lib/action_view/test_case.rb +1 -1
  433. data/vendor/rails/actionpack/test/abstract_unit.rb +8 -8
  434. data/vendor/rails/actionpack/test/active_record_unit.rb +1 -1
  435. data/vendor/rails/actionpack/test/controller/action_pack_assertions_test.rb +3 -1
  436. data/vendor/rails/actionpack/test/controller/assert_select_test.rb +6 -5
  437. data/vendor/rails/actionpack/test/controller/caching_test.rb +16 -2
  438. data/vendor/rails/actionpack/test/controller/capture_test.rb +1 -1
  439. data/vendor/rails/actionpack/test/controller/cookie_test.rb +37 -1
  440. data/vendor/rails/actionpack/test/controller/flash_test.rb +28 -1
  441. data/vendor/rails/actionpack/test/controller/helper_test.rb +1 -1
  442. data/vendor/rails/actionpack/test/controller/integration_test.rb +0 -1
  443. data/vendor/rails/actionpack/test/controller/localized_templates_test.rb +24 -0
  444. data/vendor/rails/actionpack/test/controller/output_escaping_test.rb +19 -0
  445. data/vendor/rails/actionpack/test/controller/rack_test.rb +1 -4
  446. data/vendor/rails/actionpack/test/controller/render_test.rb +11 -2
  447. data/vendor/rails/actionpack/test/controller/rescue_test.rb +8 -2
  448. data/vendor/rails/actionpack/test/controller/routing_test.rb +1 -0
  449. data/vendor/rails/actionpack/test/controller/send_file_test.rb +1 -1
  450. data/vendor/rails/actionpack/test/controller/session/cookie_store_test.rb +2 -2
  451. data/vendor/rails/actionpack/test/controller/url_rewriter_test.rb +10 -6
  452. data/vendor/rails/actionpack/test/fixtures/localized/hello_world.de.html +1 -0
  453. data/vendor/rails/actionpack/test/fixtures/localized/hello_world.en.html +1 -0
  454. data/vendor/rails/actionpack/test/fixtures/test/_customer_counter_with_as.erb +1 -0
  455. data/vendor/rails/actionpack/test/fixtures/test/_utf8_partial.html.erb +1 -0
  456. data/vendor/rails/actionpack/test/fixtures/test/_utf8_partial_magic.html.erb +2 -0
  457. data/vendor/rails/actionpack/test/fixtures/test/array_translation.erb +1 -0
  458. data/vendor/rails/actionpack/test/fixtures/test/capturing.erb +2 -2
  459. data/vendor/rails/actionpack/test/fixtures/test/scoped_array_translation.erb +1 -0
  460. data/vendor/rails/actionpack/test/fixtures/test/translation.erb +1 -0
  461. data/vendor/rails/actionpack/test/fixtures/test/utf8.html.erb +4 -2
  462. data/vendor/rails/actionpack/test/fixtures/test/utf8_magic.html.erb +5 -0
  463. data/vendor/rails/actionpack/test/fixtures/test/utf8_magic_with_bare_partial.html.erb +5 -0
  464. data/vendor/rails/actionpack/test/template/active_record_helper_i18n_test.rb +9 -2
  465. data/vendor/rails/actionpack/test/template/asset_tag_helper_test.rb +0 -1
  466. data/vendor/rails/actionpack/test/template/date_helper_test.rb +118 -0
  467. data/vendor/rails/actionpack/test/template/erb_util_test.rb +12 -0
  468. data/vendor/rails/actionpack/test/template/form_helper_test.rb +57 -3
  469. data/vendor/rails/actionpack/test/template/form_tag_helper_test.rb +21 -9
  470. data/vendor/rails/actionpack/test/template/render_test.rb +47 -8
  471. data/vendor/rails/actionpack/test/template/text_helper_test.rb +26 -1
  472. data/vendor/rails/actionpack/test/template/translation_helper_test.rb +72 -9
  473. data/vendor/rails/actionpack/test/template/url_helper_test.rb +20 -1
  474. data/vendor/rails/actionpack/test/view/test_case_test.rb +2 -2
  475. data/vendor/rails/activerecord/CHANGELOG +43 -0
  476. data/vendor/rails/activerecord/Rakefile +1 -1
  477. data/vendor/rails/activerecord/examples/performance.sql +85 -0
  478. data/vendor/rails/activerecord/lib/active_record.rb +1 -2
  479. data/vendor/rails/activerecord/lib/active_record/association_preload.rb +9 -2
  480. data/vendor/rails/activerecord/lib/active_record/associations.rb +48 -38
  481. data/vendor/rails/activerecord/lib/active_record/associations/association_collection.rb +15 -11
  482. data/vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb +16 -6
  483. data/vendor/rails/activerecord/lib/active_record/associations/belongs_to_association.rb +11 -1
  484. data/vendor/rails/activerecord/lib/active_record/associations/belongs_to_polymorphic_association.rb +34 -10
  485. data/vendor/rails/activerecord/lib/active_record/associations/has_many_association.rb +5 -0
  486. data/vendor/rails/activerecord/lib/active_record/associations/has_many_through_association.rb +5 -5
  487. data/vendor/rails/activerecord/lib/active_record/associations/has_one_association.rb +10 -1
  488. data/vendor/rails/activerecord/lib/active_record/attribute_methods.rb +5 -1
  489. data/vendor/rails/activerecord/lib/active_record/autosave_association.rb +66 -35
  490. data/vendor/rails/activerecord/lib/active_record/base.rb +77 -36
  491. data/vendor/rails/activerecord/lib/active_record/batches.rb +13 -9
  492. data/vendor/rails/activerecord/lib/active_record/calculations.rb +6 -3
  493. data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_specification.rb +3 -3
  494. data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_limits.rb +57 -0
  495. data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb +1 -1
  496. data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb +3 -7
  497. data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb +1 -1
  498. data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb +64 -10
  499. data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb +2 -0
  500. data/vendor/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb +31 -1
  501. data/vendor/rails/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb +31 -66
  502. data/vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb +5 -5
  503. data/vendor/rails/activerecord/lib/active_record/dirty.rb +2 -2
  504. data/vendor/rails/activerecord/lib/active_record/fixtures.rb +1 -0
  505. data/vendor/rails/activerecord/lib/active_record/locking/optimistic.rb +34 -1
  506. data/vendor/rails/activerecord/lib/active_record/migration.rb +5 -0
  507. data/vendor/rails/activerecord/lib/active_record/nested_attributes.rb +64 -52
  508. data/vendor/rails/activerecord/lib/active_record/reflection.rb +66 -1
  509. data/vendor/rails/activerecord/lib/active_record/schema.rb +5 -1
  510. data/vendor/rails/activerecord/lib/active_record/schema_dumper.rb +3 -0
  511. data/vendor/rails/activerecord/lib/active_record/serializers/json_serializer.rb +1 -1
  512. data/vendor/rails/activerecord/lib/active_record/validations.rb +13 -1
  513. data/vendor/rails/activerecord/lib/active_record/version.rb +1 -1
  514. data/vendor/rails/activerecord/test/cases/active_schema_test_mysql.rb +22 -0
  515. data/vendor/rails/activerecord/test/cases/associations/belongs_to_associations_test.rb +13 -0
  516. data/vendor/rails/activerecord/test/cases/associations/eager_load_nested_include_test.rb +8 -7
  517. data/vendor/rails/activerecord/test/cases/associations/eager_test.rb +7 -1
  518. data/vendor/rails/activerecord/test/cases/associations/has_many_associations_test.rb +26 -0
  519. data/vendor/rails/activerecord/test/cases/associations/inverse_associations_test.rb +566 -0
  520. data/vendor/rails/activerecord/test/cases/associations_test.rb +10 -0
  521. data/vendor/rails/activerecord/test/cases/autosave_association_test.rb +86 -10
  522. data/vendor/rails/activerecord/test/cases/base_test.rb +29 -0
  523. data/vendor/rails/activerecord/test/cases/batches_test.rb +20 -0
  524. data/vendor/rails/activerecord/test/cases/calculations_test.rb +2 -3
  525. data/vendor/rails/activerecord/test/cases/encoding_test.rb +6 -0
  526. data/vendor/rails/activerecord/test/cases/finder_test.rb +19 -3
  527. data/vendor/rails/activerecord/test/cases/fixtures_test.rb +5 -0
  528. data/vendor/rails/activerecord/test/cases/json_serialization_test.rb +14 -0
  529. data/vendor/rails/activerecord/test/cases/locking_test.rb +48 -3
  530. data/vendor/rails/activerecord/test/cases/migration_test.rb +115 -0
  531. data/vendor/rails/activerecord/test/cases/modules_test.rb +28 -0
  532. data/vendor/rails/activerecord/test/cases/named_scope_test.rb +1 -1
  533. data/vendor/rails/activerecord/test/cases/nested_attributes_test.rb +239 -7
  534. data/vendor/rails/activerecord/test/cases/query_cache_test.rb +7 -1
  535. data/vendor/rails/activerecord/test/cases/reflection_test.rb +47 -7
  536. data/vendor/rails/activerecord/test/cases/schema_test_postgresql.rb +2 -2
  537. data/vendor/rails/activerecord/test/cases/validations_i18n_test.rb +6 -36
  538. data/vendor/rails/activerecord/test/cases/validations_test.rb +33 -1
  539. data/vendor/rails/activerecord/test/cases/yaml_serialization_test.rb +11 -0
  540. data/vendor/rails/activerecord/test/fixtures/faces.yml +11 -0
  541. data/vendor/rails/{pkg/rails-3.0.pre.gem → activerecord/test/fixtures/fixture_database.sqlite} +0 -0
  542. data/vendor/rails/activerecord/test/fixtures/fixture_database.sqlite3 +0 -0
  543. data/vendor/rails/activerecord/test/fixtures/fixture_database_2.sqlite +0 -0
  544. data/vendor/rails/activerecord/test/fixtures/fixture_database_2.sqlite3 +0 -0
  545. data/vendor/rails/activerecord/test/fixtures/interests.yml +33 -0
  546. data/vendor/rails/activerecord/test/fixtures/men.yml +5 -0
  547. data/vendor/rails/activerecord/test/fixtures/zines.yml +5 -0
  548. data/vendor/rails/activerecord/test/models/author.rb +3 -0
  549. data/vendor/rails/activerecord/test/models/bird.rb +6 -0
  550. data/vendor/rails/activerecord/test/models/company_in_module.rb +17 -0
  551. data/vendor/rails/activerecord/test/models/event_author.rb +5 -0
  552. data/vendor/rails/activerecord/test/models/face.rb +7 -0
  553. data/vendor/rails/activerecord/test/models/interest.rb +5 -0
  554. data/vendor/rails/activerecord/test/models/invoice.rb +4 -0
  555. data/vendor/rails/activerecord/test/models/line_item.rb +3 -0
  556. data/vendor/rails/activerecord/test/models/man.rb +9 -0
  557. data/vendor/rails/activerecord/test/models/parrot.rb +6 -0
  558. data/vendor/rails/activerecord/test/models/pirate.rb +10 -0
  559. data/vendor/rails/activerecord/test/models/ship.rb +10 -1
  560. data/vendor/rails/activerecord/test/models/ship_part.rb +3 -1
  561. data/vendor/rails/activerecord/test/models/zine.rb +3 -0
  562. data/vendor/rails/activerecord/test/schema/schema.rb +41 -0
  563. data/vendor/rails/activeresource/CHANGELOG +15 -0
  564. data/vendor/rails/activeresource/Rakefile +1 -1
  565. data/vendor/rails/activeresource/lib/active_resource/base.rb +11 -2
  566. data/vendor/rails/activeresource/lib/active_resource/http_mock.rb +2 -2
  567. data/vendor/rails/activeresource/lib/active_resource/validations.rb +3 -3
  568. data/vendor/rails/activeresource/lib/active_resource/version.rb +1 -1
  569. data/vendor/rails/activeresource/test/abstract_unit.rb +2 -2
  570. data/vendor/rails/activeresource/test/base_errors_test.rb +13 -0
  571. data/vendor/rails/activeresource/test/base_test.rb +49 -0
  572. data/vendor/rails/activeresource/test/debug.log +80350 -0
  573. data/vendor/rails/activesupport/CHANGELOG +37 -0
  574. data/vendor/rails/activesupport/lib/active_support.rb +1 -0
  575. data/vendor/rails/activesupport/lib/active_support/buffered_logger.rb +1 -1
  576. data/vendor/rails/activesupport/lib/active_support/cache/memory_store.rb +7 -1
  577. data/vendor/rails/activesupport/lib/active_support/cache/strategy/local_cache.rb +1 -1
  578. data/vendor/rails/activesupport/lib/active_support/core_ext/array/conversions.rb +1 -1
  579. data/vendor/rails/activesupport/lib/active_support/core_ext/array/random_access.rb +11 -1
  580. data/vendor/rails/activesupport/lib/active_support/core_ext/class/attribute_accessors.rb +35 -28
  581. data/vendor/rails/activesupport/lib/active_support/core_ext/date/calculations.rb +14 -4
  582. data/vendor/rails/activesupport/lib/active_support/core_ext/date_time/conversions.rb +14 -3
  583. data/vendor/rails/activesupport/lib/active_support/core_ext/enumerable.rb +6 -0
  584. data/vendor/rails/activesupport/lib/active_support/core_ext/file/atomic.rb +2 -1
  585. data/vendor/rails/activesupport/lib/active_support/core_ext/kernel/reporting.rb +1 -1
  586. data/vendor/rails/activesupport/lib/active_support/core_ext/module/aliasing.rb +1 -1
  587. data/vendor/rails/activesupport/lib/active_support/core_ext/module/attr_accessor_with_default.rb +1 -1
  588. data/vendor/rails/activesupport/lib/active_support/core_ext/module/attribute_accessors.rb +33 -26
  589. data/vendor/rails/activesupport/lib/active_support/core_ext/module/synchronization.rb +1 -1
  590. data/vendor/rails/activesupport/lib/active_support/core_ext/numeric/conversions.rb +2 -2
  591. data/vendor/rails/activesupport/lib/active_support/core_ext/object.rb +1 -0
  592. data/vendor/rails/activesupport/lib/active_support/core_ext/object/blank.rb +20 -2
  593. data/vendor/rails/activesupport/lib/active_support/core_ext/object/metaclass.rb +6 -5
  594. data/vendor/rails/activesupport/lib/active_support/core_ext/object/singleton_class.rb +13 -0
  595. data/vendor/rails/activesupport/lib/active_support/core_ext/string.rb +0 -1
  596. data/vendor/rails/activesupport/lib/active_support/core_ext/string/output_safety.rb +108 -44
  597. data/vendor/rails/activesupport/lib/active_support/core_ext/string/starts_ends_with.rb +2 -4
  598. data/vendor/rails/activesupport/lib/active_support/core_ext/time.rb +8 -4
  599. data/vendor/rails/activesupport/lib/active_support/core_ext/time/calculations.rb +12 -3
  600. data/vendor/rails/activesupport/lib/active_support/deprecation.rb +3 -2
  601. data/vendor/rails/activesupport/lib/active_support/inflections.rb +1 -1
  602. data/vendor/rails/activesupport/lib/active_support/inflector.rb +5 -2
  603. data/vendor/rails/activesupport/lib/active_support/json/backends/yajl.rb +40 -0
  604. data/vendor/rails/activesupport/lib/active_support/json/backends/yaml.rb +10 -7
  605. data/vendor/rails/activesupport/lib/active_support/json/decoding.rb +16 -1
  606. data/vendor/rails/activesupport/lib/active_support/json/encoding.rb +11 -2
  607. data/vendor/rails/activesupport/lib/active_support/memoizable.rb +1 -1
  608. data/vendor/rails/activesupport/lib/active_support/multibyte/unicode_database.rb +2 -2
  609. data/vendor/rails/activesupport/lib/active_support/multibyte/utils.rb +6 -7
  610. data/vendor/rails/activesupport/lib/active_support/ordered_hash.rb +28 -11
  611. data/vendor/rails/activesupport/lib/active_support/testing/assertions.rb +14 -0
  612. data/vendor/rails/activesupport/lib/active_support/values/time_zone.rb +84 -76
  613. data/vendor/rails/activesupport/lib/active_support/vendor.rb +10 -2
  614. data/vendor/rails/activesupport/lib/active_support/vendor/{i18n-0.1.3/lib → i18n-0.3.7}/i18n.rb +175 -39
  615. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend.rb +19 -0
  616. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/active_record.rb +66 -0
  617. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/active_record/missing.rb +67 -0
  618. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/active_record/store_procs.rb +38 -0
  619. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/active_record/translation.rb +88 -0
  620. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/base.rb +266 -0
  621. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/cache.rb +76 -0
  622. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/cascade.rb +58 -0
  623. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/chain.rb +75 -0
  624. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/cldr.rb +100 -0
  625. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/fallbacks.rb +69 -0
  626. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/fast.rb +69 -0
  627. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/gettext.rb +75 -0
  628. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/helpers.rb +68 -0
  629. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/interpolation_compiler.rb +119 -0
  630. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/links.rb +34 -0
  631. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/metadata.rb +73 -0
  632. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/pluralization.rb +57 -0
  633. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/simple.rb +22 -0
  634. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/core_ext/hash/except.rb +8 -0
  635. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/core_ext/hash/slice.rb +8 -0
  636. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/core_ext/object/meta_class.rb +5 -0
  637. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/core_ext/string/interpolate.rb +99 -0
  638. data/vendor/rails/activesupport/lib/active_support/vendor/{i18n-0.1.3/lib → i18n-0.3.7}/i18n/exceptions.rb +15 -7
  639. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/gettext.rb +25 -0
  640. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/gettext/po_parser.rb +329 -0
  641. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/helpers.rb +5 -0
  642. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/helpers/gettext.rb +65 -0
  643. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/locale.rb +6 -0
  644. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/locale/fallbacks.rb +98 -0
  645. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/locale/tag.rb +28 -0
  646. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/locale/tag/parents.rb +24 -0
  647. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/locale/tag/rfc4646.rb +76 -0
  648. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/locale/tag/simple.rb +41 -0
  649. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/version.rb +3 -0
  650. data/vendor/rails/activesupport/lib/active_support/version.rb +1 -1
  651. data/vendor/rails/activesupport/lib/active_support/whiny_nil.rb +1 -1
  652. data/vendor/rails/activesupport/lib/active_support/xml_mini/libxml.rb +23 -83
  653. data/vendor/rails/activesupport/lib/active_support/xml_mini/libxmlsax.rb +74 -0
  654. data/vendor/rails/activesupport/lib/active_support/xml_mini/nokogiri.rb +25 -22
  655. data/vendor/rails/activesupport/lib/active_support/xml_mini/nokogirisax.rb +73 -0
  656. data/vendor/rails/railties/CHANGELOG +18 -2
  657. data/vendor/rails/railties/MIT-LICENSE +1 -1
  658. data/vendor/rails/railties/Rakefile +5 -5
  659. data/vendor/rails/railties/bin/rails +6 -5
  660. data/vendor/rails/railties/builtin/rails_info/rails/info.rb +1 -1
  661. data/vendor/rails/railties/configs/initializers/cookie_verification_secret.rb +7 -0
  662. data/vendor/rails/railties/guides/source/getting_started.textile +2 -2
  663. data/vendor/rails/railties/lib/commands/dbconsole.rb +1 -1
  664. data/vendor/rails/railties/lib/commands/runner.rb +1 -1
  665. data/vendor/rails/railties/lib/dispatcher.rb +1 -1
  666. data/vendor/rails/railties/lib/rails/gem_dependency.rb +11 -4
  667. data/vendor/rails/railties/lib/rails/vendor_gem_source_index.rb +1 -1
  668. data/vendor/rails/railties/lib/rails/version.rb +1 -1
  669. data/vendor/rails/railties/lib/rails_generator.rb +5 -2
  670. data/vendor/rails/railties/lib/rails_generator/generated_attribute.rb +7 -6
  671. data/vendor/rails/railties/lib/rails_generator/generators/applications/app/app_generator.rb +3 -0
  672. data/vendor/rails/railties/lib/rails_generator/generators/components/model/templates/fixtures.yml +9 -5
  673. data/vendor/rails/railties/lib/rails_generator/generators/components/plugin/plugin_generator.rb +2 -2
  674. data/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/controller.rb +2 -4
  675. data/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/layout.html.erb +1 -1
  676. data/vendor/rails/railties/lib/tasks/databases.rake +14 -14
  677. data/vendor/rails/railties/lib/tasks/framework.rake +4 -1
  678. data/vendor/rails/railties/lib/tasks/rails.rb +6 -1
  679. metadata +276 -321
  680. data/config/initializers/pagination.rb +0 -1
  681. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/default.css +0 -293
  682. data/vendor/plugins/haml/FAQ +0 -138
  683. data/vendor/plugins/haml/README.rdoc +0 -319
  684. data/vendor/plugins/haml/REVISION +0 -1
  685. data/vendor/plugins/haml/lib/sass/constant.rb +0 -216
  686. data/vendor/plugins/haml/lib/sass/constant/color.rb +0 -101
  687. data/vendor/plugins/haml/lib/sass/constant/literal.rb +0 -54
  688. data/vendor/plugins/haml/lib/sass/constant/nil.rb +0 -9
  689. data/vendor/plugins/haml/lib/sass/constant/number.rb +0 -87
  690. data/vendor/plugins/haml/lib/sass/constant/operation.rb +0 -30
  691. data/vendor/plugins/haml/lib/sass/constant/string.rb +0 -22
  692. data/vendor/plugins/haml/lib/sass/tree/attr_node.rb +0 -57
  693. data/vendor/plugins/haml/lib/sass/tree/value_node.rb +0 -20
  694. data/vendor/plugins/haml/test/sass/results/constants.css +0 -16
  695. data/vendor/plugins/haml/test/sass/templates/constants.sass +0 -100
  696. data/vendor/radius/Manifest.txt +0 -21
  697. data/vendor/rails/Rakefile +0 -81
  698. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/attachments.rb +0 -46
  699. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/parser.rb +0 -1478
  700. data/vendor/rails/actionmailer/pkg/actionmailer-3.0.pre.gem +0 -0
  701. data/vendor/rails/actionpack/lib/action_view/erb/util.rb +0 -44
  702. data/vendor/rails/actionpack/lib/action_view/safe_buffer.rb +0 -28
  703. data/vendor/rails/actionpack/pkg/actionpack-3.0.pre.gem +0 -0
  704. data/vendor/rails/actionpack/test/view/safe_buffer_test.rb +0 -36
  705. data/vendor/rails/activemodel/CHANGES +0 -12
  706. data/vendor/rails/activemodel/README +0 -21
  707. data/vendor/rails/activemodel/Rakefile +0 -24
  708. data/vendor/rails/activemodel/lib/active_model.rb +0 -5
  709. data/vendor/rails/activemodel/lib/active_model/base.rb +0 -8
  710. data/vendor/rails/activemodel/lib/active_model/callbacks.rb +0 -7
  711. data/vendor/rails/activemodel/lib/active_model/core.rb +0 -7
  712. data/vendor/rails/activemodel/lib/active_model/deprecated_error_methods.rb +0 -38
  713. data/vendor/rails/activemodel/lib/active_model/errors.rb +0 -82
  714. data/vendor/rails/activemodel/lib/active_model/observing.rb +0 -98
  715. data/vendor/rails/activemodel/lib/active_model/state_machine.rb +0 -68
  716. data/vendor/rails/activemodel/lib/active_model/state_machine/event.rb +0 -64
  717. data/vendor/rails/activemodel/lib/active_model/state_machine/machine.rb +0 -78
  718. data/vendor/rails/activemodel/lib/active_model/state_machine/state.rb +0 -47
  719. data/vendor/rails/activemodel/lib/active_model/state_machine/state_transition.rb +0 -40
  720. data/vendor/rails/activemodel/lib/active_model/validations.rb +0 -126
  721. data/vendor/rails/activemodel/lib/active_model/validations/acceptance.rb +0 -45
  722. data/vendor/rails/activemodel/lib/active_model/validations/associated.rb +0 -46
  723. data/vendor/rails/activemodel/lib/active_model/validations/confirmation.rb +0 -44
  724. data/vendor/rails/activemodel/lib/active_model/validations/exclusion.rb +0 -37
  725. data/vendor/rails/activemodel/lib/active_model/validations/format.rb +0 -39
  726. data/vendor/rails/activemodel/lib/active_model/validations/inclusion.rb +0 -37
  727. data/vendor/rails/activemodel/lib/active_model/validations/length.rb +0 -95
  728. data/vendor/rails/activemodel/lib/active_model/validations/numericality.rb +0 -80
  729. data/vendor/rails/activemodel/lib/active_model/validations/presence.rb +0 -42
  730. data/vendor/rails/activemodel/lib/active_model/validations/uniqueness.rb +0 -104
  731. data/vendor/rails/activemodel/pkg/activemodel-3.0.pre.gem +0 -0
  732. data/vendor/rails/activemodel/test/observing_test.rb +0 -121
  733. data/vendor/rails/activemodel/test/state_machine/event_test.rb +0 -49
  734. data/vendor/rails/activemodel/test/state_machine/machine_test.rb +0 -43
  735. data/vendor/rails/activemodel/test/state_machine/state_test.rb +0 -72
  736. data/vendor/rails/activemodel/test/state_machine/state_transition_test.rb +0 -84
  737. data/vendor/rails/activemodel/test/state_machine_test.rb +0 -312
  738. data/vendor/rails/activemodel/test/test_helper.rb +0 -21
  739. data/vendor/rails/activerecord/MIT-LICENSE +0 -20
  740. data/vendor/rails/activerecord/lib/active_record/i18n_interpolation_deprecation.rb +0 -26
  741. data/vendor/rails/activerecord/pkg/activerecord-3.0.pre.gem +0 -0
  742. data/vendor/rails/activeresource/MIT-LICENSE +0 -20
  743. data/vendor/rails/activeresource/pkg/activeresource-3.0.pre.gem +0 -0
  744. data/vendor/rails/activesupport/MIT-LICENSE +0 -20
  745. data/vendor/rails/activesupport/Rakefile +0 -175
  746. data/vendor/rails/activesupport/bin/generate_tables +0 -147
  747. data/vendor/rails/activesupport/install.rb +0 -30
  748. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/MIT-LICENSE +0 -20
  749. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/README.textile +0 -20
  750. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/Rakefile +0 -5
  751. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/i18n.gemspec +0 -27
  752. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/lib/i18n/backend/simple.rb +0 -214
  753. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/all.rb +0 -5
  754. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/i18n_exceptions_test.rb +0 -99
  755. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/i18n_test.rb +0 -124
  756. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/locale/en.rb +0 -1
  757. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/locale/en.yml +0 -3
  758. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/simple_backend_test.rb +0 -567
  759. data/vendor/rails/activesupport/pkg/activesupport-3.0.pre.gem +0 -0
  760. data/vendor/rails/activesupport/test/abstract_unit.rb +0 -36
  761. data/vendor/rails/activesupport/test/autoloading_fixtures/a/b.rb +0 -2
  762. data/vendor/rails/activesupport/test/autoloading_fixtures/a/c/d.rb +0 -2
  763. data/vendor/rails/activesupport/test/autoloading_fixtures/a/c/e/f.rb +0 -2
  764. data/vendor/rails/activesupport/test/autoloading_fixtures/application.rb +0 -1
  765. data/vendor/rails/activesupport/test/autoloading_fixtures/class_folder.rb +0 -3
  766. data/vendor/rails/activesupport/test/autoloading_fixtures/class_folder/class_folder_subclass.rb +0 -3
  767. data/vendor/rails/activesupport/test/autoloading_fixtures/class_folder/inline_class.rb +0 -2
  768. data/vendor/rails/activesupport/test/autoloading_fixtures/class_folder/nested_class.rb +0 -7
  769. data/vendor/rails/activesupport/test/autoloading_fixtures/conflict.rb +0 -1
  770. data/vendor/rails/activesupport/test/autoloading_fixtures/counting_loader.rb +0 -5
  771. data/vendor/rails/activesupport/test/autoloading_fixtures/cross_site_dependency.rb +0 -2
  772. data/vendor/rails/activesupport/test/autoloading_fixtures/e.rb +0 -2
  773. data/vendor/rails/activesupport/test/autoloading_fixtures/module_folder/inline_class.rb +0 -2
  774. data/vendor/rails/activesupport/test/autoloading_fixtures/module_folder/nested_class.rb +0 -4
  775. data/vendor/rails/activesupport/test/autoloading_fixtures/module_folder/nested_sibling.rb +0 -2
  776. data/vendor/rails/activesupport/test/autoloading_fixtures/module_with_custom_const_missing/a/b.rb +0 -1
  777. data/vendor/rails/activesupport/test/autoloading_fixtures/multiple_constant_file.rb +0 -2
  778. data/vendor/rails/activesupport/test/autoloading_fixtures/raises_name_error.rb +0 -3
  779. data/vendor/rails/activesupport/test/autoloading_fixtures/raises_no_method_error.rb +0 -3
  780. data/vendor/rails/activesupport/test/buffered_logger_test.rb +0 -146
  781. data/vendor/rails/activesupport/test/caching_test.rb +0 -348
  782. data/vendor/rails/activesupport/test/callbacks_test.rb +0 -188
  783. data/vendor/rails/activesupport/test/clean_backtrace_test.rb +0 -47
  784. data/vendor/rails/activesupport/test/clean_logger_test.rb +0 -57
  785. data/vendor/rails/activesupport/test/core_ext/array_ext_test.rb +0 -363
  786. data/vendor/rails/activesupport/test/core_ext/base64_ext_test.rb +0 -8
  787. data/vendor/rails/activesupport/test/core_ext/bigdecimal.rb +0 -10
  788. data/vendor/rails/activesupport/test/core_ext/blank_test.rb +0 -24
  789. data/vendor/rails/activesupport/test/core_ext/cgi_ext_test.rb +0 -14
  790. data/vendor/rails/activesupport/test/core_ext/class/attribute_accessor_test.rb +0 -31
  791. data/vendor/rails/activesupport/test/core_ext/class/class_inheritable_attributes_test.rb +0 -224
  792. data/vendor/rails/activesupport/test/core_ext/class/delegating_attributes_test.rb +0 -115
  793. data/vendor/rails/activesupport/test/core_ext/class_test.rb +0 -46
  794. data/vendor/rails/activesupport/test/core_ext/date_ext_test.rb +0 -278
  795. data/vendor/rails/activesupport/test/core_ext/date_time_ext_test.rb +0 -359
  796. data/vendor/rails/activesupport/test/core_ext/duplicable_test.rb +0 -22
  797. data/vendor/rails/activesupport/test/core_ext/duration_test.rb +0 -121
  798. data/vendor/rails/activesupport/test/core_ext/enumerable_test.rb +0 -97
  799. data/vendor/rails/activesupport/test/core_ext/exception_test.rb +0 -68
  800. data/vendor/rails/activesupport/test/core_ext/file_test.rb +0 -67
  801. data/vendor/rails/activesupport/test/core_ext/float_ext_test.rb +0 -25
  802. data/vendor/rails/activesupport/test/core_ext/hash_ext_test.rb +0 -1014
  803. data/vendor/rails/activesupport/test/core_ext/integer_ext_test.rb +0 -37
  804. data/vendor/rails/activesupport/test/core_ext/kernel_test.rb +0 -43
  805. data/vendor/rails/activesupport/test/core_ext/load_error_test.rb +0 -16
  806. data/vendor/rails/activesupport/test/core_ext/module/attr_accessor_with_default_test.rb +0 -30
  807. data/vendor/rails/activesupport/test/core_ext/module/attr_internal_test.rb +0 -52
  808. data/vendor/rails/activesupport/test/core_ext/module/attribute_accessor_test.rb +0 -33
  809. data/vendor/rails/activesupport/test/core_ext/module/attribute_aliasing_test.rb +0 -58
  810. data/vendor/rails/activesupport/test/core_ext/module/model_naming_test.rb +0 -27
  811. data/vendor/rails/activesupport/test/core_ext/module/synchronization_test.rb +0 -85
  812. data/vendor/rails/activesupport/test/core_ext/module_test.rb +0 -363
  813. data/vendor/rails/activesupport/test/core_ext/name_error_test.rb +0 -20
  814. data/vendor/rails/activesupport/test/core_ext/numeric_ext_test.rb +0 -162
  815. data/vendor/rails/activesupport/test/core_ext/object_and_class_ext_test.rb +0 -282
  816. data/vendor/rails/activesupport/test/core_ext/object_ext_test.rb +0 -8
  817. data/vendor/rails/activesupport/test/core_ext/pathname_test.rb +0 -9
  818. data/vendor/rails/activesupport/test/core_ext/proc_test.rb +0 -11
  819. data/vendor/rails/activesupport/test/core_ext/range_ext_test.rb +0 -63
  820. data/vendor/rails/activesupport/test/core_ext/string_ext_test.rb +0 -369
  821. data/vendor/rails/activesupport/test/core_ext/symbol_test.rb +0 -9
  822. data/vendor/rails/activesupport/test/core_ext/time_ext_test.rb +0 -744
  823. data/vendor/rails/activesupport/test/core_ext/time_with_zone_test.rb +0 -845
  824. data/vendor/rails/activesupport/test/core_ext/uri_ext_test.rb +0 -12
  825. data/vendor/rails/activesupport/test/dependencies/check_warnings.rb +0 -2
  826. data/vendor/rails/activesupport/test/dependencies/conflict.rb +0 -1
  827. data/vendor/rails/activesupport/test/dependencies/cross_site_depender.rb +0 -3
  828. data/vendor/rails/activesupport/test/dependencies/mutual_one.rb +0 -4
  829. data/vendor/rails/activesupport/test/dependencies/mutual_two.rb +0 -4
  830. data/vendor/rails/activesupport/test/dependencies/raises_exception.rb +0 -3
  831. data/vendor/rails/activesupport/test/dependencies/requires_nonexistent0.rb +0 -1
  832. data/vendor/rails/activesupport/test/dependencies/requires_nonexistent1.rb +0 -1
  833. data/vendor/rails/activesupport/test/dependencies/service_one.rb +0 -5
  834. data/vendor/rails/activesupport/test/dependencies/service_two.rb +0 -2
  835. data/vendor/rails/activesupport/test/dependencies_test.rb +0 -782
  836. data/vendor/rails/activesupport/test/deprecation_test.rb +0 -167
  837. data/vendor/rails/activesupport/test/flush_cache_on_private_memoization_test.rb +0 -43
  838. data/vendor/rails/activesupport/test/gzip_test.rb +0 -7
  839. data/vendor/rails/activesupport/test/i18n_test.rb +0 -98
  840. data/vendor/rails/activesupport/test/inflector_test.rb +0 -298
  841. data/vendor/rails/activesupport/test/inflector_test_cases.rb +0 -252
  842. data/vendor/rails/activesupport/test/json/decoding_test.rb +0 -73
  843. data/vendor/rails/activesupport/test/json/encoding_test.rb +0 -160
  844. data/vendor/rails/activesupport/test/memoizable_test.rb +0 -247
  845. data/vendor/rails/activesupport/test/message_encryptor_test.rb +0 -46
  846. data/vendor/rails/activesupport/test/message_verifier_test.rb +0 -31
  847. data/vendor/rails/activesupport/test/multibyte_chars_test.rb +0 -606
  848. data/vendor/rails/activesupport/test/multibyte_conformance.rb +0 -129
  849. data/vendor/rails/activesupport/test/multibyte_test_helpers.rb +0 -19
  850. data/vendor/rails/activesupport/test/multibyte_unicode_database_test.rb +0 -22
  851. data/vendor/rails/activesupport/test/multibyte_utils_test.rb +0 -137
  852. data/vendor/rails/activesupport/test/option_merger_test.rb +0 -85
  853. data/vendor/rails/activesupport/test/ordered_hash_test.rb +0 -201
  854. data/vendor/rails/activesupport/test/ordered_options_test.rb +0 -53
  855. data/vendor/rails/activesupport/test/rescuable_test.rb +0 -75
  856. data/vendor/rails/activesupport/test/secure_random_test.rb +0 -19
  857. data/vendor/rails/activesupport/test/string_inquirer_test.rb +0 -15
  858. data/vendor/rails/activesupport/test/test_test.rb +0 -148
  859. data/vendor/rails/activesupport/test/time_zone_test.rb +0 -266
  860. data/vendor/rails/activesupport/test/whiny_nil_test.rb +0 -50
  861. data/vendor/rails/activesupport/test/xml_mini/jdom_engine_test.rb +0 -153
  862. data/vendor/rails/activesupport/test/xml_mini/nokogiri_engine_test.rb +0 -168
  863. data/vendor/rails/activesupport/test/xml_mini/rexml_engine_test.rb +0 -15
  864. data/vendor/rails/ci/ci_build.rb +0 -119
  865. data/vendor/rails/ci/ci_setup_notes.txt +0 -131
  866. data/vendor/rails/ci/cruise_config.rb +0 -9
  867. data/vendor/rails/ci/geminstaller.yml +0 -24
  868. data/vendor/rails/ci/site.css +0 -13
  869. data/vendor/rails/ci/site_config.rb +0 -72
  870. data/vendor/rails/doc/template/horo.rb +0 -613
  871. data/vendor/rails/pushgems.rb +0 -14
  872. data/vendor/rails/railties/pkg/railties-3.0.pre.gem +0 -0
  873. data/vendor/rails/railties/test/abstract_unit.rb +0 -27
  874. data/vendor/rails/railties/test/backtrace_cleaner_test.rb +0 -61
  875. data/vendor/rails/railties/test/boot_test.rb +0 -178
  876. data/vendor/rails/railties/test/console_app_test.rb +0 -42
  877. data/vendor/rails/railties/test/fcgi_dispatcher_test.rb +0 -266
  878. data/vendor/rails/railties/test/fixtures/about_yml_plugins/bad_about_yml/about.yml +0 -1
  879. data/vendor/rails/railties/test/fixtures/about_yml_plugins/bad_about_yml/init.rb +0 -1
  880. data/vendor/rails/railties/test/fixtures/about_yml_plugins/plugin_without_about_yml/init.rb +0 -1
  881. data/vendor/rails/railties/test/fixtures/eager/zoo.rb +0 -3
  882. data/vendor/rails/railties/test/fixtures/eager/zoo/reptile_house.rb +0 -2
  883. data/vendor/rails/railties/test/fixtures/environment_with_constant.rb +0 -1
  884. data/vendor/rails/railties/test/fixtures/lib/generators/missing_class/missing_class_generator.rb +0 -0
  885. data/vendor/rails/railties/test/fixtures/lib/generators/working/working_generator.rb +0 -2
  886. data/vendor/rails/railties/test/fixtures/metal/multiplemetals/app/metal/metal_a.rb +0 -5
  887. data/vendor/rails/railties/test/fixtures/metal/multiplemetals/app/metal/metal_b.rb +0 -5
  888. data/vendor/rails/railties/test/fixtures/metal/pluralmetal/app/metal/legacy_routes.rb +0 -5
  889. data/vendor/rails/railties/test/fixtures/metal/singlemetal/app/metal/foo_metal.rb +0 -5
  890. data/vendor/rails/railties/test/fixtures/metal/subfolders/app/metal/Folder/metal_a.rb +0 -7
  891. data/vendor/rails/railties/test/fixtures/metal/subfolders/app/metal/Folder/metal_b.rb +0 -7
  892. data/vendor/rails/railties/test/fixtures/plugins/alternate/a/generators/a_generator/a_generator.rb +0 -4
  893. data/vendor/rails/railties/test/fixtures/plugins/default/gemlike/init.rb +0 -1
  894. data/vendor/rails/railties/test/fixtures/plugins/default/gemlike/lib/gemlike.rb +0 -2
  895. data/vendor/rails/railties/test/fixtures/plugins/default/gemlike/rails/init.rb +0 -7
  896. data/vendor/rails/railties/test/fixtures/plugins/default/plugin_with_no_lib_dir/init.rb +0 -0
  897. data/vendor/rails/railties/test/fixtures/plugins/default/stubby/about.yml +0 -2
  898. data/vendor/rails/railties/test/fixtures/plugins/default/stubby/generators/stubby_generator/stubby_generator.rb +0 -4
  899. data/vendor/rails/railties/test/fixtures/plugins/default/stubby/init.rb +0 -7
  900. data/vendor/rails/railties/test/fixtures/plugins/default/stubby/lib/stubby_mixin.rb +0 -2
  901. data/vendor/rails/railties/test/fixtures/plugins/engines/engine/app/controllers/engine_controller.rb +0 -2
  902. data/vendor/rails/railties/test/fixtures/plugins/engines/engine/app/metal/engine_metal.rb +0 -10
  903. data/vendor/rails/railties/test/fixtures/plugins/engines/engine/app/models/engine_model.rb +0 -2
  904. data/vendor/rails/railties/test/fixtures/plugins/engines/engine/config/locales/en.yml +0 -2
  905. data/vendor/rails/railties/test/fixtures/plugins/engines/engine/config/routes.rb +0 -3
  906. data/vendor/rails/railties/test/fixtures/plugins/engines/engine/init.rb +0 -3
  907. data/vendor/rails/railties/test/fixtures/public/foo/bar.html +0 -1
  908. data/vendor/rails/railties/test/fixtures/public/foo/index.html +0 -1
  909. data/vendor/rails/railties/test/fixtures/public/index.html +0 -1
  910. data/vendor/rails/railties/test/gem_dependency_test.rb +0 -219
  911. data/vendor/rails/railties/test/generator_lookup_test.rb +0 -40
  912. data/vendor/rails/railties/test/generators/generator_test_helper.rb +0 -310
  913. data/vendor/rails/railties/test/generators/rails_controller_generator_test.rb +0 -44
  914. data/vendor/rails/railties/test/generators/rails_helper_generator_test.rb +0 -36
  915. data/vendor/rails/railties/test/generators/rails_mailer_generator_test.rb +0 -29
  916. data/vendor/rails/railties/test/generators/rails_model_generator_test.rb +0 -96
  917. data/vendor/rails/railties/test/generators/rails_resource_generator_test.rb +0 -29
  918. data/vendor/rails/railties/test/generators/rails_scaffold_generator_test.rb +0 -151
  919. data/vendor/rails/railties/test/generators/rails_template_runner_test.rb +0 -216
  920. data/vendor/rails/railties/test/initializer_test.rb +0 -416
  921. data/vendor/rails/railties/test/metal_test.rb +0 -72
  922. data/vendor/rails/railties/test/mocks/routes.rb +0 -6
  923. data/vendor/rails/railties/test/plugin_loader_test.rb +0 -172
  924. data/vendor/rails/railties/test/plugin_locator_test.rb +0 -62
  925. data/vendor/rails/railties/test/plugin_test.rb +0 -162
  926. data/vendor/rails/railties/test/plugin_test_helper.rb +0 -29
  927. data/vendor/rails/railties/test/rack_static_test.rb +0 -46
  928. data/vendor/rails/railties/test/rails_generator_test.rb +0 -145
  929. data/vendor/rails/railties/test/rails_info_controller_test.rb +0 -52
  930. data/vendor/rails/railties/test/rails_info_test.rb +0 -99
  931. data/vendor/rails/railties/test/secret_key_generation_test.rb +0 -38
  932. data/vendor/rails/railties/test/vendor/gems/dummy-gem-a-0.4.0/lib/dummy-gem-a.rb +0 -1
  933. data/vendor/rails/railties/test/vendor/gems/dummy-gem-b-0.4.0/lib/dummy-gem-b.rb +0 -1
  934. data/vendor/rails/railties/test/vendor/gems/dummy-gem-b-0.6.0/lib/dummy-gem-b.rb +0 -1
  935. data/vendor/rails/railties/test/vendor/gems/dummy-gem-c-0.4.0/lib/dummy-gem-c.rb +0 -1
  936. data/vendor/rails/railties/test/vendor/gems/dummy-gem-c-0.6.0/lib/dummy-gem-c.rb +0 -1
  937. data/vendor/rails/railties/test/vendor/gems/dummy-gem-d-1.0.0/lib/dummy-gem-d.rb +0 -1
  938. data/vendor/rails/railties/test/vendor/gems/dummy-gem-e-1.0.0/lib/dummy-gem-e.rb +0 -1
  939. data/vendor/rails/railties/test/vendor/gems/dummy-gem-f-1.0.0/lib/dummy-gem-f.rb +0 -1
  940. data/vendor/rails/railties/test/vendor/gems/dummy-gem-g-1.0.0/lib/dummy-gem-g.rb +0 -1
  941. data/vendor/rails/railties/test/vendor/gems/dummy-gem-h-1.0.0/lib/dummy-gem-h.rb +0 -1
  942. data/vendor/rails/railties/test/vendor/gems/dummy-gem-i-1.0.0/ext/dummy-gem-i/Makefile +0 -0
  943. data/vendor/rails/railties/test/vendor/gems/dummy-gem-i-1.0.0/lib/dummy-gem-i.rb +0 -1
  944. data/vendor/rails/railties/test/vendor/gems/dummy-gem-j-1.0.0/lib/dummy-gem-j.rb +0 -1
  945. data/vendor/rails/railties/test/vendor/gems/dummy-gem-k-1.0.0/lib/dummy-gem-k.rb +0 -1
  946. data/vendor/rails/release.rb +0 -25
@@ -5,12 +5,15 @@ module ActiveSupport
5
5
  mattr_accessor :parse_json_times
6
6
 
7
7
  module JSON
8
+ # Listed in order of preference.
9
+ DECODERS = %w(Yajl Yaml)
10
+
8
11
  class << self
9
12
  attr_reader :parse_error
10
13
  delegate :decode, :to => :backend
11
14
 
12
15
  def backend
13
- self.backend = "Yaml" unless defined?(@backend)
16
+ set_default_backend unless defined?(@backend)
14
17
  @backend
15
18
  end
16
19
 
@@ -30,6 +33,18 @@ module ActiveSupport
30
33
  ensure
31
34
  self.backend = old_backend
32
35
  end
36
+
37
+ def set_default_backend
38
+ DECODERS.find do |name|
39
+ begin
40
+ self.backend = name
41
+ true
42
+ rescue LoadError
43
+ # Try next decoder.
44
+ false
45
+ end
46
+ end
47
+ end
33
48
  end
34
49
  end
35
50
  end
@@ -22,6 +22,15 @@ module ActiveSupport
22
22
  end
23
23
 
24
24
  ESCAPED_CHARS = {
25
+ "\x00" => '\u0000', "\x01" => '\u0001', "\x02" => '\u0002',
26
+ "\x03" => '\u0003', "\x04" => '\u0004', "\x05" => '\u0005',
27
+ "\x06" => '\u0006', "\x07" => '\u0007', "\x0B" => '\u000B',
28
+ "\x0E" => '\u000E', "\x0F" => '\u000F', "\x10" => '\u0010',
29
+ "\x11" => '\u0011', "\x12" => '\u0012', "\x13" => '\u0013',
30
+ "\x14" => '\u0014', "\x15" => '\u0015', "\x16" => '\u0016',
31
+ "\x17" => '\u0017', "\x18" => '\u0018', "\x19" => '\u0019',
32
+ "\x1A" => '\u001A', "\x1B" => '\u001B', "\x1C" => '\u001C',
33
+ "\x1D" => '\u001D', "\x1E" => '\u001E', "\x1F" => '\u001F',
25
34
  "\010" => '\b',
26
35
  "\f" => '\f',
27
36
  "\n" => '\n',
@@ -43,9 +52,9 @@ module ActiveSupport
43
52
  def escape_html_entities_in_json=(value)
44
53
  self.escape_regex = \
45
54
  if @escape_html_entities_in_json = value
46
- /[\010\f\n\r\t"\\><&]/
55
+ /[\x00-\x1F"\\><&]/
47
56
  else
48
- /[\010\f\n\r\t"\\]/
57
+ /[\x00-\x1F"\\]/
49
58
  end
50
59
  end
51
60
 
@@ -58,7 +58,7 @@ module ActiveSupport
58
58
  original_method = :"_unmemoized_#{symbol}"
59
59
  memoized_ivar = ActiveSupport::Memoizable.memoized_ivar_for(symbol)
60
60
 
61
- class_eval <<-EOS, __FILE__, __LINE__
61
+ class_eval <<-EOS, __FILE__, __LINE__ + 1
62
62
  include InstanceMethods # include InstanceMethods
63
63
  #
64
64
  if method_defined?(:#{original_method}) # if method_defined?(:_unmemoized_mime_type)
@@ -23,7 +23,7 @@ module ActiveSupport #:nodoc:
23
23
 
24
24
  # Lazy load the Unicode database so it's only loaded when it's actually used
25
25
  ATTRIBUTES.each do |attr_name|
26
- class_eval(<<-EOS, __FILE__, __LINE__)
26
+ class_eval(<<-EOS, __FILE__, __LINE__ + 1)
27
27
  def #{attr_name} # def codepoints
28
28
  load # load
29
29
  @#{attr_name} # @codepoints
@@ -68,4 +68,4 @@ module ActiveSupport #:nodoc:
68
68
  # UniCode Database
69
69
  UCD = UnicodeDatabase.new
70
70
  end
71
- end
71
+ end
@@ -26,11 +26,11 @@ module ActiveSupport #:nodoc:
26
26
  else
27
27
  def self.verify(string)
28
28
  if expression = valid_character
29
- for c in string.split(//)
30
- return false unless expression.match(c)
31
- end
29
+ # Splits the string on character boundaries, which are determined based on $KCODE.
30
+ string.split(//).all? { |c| expression =~ c }
31
+ else
32
+ true
32
33
  end
33
- true
34
34
  end
35
35
  end
36
36
 
@@ -49,9 +49,8 @@ module ActiveSupport #:nodoc:
49
49
  else
50
50
  def self.clean(string)
51
51
  if expression = valid_character
52
- stripped = []; for c in string.split(//)
53
- stripped << c if expression.match(c)
54
- end; stripped.join
52
+ # Splits the string on character boundaries, which are determined based on $KCODE.
53
+ string.split(//).grep(expression).join
55
54
  else
56
55
  string
57
56
  end
@@ -1,10 +1,28 @@
1
+ require 'yaml'
2
+
3
+ YAML.add_builtin_type("omap") do |type, val|
4
+ ActiveSupport::OrderedHash[val.map(&:to_a).map(&:first)]
5
+ end
6
+
1
7
  # OrderedHash is namespaced to prevent conflicts with other implementations
2
8
  module ActiveSupport
3
- # Hash is ordered in Ruby 1.9!
4
- if RUBY_VERSION >= '1.9'
5
- OrderedHash = ::Hash
6
- else
7
- class OrderedHash < Hash #:nodoc:
9
+ class OrderedHash < ::Hash #:nodoc:
10
+ def to_yaml_type
11
+ "!tag:yaml.org,2002:omap"
12
+ end
13
+
14
+ def to_yaml(opts = {})
15
+ YAML.quick_emit(self, opts) do |out|
16
+ out.seq(taguri, to_yaml_style) do |seq|
17
+ each do |k, v|
18
+ seq.add(k => v)
19
+ end
20
+ end
21
+ end
22
+ end
23
+
24
+ # Hash is ordered in Ruby 1.9!
25
+ if RUBY_VERSION < '1.9'
8
26
  def initialize(*args, &block)
9
27
  super
10
28
  @keys = []
@@ -52,7 +70,7 @@ module ActiveSupport
52
70
  end
53
71
  super
54
72
  end
55
-
73
+
56
74
  def delete_if
57
75
  super
58
76
  sync_keys!
@@ -131,11 +149,10 @@ module ActiveSupport
131
149
  "#<OrderedHash #{super}>"
132
150
  end
133
151
 
134
- private
135
-
136
- def sync_keys!
137
- @keys.delete_if {|k| !has_key?(k)}
138
- end
152
+ private
153
+ def sync_keys!
154
+ @keys.delete_if {|k| !has_key?(k)}
155
+ end
139
156
  end
140
157
  end
141
158
  end
@@ -60,6 +60,20 @@ module ActiveSupport
60
60
  def assert_no_difference(expression, message = nil, &block)
61
61
  assert_difference expression, 0, message, &block
62
62
  end
63
+
64
+ # Test if an expression is blank. Passes if object.blank? is true.
65
+ #
66
+ # assert_blank [] # => true
67
+ def assert_blank(object)
68
+ assert object.blank?, "#{object.inspect} is not blank"
69
+ end
70
+
71
+ # Test if an expression is not blank. Passes if object.present? is true.
72
+ #
73
+ # assert_present {:data => 'x' } # => true
74
+ def assert_present(object)
75
+ assert object.present?, "#{object.inspect} is blank"
76
+ end
63
77
  end
64
78
  end
65
79
  end
@@ -172,19 +172,26 @@ module ActiveSupport
172
172
 
173
173
  include Comparable
174
174
  attr_reader :name
175
+ attr_reader :tzinfo
175
176
 
176
177
  # Create a new TimeZone object with the given name and offset. The
177
178
  # offset is the number of seconds that this time zone is offset from UTC
178
179
  # (GMT). Seconds were chosen as the offset unit because that is the unit that
179
180
  # Ruby uses to represent time zone offsets (see Time#utc_offset).
180
- def initialize(name, utc_offset, tzinfo = nil)
181
+ def initialize(name, utc_offset = nil, tzinfo = nil)
181
182
  @name = name
182
183
  @utc_offset = utc_offset
183
- @tzinfo = tzinfo
184
+ @tzinfo = tzinfo || TimeZone.find_tzinfo(name)
185
+ @current_period = nil
184
186
  end
185
187
 
186
188
  def utc_offset
187
- @utc_offset ||= tzinfo.current_period.utc_offset
189
+ if @utc_offset
190
+ @utc_offset
191
+ else
192
+ @current_period ||= tzinfo.current_period
193
+ @current_period.utc_offset
194
+ end
188
195
  end
189
196
 
190
197
  # Returns the offset of this time zone as a formatted string, of the
@@ -287,77 +294,11 @@ module ActiveSupport
287
294
  end
288
295
 
289
296
  # TODO: Preload instead of lazy load for thread safety
290
- def tzinfo
297
+ def self.find_tzinfo(name)
291
298
  require 'tzinfo' unless defined?(TZInfo)
292
- @tzinfo ||= TZInfo::Timezone.get(MAPPING[name])
293
- end
294
-
295
- unless const_defined?(:ZONES)
296
- ZONES = []
297
- ZONES_MAP = {}
298
- [[-39_600, "International Date Line West", "Midway Island", "Samoa" ],
299
- [-36_000, "Hawaii" ],
300
- [-32_400, "Alaska" ],
301
- [-28_800, "Pacific Time (US & Canada)", "Tijuana" ],
302
- [-25_200, "Mountain Time (US & Canada)", "Chihuahua", "Mazatlan",
303
- "Arizona" ],
304
- [-21_600, "Central Time (US & Canada)", "Saskatchewan", "Guadalajara",
305
- "Mexico City", "Monterrey", "Central America" ],
306
- [-18_000, "Eastern Time (US & Canada)", "Indiana (East)", "Bogota",
307
- "Lima", "Quito" ],
308
- [-16_200, "Caracas" ],
309
- [-14_400, "Atlantic Time (Canada)", "La Paz", "Santiago" ],
310
- [-12_600, "Newfoundland" ],
311
- [-10_800, "Brasilia", "Buenos Aires", "Georgetown", "Greenland" ],
312
- [ -7_200, "Mid-Atlantic" ],
313
- [ -3_600, "Azores", "Cape Verde Is." ],
314
- [ 0, "Dublin", "Edinburgh", "Lisbon", "London", "Casablanca",
315
- "Monrovia", "UTC" ],
316
- [ 3_600, "Belgrade", "Bratislava", "Budapest", "Ljubljana", "Prague",
317
- "Sarajevo", "Skopje", "Warsaw", "Zagreb", "Brussels",
318
- "Copenhagen", "Madrid", "Paris", "Amsterdam", "Berlin",
319
- "Bern", "Rome", "Stockholm", "Vienna",
320
- "West Central Africa" ],
321
- [ 7_200, "Bucharest", "Cairo", "Helsinki", "Kyev", "Riga", "Sofia",
322
- "Tallinn", "Vilnius", "Athens", "Istanbul", "Minsk",
323
- "Jerusalem", "Harare", "Pretoria" ],
324
- [ 10_800, "Moscow", "St. Petersburg", "Volgograd", "Kuwait", "Riyadh",
325
- "Nairobi", "Baghdad" ],
326
- [ 12_600, "Tehran" ],
327
- [ 14_400, "Abu Dhabi", "Muscat", "Baku", "Tbilisi", "Yerevan" ],
328
- [ 16_200, "Kabul" ],
329
- [ 18_000, "Ekaterinburg", "Islamabad", "Karachi", "Tashkent" ],
330
- [ 19_800, "Chennai", "Kolkata", "Mumbai", "New Delhi", "Sri Jayawardenepura" ],
331
- [ 20_700, "Kathmandu" ],
332
- [ 21_600, "Astana", "Dhaka", "Almaty",
333
- "Novosibirsk" ],
334
- [ 23_400, "Rangoon" ],
335
- [ 25_200, "Bangkok", "Hanoi", "Jakarta", "Krasnoyarsk" ],
336
- [ 28_800, "Beijing", "Chongqing", "Hong Kong", "Urumqi",
337
- "Kuala Lumpur", "Singapore", "Taipei", "Perth", "Irkutsk",
338
- "Ulaan Bataar" ],
339
- [ 32_400, "Seoul", "Osaka", "Sapporo", "Tokyo", "Yakutsk" ],
340
- [ 34_200, "Darwin", "Adelaide" ],
341
- [ 36_000, "Canberra", "Melbourne", "Sydney", "Brisbane", "Hobart",
342
- "Vladivostok", "Guam", "Port Moresby" ],
343
- [ 39_600, "Magadan", "Solomon Is.", "New Caledonia" ],
344
- [ 43_200, "Fiji", "Kamchatka", "Marshall Is.", "Auckland",
345
- "Wellington" ],
346
- [ 46_800, "Nuku'alofa" ]].
347
- each do |offset, *places|
348
- places.each do |place|
349
- place.freeze
350
- zone = new(place, offset)
351
- ZONES << zone
352
- ZONES_MAP[place] = zone
353
- end
354
- end
355
- ZONES.sort!
356
- ZONES.freeze
357
- ZONES_MAP.freeze
358
-
359
- US_ZONES = ZONES.find_all { |z| z.name =~ /US|Arizona|Indiana|Hawaii|Alaska/ }
360
- US_ZONES.freeze
299
+ ::TZInfo::Timezone.get(MAPPING[name] || name)
300
+ rescue TZInfo::InvalidTimezoneIdentifier
301
+ nil
361
302
  end
362
303
 
363
304
  class << self
@@ -374,7 +315,68 @@ module ActiveSupport
374
315
  # TimeZone objects per time zone, in many cases, to make it easier
375
316
  # for users to find their own time zone.
376
317
  def all
377
- ZONES
318
+ @zones ||= zones_map.values.sort
319
+ end
320
+
321
+ def zones_map
322
+ unless defined?(@zones_map)
323
+ @zones_map = {}
324
+ [[-39_600, "International Date Line West", "Midway Island", "Samoa" ],
325
+ [-36_000, "Hawaii" ],
326
+ [-32_400, "Alaska" ],
327
+ [-28_800, "Pacific Time (US & Canada)", "Tijuana" ],
328
+ [-25_200, "Mountain Time (US & Canada)", "Chihuahua", "Mazatlan",
329
+ "Arizona" ],
330
+ [-21_600, "Central Time (US & Canada)", "Saskatchewan", "Guadalajara",
331
+ "Mexico City", "Monterrey", "Central America" ],
332
+ [-18_000, "Eastern Time (US & Canada)", "Indiana (East)", "Bogota",
333
+ "Lima", "Quito" ],
334
+ [-16_200, "Caracas" ],
335
+ [-14_400, "Atlantic Time (Canada)", "La Paz", "Santiago" ],
336
+ [-12_600, "Newfoundland" ],
337
+ [-10_800, "Brasilia", "Buenos Aires", "Georgetown", "Greenland" ],
338
+ [ -7_200, "Mid-Atlantic" ],
339
+ [ -3_600, "Azores", "Cape Verde Is." ],
340
+ [ 0, "Dublin", "Edinburgh", "Lisbon", "London", "Casablanca",
341
+ "Monrovia", "UTC" ],
342
+ [ 3_600, "Belgrade", "Bratislava", "Budapest", "Ljubljana", "Prague",
343
+ "Sarajevo", "Skopje", "Warsaw", "Zagreb", "Brussels",
344
+ "Copenhagen", "Madrid", "Paris", "Amsterdam", "Berlin",
345
+ "Bern", "Rome", "Stockholm", "Vienna",
346
+ "West Central Africa" ],
347
+ [ 7_200, "Bucharest", "Cairo", "Helsinki", "Kyev", "Riga", "Sofia",
348
+ "Tallinn", "Vilnius", "Athens", "Istanbul", "Minsk",
349
+ "Jerusalem", "Harare", "Pretoria" ],
350
+ [ 10_800, "Moscow", "St. Petersburg", "Volgograd", "Kuwait", "Riyadh",
351
+ "Nairobi", "Baghdad" ],
352
+ [ 12_600, "Tehran" ],
353
+ [ 14_400, "Abu Dhabi", "Muscat", "Baku", "Tbilisi", "Yerevan" ],
354
+ [ 16_200, "Kabul" ],
355
+ [ 18_000, "Ekaterinburg", "Islamabad", "Karachi", "Tashkent" ],
356
+ [ 19_800, "Chennai", "Kolkata", "Mumbai", "New Delhi", "Sri Jayawardenepura" ],
357
+ [ 20_700, "Kathmandu" ],
358
+ [ 21_600, "Astana", "Dhaka", "Almaty",
359
+ "Novosibirsk" ],
360
+ [ 23_400, "Rangoon" ],
361
+ [ 25_200, "Bangkok", "Hanoi", "Jakarta", "Krasnoyarsk" ],
362
+ [ 28_800, "Beijing", "Chongqing", "Hong Kong", "Urumqi",
363
+ "Kuala Lumpur", "Singapore", "Taipei", "Perth", "Irkutsk",
364
+ "Ulaan Bataar" ],
365
+ [ 32_400, "Seoul", "Osaka", "Sapporo", "Tokyo", "Yakutsk" ],
366
+ [ 34_200, "Darwin", "Adelaide" ],
367
+ [ 36_000, "Canberra", "Melbourne", "Sydney", "Brisbane", "Hobart",
368
+ "Vladivostok", "Guam", "Port Moresby" ],
369
+ [ 39_600, "Magadan", "Solomon Is.", "New Caledonia" ],
370
+ [ 43_200, "Fiji", "Kamchatka", "Marshall Is.", "Auckland",
371
+ "Wellington" ],
372
+ [ 46_800, "Nuku'alofa" ]].
373
+ each do |offset, *places|
374
+ places.each do |place|
375
+ @zones_map[place] = create(place, offset)
376
+ end
377
+ end
378
+ end
379
+ @zones_map
378
380
  end
379
381
 
380
382
  # Locate a specific time zone object. If the argument is a string, it
@@ -385,7 +387,7 @@ module ActiveSupport
385
387
  def [](arg)
386
388
  case arg
387
389
  when String
388
- ZONES_MAP[arg]
390
+ zones_map[arg] ||= lookup(arg)
389
391
  when Numeric, ActiveSupport::Duration
390
392
  arg *= 3600 if arg.abs <= 13
391
393
  all.find { |z| z.utc_offset == arg.to_i }
@@ -397,8 +399,14 @@ module ActiveSupport
397
399
  # A convenience method for returning a collection of TimeZone objects
398
400
  # for time zones in the USA.
399
401
  def us_zones
400
- US_ZONES
402
+ @us_zones ||= all.find_all { |z| z.name =~ /US|Arizona|Indiana|Hawaii|Alaska/ }
401
403
  end
404
+
405
+ private
406
+
407
+ def lookup(name)
408
+ (tzinfo = find_tzinfo(name)) && create(tzinfo.name.freeze)
409
+ end
402
410
  end
403
411
  end
404
412
  end
@@ -21,8 +21,16 @@ rescue Gem::LoadError
21
21
  end
22
22
 
23
23
  begin
24
- gem 'i18n', '>= 0.1.3'
24
+ gem 'i18n', '>= 0.3.3'
25
25
  rescue Gem::LoadError
26
- $:.unshift "#{File.dirname(__FILE__)}/vendor/i18n-0.1.3/lib"
26
+ $:.unshift "#{File.dirname(__FILE__)}/vendor/i18n-0.3.7"
27
27
  end
28
28
  require 'i18n'
29
+
30
+ module I18n
31
+ if !respond_to?(:normalize_translation_keys) && respond_to?(:normalize_keys)
32
+ def self.normalize_translation_keys(*args)
33
+ normalize_keys(*args)
34
+ end
35
+ end
36
+ end
@@ -1,20 +1,32 @@
1
- # Authors:: Matt Aimonetti (http://railsontherun.com/),
2
- # Sven Fuchs (http://www.artweb-design.de),
1
+ # encoding: utf-8
2
+
3
+ # Authors:: Sven Fuchs (http://www.artweb-design.de),
3
4
  # Joshua Harvey (http://www.workingwithrails.com/person/759-joshua-harvey),
5
+ # Stephan Soller (http://www.arkanis-development.de/),
4
6
  # Saimon Moore (http://saimonmoore.net),
5
- # Stephan Soller (http://www.arkanis-development.de/)
7
+ # Matt Aimonetti (http://railsontherun.com/)
6
8
  # Copyright:: Copyright (c) 2008 The Ruby i18n Team
7
9
  # License:: MIT
8
- require 'i18n/backend/simple'
9
10
  require 'i18n/exceptions'
11
+ require 'i18n/core_ext/string/interpolate'
10
12
 
11
13
  module I18n
12
- @@backend = nil
13
- @@load_path = nil
14
- @@default_locale = :'en'
15
- @@exception_handler = :default_exception_handler
14
+ autoload :Backend, 'i18n/backend'
15
+ autoload :Helpers, 'i18n/helpers'
16
+ autoload :Locale, 'i18n/locale'
17
+
18
+ class Config
19
+ # The only configuration value that is not global and scoped to thread is :locale.
20
+ # It defaults to the default_locale.
21
+ def locale
22
+ @locale ||= default_locale
23
+ end
24
+
25
+ # Sets the current locale pseudo-globally, i.e. in the Thread.current hash.
26
+ def locale=(locale)
27
+ @locale = locale.to_sym rescue nil
28
+ end
16
29
 
17
- class << self
18
30
  # Returns the current backend. Defaults to +Backend::Simple+.
19
31
  def backend
20
32
  @@backend ||= Backend::Simple.new
@@ -27,27 +39,39 @@ module I18n
27
39
 
28
40
  # Returns the current default locale. Defaults to :'en'
29
41
  def default_locale
30
- @@default_locale
42
+ @@default_locale ||= :en
31
43
  end
32
44
 
33
45
  # Sets the current default locale. Used to set a custom default locale.
34
46
  def default_locale=(locale)
35
- @@default_locale = locale
47
+ @@default_locale = locale.to_sym rescue nil
36
48
  end
37
49
 
38
- # Returns the current locale. Defaults to I18n.default_locale.
39
- def locale
40
- Thread.current[:locale] ||= default_locale
50
+ # Returns an array of locales for which translations are available.
51
+ # Unless you explicitely set the these through I18n.available_locales=
52
+ # the call will be delegated to the backend and memoized on the I18n module.
53
+ def available_locales
54
+ @@available_locales ||= backend.available_locales
41
55
  end
42
56
 
43
- # Sets the current locale pseudo-globally, i.e. in the Thread.current hash.
44
- def locale=(locale)
45
- Thread.current[:locale] = locale
57
+ # Sets the available locales.
58
+ def available_locales=(locales)
59
+ @@available_locales = locales
46
60
  end
47
61
 
48
- # Returns an array of locales for which translations are available
49
- def available_locales
50
- backend.available_locales
62
+ # Returns the current default scope separator. Defaults to '.'
63
+ def default_separator
64
+ @@default_separator ||= '.'
65
+ end
66
+
67
+ # Sets the current default scope separator.
68
+ def default_separator=(separator)
69
+ @@default_separator = separator
70
+ end
71
+
72
+ # Return the current exception handler. Defaults to :default_exception_handler.
73
+ def exception_handler
74
+ @@exception_handler ||= :default_exception_handler
51
75
  end
52
76
 
53
77
  # Sets the exception handler.
@@ -72,12 +96,39 @@ module I18n
72
96
  def load_path=(load_path)
73
97
  @@load_path = load_path
74
98
  end
99
+ end
100
+
101
+ class << self
102
+
103
+ # Gets I18n configuration object.
104
+ def config
105
+ Thread.current[:i18n_config] ||= I18n::Config.new
106
+ end
107
+
108
+ # Sets I18n configuration object.
109
+ def config=(value)
110
+ Thread.current[:i18n_config] = value
111
+ end
112
+
113
+ # Write methods which delegates to the configuration object
114
+ %w(locale backend default_locale available_locales default_separator
115
+ exception_handler load_path).each do |method|
116
+ module_eval <<-DELEGATORS, __FILE__, __LINE__ + 1
117
+ def #{method}
118
+ config.#{method}
119
+ end
120
+
121
+ def #{method}=(value)
122
+ config.#{method} = (value)
123
+ end
124
+ DELEGATORS
125
+ end
75
126
 
76
127
  # Tells the backend to reload translations. Used in situations like the
77
128
  # Rails development environment. Backends can implement whatever strategy
78
129
  # is useful.
79
130
  def reload!
80
- backend.reload!
131
+ config.backend.reload!
81
132
  end
82
133
 
83
134
  # Translates, pluralizes and interpolates a given key using a given locale,
@@ -150,7 +201,7 @@ module I18n
150
201
  # or <tt>default</tt> if no translations for <tt>:foo</tt> and <tt>:bar</tt> were found.
151
202
  # I18n.t :foo, :default => [:bar, 'default']
152
203
  #
153
- # <b>BULK LOOKUP</b>
204
+ # *BULK LOOKUP*
154
205
  #
155
206
  # This returns an array with the translations for <tt>:foo</tt> and <tt>:bar</tt>.
156
207
  # I18n.t [:foo, :bar]
@@ -160,24 +211,61 @@ module I18n
160
211
  #
161
212
  # Which is the same as using a scope option:
162
213
  # I18n.t [:foo, :bar], :scope => :baz
163
- def translate(key, options = {})
164
- locale = options.delete(:locale) || I18n.locale
165
- backend.translate(locale, key, options)
166
- rescue I18n::ArgumentError => e
167
- raise e if options[:raise]
168
- send(@@exception_handler, e, locale, key, options)
214
+ #
215
+ # *LAMBDAS*
216
+ #
217
+ # Both translations and defaults can be given as Ruby lambdas. Lambdas will be
218
+ # called and passed the key and options.
219
+ #
220
+ # E.g. assuming the key <tt>:salutation</tt> resolves to:
221
+ # lambda { |key, options| options[:gender] == 'm' ? "Mr. {{options[:name]}}" : "Mrs. {{options[:name]}}" }
222
+ #
223
+ # Then <tt>I18n.t(:salutation, :gender => 'w', :name => 'Smith') will result in "Mrs. Smith".
224
+ #
225
+ # It is recommended to use/implement lambdas in an "idempotent" way. E.g. when
226
+ # a cache layer is put in front of I18n.translate it will generate a cache key
227
+ # from the argument values passed to #translate. Therefor your lambdas should
228
+ # always return the same translations/values per unique combination of argument
229
+ # values.
230
+ def translate(*args)
231
+ options = args.pop if args.last.is_a?(Hash)
232
+ key = args.shift
233
+ locale = options && options.delete(:locale) || config.locale
234
+ raises = options && options.delete(:raise)
235
+ config.backend.translate(locale, key, options || {})
236
+ rescue I18n::ArgumentError => exception
237
+ raise exception if raises
238
+ handle_exception(exception, locale, key, options)
169
239
  end
170
240
  alias :t :translate
171
241
 
242
+ def translate!(key, options = {})
243
+ translate(key, options.merge( :raise => true ))
244
+ end
245
+ alias :t! :translate!
246
+
172
247
  # Localizes certain objects, such as dates and numbers to local formatting.
173
248
  def localize(object, options = {})
174
- locale = options[:locale] || I18n.locale
175
- format = options[:format] || :default
176
- backend.localize(locale, object, format)
249
+ locale = options.delete(:locale) || config.locale
250
+ format = options.delete(:format) || :default
251
+ config.backend.localize(locale, object, format, options)
177
252
  end
178
253
  alias :l :localize
179
254
 
180
- protected
255
+ # Merges the given locale, key and scope into a single array of keys.
256
+ # Splits keys that contain dots into multiple keys. Makes sure all
257
+ # keys are Symbols.
258
+ def normalize_keys(locale, key, scope, separator = nil)
259
+ separator ||= I18n.default_separator
260
+ normalize_key(locale, separator) +
261
+ normalize_key(scope, separator) +
262
+ normalize_key(key, separator)
263
+ end
264
+
265
+ # making these private until Ruby 1.9.2 can send to protected methods again
266
+ # see http://redmine.ruby-lang.org/repositories/revision/ruby-19?rev=24280
267
+ private
268
+
181
269
  # Handles exceptions raised in the backend. All exceptions except for
182
270
  # MissingTranslationData exceptions are re-raised. When a MissingTranslationData
183
271
  # was caught and the option :raise is not set the handler returns an error
@@ -187,13 +275,61 @@ module I18n
187
275
  raise exception
188
276
  end
189
277
 
190
- # Merges the given locale, key and scope into a single array of keys.
191
- # Splits keys that contain dots into multiple keys. Makes sure all
192
- # keys are Symbols.
193
- def normalize_translation_keys(locale, key, scope)
194
- keys = [locale] + Array(scope) + [key]
195
- keys = keys.map { |k| k.to_s.split(/\./) }
196
- keys.flatten.map { |k| k.to_sym }
278
+ # Any exceptions thrown in translate will be sent to the @@exception_handler
279
+ # which can be a Symbol, a Proc or any other Object.
280
+ #
281
+ # If exception_handler is a Symbol then it will simply be sent to I18n as
282
+ # a method call. A Proc will simply be called. In any other case the
283
+ # method #call will be called on the exception_handler object.
284
+ #
285
+ # Examples:
286
+ #
287
+ # I18n.exception_handler = :default_exception_handler # this is the default
288
+ # I18n.default_exception_handler(exception, locale, key, options) # will be called like this
289
+ #
290
+ # I18n.exception_handler = lambda { |*args| ... } # a lambda
291
+ # I18n.exception_handler.call(exception, locale, key, options) # will be called like this
292
+ #
293
+ # I18n.exception_handler = I18nExceptionHandler.new # an object
294
+ # I18n.exception_handler.call(exception, locale, key, options) # will be called like this
295
+ def handle_exception(exception, locale, key, options)
296
+ case config.exception_handler
297
+ when Symbol
298
+ send(config.exception_handler, exception, locale, key, options)
299
+ else
300
+ config.exception_handler.call(exception, locale, key, options)
301
+ end
302
+ end
303
+
304
+ # Deprecated. Will raise a warning in future versions and then finally be
305
+ # removed. Use I18n.normalize_keys instead.
306
+ def normalize_translation_keys(locale, key, scope, separator = nil)
307
+ normalize_keys(locale, key, scope, separator)
308
+ end
309
+
310
+ def normalize_key(key, separator)
311
+ normalized_key_cache(separator)[key] ||=
312
+ case key
313
+ when Array
314
+ key.map { |k| normalize_key(k, separator) }.flatten
315
+ when nil
316
+ []
317
+ else
318
+ key = key.to_s
319
+ if key == ''
320
+ []
321
+ elsif key.include?(separator)
322
+ keys = key.split(separator) - ['']
323
+ keys.map { |k| k.to_sym }
324
+ else
325
+ [key.to_sym]
326
+ end
327
+ end
328
+ end
329
+
330
+ def normalized_key_cache(separator)
331
+ @normalized_key_cache ||= Hash.new { |h,k| h[k] = {} }
332
+ @normalized_key_cache[separator]
197
333
  end
198
334
  end
199
335
  end