radiant 0.8.2 → 0.9.0.rc2

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 (1212) hide show
  1. data/CHANGELOG +258 -389
  2. data/CONTRIBUTORS +21 -0
  3. data/app/controllers/admin/layouts_controller.rb +2 -8
  4. data/app/controllers/admin/pages_controller.rb +0 -19
  5. data/app/controllers/admin/preferences_controller.rb +3 -4
  6. data/app/controllers/admin/references_controller.rb +1 -1
  7. data/app/controllers/admin/resource_controller.rb +11 -10
  8. data/app/controllers/admin/snippets_controller.rb +5 -6
  9. data/app/controllers/admin/users_controller.rb +15 -1
  10. data/app/controllers/admin/welcome_controller.rb +5 -5
  11. data/app/controllers/application_controller.rb +34 -2
  12. data/app/controllers/site_controller.rb +20 -6
  13. data/app/helpers/admin/layouts_helper.rb +19 -0
  14. data/app/helpers/admin/node_helper.rb +10 -10
  15. data/app/helpers/admin/pages_helper.rb +82 -22
  16. data/app/helpers/admin/references_helper.rb +6 -3
  17. data/app/helpers/admin/snippets_helper.rb +39 -0
  18. data/app/helpers/admin/users_helper.rb +2 -2
  19. data/app/helpers/application_helper.rb +93 -27
  20. data/app/models/layout.rb +3 -4
  21. data/app/models/page.rb +35 -20
  22. data/app/models/page_part.rb +4 -4
  23. data/app/models/radiant/config.rb +11 -7
  24. data/app/models/snippet.rb +5 -5
  25. data/app/models/standard_tags.rb +116 -20
  26. data/app/models/status.rb +3 -1
  27. data/app/models/user.rb +37 -33
  28. data/app/views/admin/extensions/index.html.haml +26 -25
  29. data/app/views/admin/layouts/_form.html.haml +26 -23
  30. data/app/views/admin/layouts/edit.html.haml +5 -3
  31. data/app/views/admin/layouts/index.html.haml +31 -32
  32. data/app/views/admin/layouts/new.html.haml +4 -2
  33. data/app/views/admin/layouts/remove.html.haml +9 -9
  34. data/app/views/admin/page_parts/_page_part.html.haml +11 -10
  35. data/app/views/admin/pages/_fields.html.haml +42 -48
  36. data/app/views/admin/pages/_meta_row.html.haml +2 -4
  37. data/app/views/admin/pages/_node.html.haml +5 -5
  38. data/app/views/admin/pages/_popups.html.haml +12 -29
  39. data/app/views/admin/pages/edit.html.haml +6 -3
  40. data/app/views/admin/pages/index.html.haml +22 -24
  41. data/app/views/admin/pages/new.html.haml +4 -3
  42. data/app/views/admin/pages/remove.html.haml +14 -17
  43. data/app/views/admin/preferences/edit.html.haml +36 -28
  44. data/app/views/admin/references/_tag_reference.haml +2 -2
  45. data/app/views/admin/references/filters.haml +6 -0
  46. data/app/views/admin/references/tags.haml +30 -0
  47. data/app/views/admin/snippets/_form.html.haml +22 -18
  48. data/app/views/admin/snippets/edit.html.haml +6 -2
  49. data/app/views/admin/snippets/index.html.haml +29 -29
  50. data/app/views/admin/snippets/new.html.haml +4 -2
  51. data/app/views/admin/snippets/remove.html.haml +9 -11
  52. data/app/views/admin/users/_avatar.html.haml +3 -0
  53. data/app/views/admin/users/_form.html.haml +47 -67
  54. data/app/views/admin/users/_password_fields.html.haml +18 -0
  55. data/app/views/admin/users/edit.html.haml +5 -1
  56. data/app/views/admin/users/index.html.haml +33 -30
  57. data/app/views/admin/users/new.html.haml +2 -1
  58. data/app/views/admin/users/remove.html.haml +8 -10
  59. data/app/views/admin/welcome/login.html.haml +19 -58
  60. data/app/views/layouts/application.html.haml +30 -29
  61. data/config/boot.rb +1 -1
  62. data/config/cucumber.yml +7 -0
  63. data/config/database.db2.yml +4 -1
  64. data/config/database.mysql.yml +5 -2
  65. data/config/database.postgresql.yml +5 -2
  66. data/config/database.sqlite.yml +4 -1
  67. data/config/database.sqlserver.yml +5 -2
  68. data/config/environment.rb +14 -2
  69. data/config/environments/cucumber.rb +29 -0
  70. data/config/environments/production.rb +6 -1
  71. data/config/environments/test.rb +6 -3
  72. data/config/initializers/haml.rb +2 -0
  73. data/config/initializers/pagination.rb +1 -0
  74. data/config/locales/en.yml +190 -0
  75. data/config/locales/en_available_tags.yml +454 -0
  76. data/config/routes.rb +2 -2
  77. data/db/migrate/20090226140109_add_user_language.rb +9 -0
  78. data/db/migrate/20090929164633_rename_developer_role_to_designer.rb +9 -0
  79. data/db/migrate/20091003095744_change_user_language_to_locale.rb +9 -0
  80. data/db/schema.rb +3 -2
  81. data/features/admin/content_negotiation.feature +4 -4
  82. data/features/admin/layouts_management.feature +2 -2
  83. data/features/admin/pages_management.feature +31 -17
  84. data/features/admin/snippets_management.feature +19 -17
  85. data/features/admin/user_permissions.feature +49 -41
  86. data/features/admin/user_preferences.feature +6 -6
  87. data/features/admin/users_management.feature +8 -9
  88. data/features/page_serving.feature +8 -8
  89. data/features/step_definitions/admin/admin_steps.rb +8 -2
  90. data/features/step_definitions/admin/content_negotiation_steps.rb +14 -5
  91. data/features/step_definitions/admin/pages_management_steps.rb +1 -1
  92. data/features/step_definitions/admin/users_management_steps.rb +3 -0
  93. data/features/step_definitions/page_serving_steps.rb +0 -19
  94. data/features/step_definitions/web_steps.rb +263 -0
  95. data/features/support/dataset.rb +9 -0
  96. data/features/support/env.rb +44 -14
  97. data/features/support/paths.rb +57 -12
  98. data/lib/generators/extension/extension_generator.rb +29 -1
  99. data/lib/generators/extension/templates/RSpecRakefile +14 -1
  100. data/lib/generators/extension/templates/Rakefile +17 -0
  101. data/lib/generators/extension/templates/en.yml +3 -0
  102. data/lib/generators/extension/templates/extension.rb +10 -10
  103. data/lib/generators/extension/templates/routes.rb +5 -0
  104. data/lib/generators/extension/templates/tasks.rake +27 -0
  105. data/lib/generators/extension/templates/test_helper.rb +1 -1
  106. data/lib/generators/instance/instance_generator.rb +3 -2
  107. data/lib/generators/instance/templates/databases/sqlserver.yml +2 -1
  108. data/lib/generators/instance/templates/instance_boot.rb +1 -1
  109. data/lib/generators/instance/templates/instance_environment.rb +8 -1
  110. data/lib/generators/language_extension/USAGE +27 -0
  111. data/lib/generators/language_extension/language_extension_generator.rb +49 -0
  112. data/lib/generators/language_extension/templates/README +3 -0
  113. data/lib/generators/language_extension/templates/RSpecRakefile +123 -0
  114. data/lib/generators/language_extension/templates/Rakefile +25 -0
  115. data/lib/generators/language_extension/templates/available_tags.yml +553 -0
  116. data/lib/generators/language_extension/templates/cucumber.yml +1 -0
  117. data/lib/generators/language_extension/templates/cucumber_env.rb +16 -0
  118. data/lib/generators/language_extension/templates/cucumber_paths.rb +14 -0
  119. data/lib/generators/language_extension/templates/extension.rb +8 -0
  120. data/lib/generators/language_extension/templates/functional_test.rb +15 -0
  121. data/lib/generators/language_extension/templates/lang.yml +181 -0
  122. data/lib/generators/language_extension/templates/spec.opts +6 -0
  123. data/lib/generators/language_extension/templates/spec_helper.rb +36 -0
  124. data/lib/generators/language_extension/templates/tasks.rake +28 -0
  125. data/lib/generators/language_extension/templates/test_helper.rb +26 -0
  126. data/lib/login_system.rb +14 -17
  127. data/lib/radiant.rb +4 -3
  128. data/lib/radiant/admin_ui.rb +114 -58
  129. data/lib/radiant/available_locales.rb +31 -0
  130. data/lib/radiant/cache.rb +12 -0
  131. data/lib/radiant/extension.rb +29 -3
  132. data/lib/radiant/extension/script.rb +44 -13
  133. data/lib/radiant/extension_loader.rb +21 -7
  134. data/lib/radiant/initializer.rb +23 -23
  135. data/lib/radiant/pagination/link_renderer.rb +31 -0
  136. data/lib/radiant/setup.rb +1 -0
  137. data/lib/radiant/taggable.rb +2 -1
  138. data/lib/task_support.rb +21 -1
  139. data/lib/tasks/ci.rake +17 -0
  140. data/lib/tasks/cucumber.rake +39 -13
  141. data/lib/tasks/extensions.rake +12 -1
  142. data/lib/tasks/framework.rake +44 -8
  143. data/lib/tasks/prototype.rake +34 -0
  144. data/lib/tasks/release.rake +6 -4
  145. data/lib/tasks/rspec.rake +7 -7
  146. data/lib/tasks/translate.rake +59 -0
  147. data/lib/tasks/undefine.rake +4 -0
  148. data/lib/translation_support.rb +54 -0
  149. data/public/images/admin/add_tab.png +0 -0
  150. data/public/images/admin/avatar_32x32.png +0 -0
  151. data/public/images/admin/avatar_96x96.png +0 -0
  152. data/public/images/admin/{brown-bottom-line.gif → brown_bottom_line.gif} +0 -0
  153. data/public/images/admin/buttons_background.png +0 -0
  154. data/public/images/admin/calendar_down.gif +0 -0
  155. data/public/images/admin/collapse.png +0 -0
  156. data/public/images/admin/draft_page.png +0 -0
  157. data/public/images/admin/expand.png +0 -0
  158. data/public/images/admin/layout.png +0 -0
  159. data/public/images/admin/login_shadow.png +0 -0
  160. data/public/images/admin/metadata_toggle.png +0 -0
  161. data/public/images/admin/minus_disabled.png +0 -0
  162. data/public/images/admin/minus_grey.png +0 -0
  163. data/public/images/admin/navigation_background.gif +0 -0
  164. data/public/images/admin/navigation_secondary_background.png +0 -0
  165. data/public/images/admin/navigation_secondary_separator.gif +0 -0
  166. data/public/images/admin/navigation_shadow.png +0 -0
  167. data/public/images/admin/navigation_tabs.png +0 -0
  168. data/public/images/admin/{new-homepage.png → new_homepage.png} +0 -0
  169. data/public/images/admin/{new-layout.png → new_layout.png} +0 -0
  170. data/public/images/admin/{new-snippet.png → new_snippet.png} +0 -0
  171. data/public/images/admin/{new-user.png → new_user.png} +0 -0
  172. data/public/images/admin/page.png +0 -0
  173. data/public/images/admin/plus_grey.png +0 -0
  174. data/public/images/admin/popup_border_background.png +0 -0
  175. data/public/images/admin/popup_border_bottom_left.png +0 -0
  176. data/public/images/admin/popup_border_bottom_right.png +0 -0
  177. data/public/images/admin/popup_border_top_left.png +0 -0
  178. data/public/images/admin/popup_border_top_right.png +0 -0
  179. data/public/images/admin/single_form_shadow.png +0 -0
  180. data/public/images/admin/snippet.png +0 -0
  181. data/public/images/admin/spacer.gif +0 -0
  182. data/public/images/admin/status_background.png +0 -0
  183. data/public/images/admin/status_bottom_left.png +0 -0
  184. data/public/images/admin/status_bottom_right.png +0 -0
  185. data/public/images/admin/status_spinner.gif +0 -0
  186. data/public/images/admin/status_top_left.png +0 -0
  187. data/public/images/admin/status_top_right.png +0 -0
  188. data/public/images/admin/tab_close.png +0 -0
  189. data/public/images/admin/vertical_tan_gradient.png +0 -0
  190. data/public/images/admin/view_site.png +0 -0
  191. data/public/images/admin/virtual_page.png +0 -0
  192. data/public/images/radiant-badge-color.png +0 -0
  193. data/public/javascripts/admin/application.js +82 -0
  194. data/public/javascripts/admin/codearea.js +165 -0
  195. data/public/javascripts/{controls.js → admin/controls.js} +78 -76
  196. data/public/javascripts/admin/cookie.js +80 -0
  197. data/public/javascripts/admin/dateinput.js +402 -0
  198. data/public/javascripts/{dragdrop.js → admin/dragdrop.js} +167 -166
  199. data/public/javascripts/{effects.js → admin/effects.js} +168 -174
  200. data/public/javascripts/admin/lowpro.js +340 -0
  201. data/public/javascripts/admin/overrides.js +1 -0
  202. data/public/javascripts/admin/pagestatus.js +17 -0
  203. data/public/javascripts/admin/popup.js +216 -0
  204. data/public/javascripts/{prototype.js → admin/prototype.js} +1574 -1020
  205. data/public/javascripts/admin/ruledtable.js +5 -5
  206. data/public/javascripts/admin/shortcuts.js +27 -0
  207. data/public/javascripts/admin/sitemap.js +37 -20
  208. data/public/javascripts/admin/status.js +233 -0
  209. data/public/javascripts/admin/tabcontrol.js +88 -100
  210. data/public/javascripts/admin/toggle.js +430 -0
  211. data/public/javascripts/admin/utility.js +52 -0
  212. data/public/stylesheets/admin/main.css +1088 -588
  213. data/public/stylesheets/admin/overrides.css +1 -0
  214. data/public/stylesheets/sass/admin/main.sass +26 -0
  215. data/public/stylesheets/sass/admin/modules/_links.sass +15 -0
  216. data/public/stylesheets/sass/admin/modules/_opacity.sass +7 -0
  217. data/public/stylesheets/sass/admin/modules/_rounded.sass +41 -0
  218. data/public/stylesheets/sass/admin/modules/_shadow.sass +9 -0
  219. data/public/stylesheets/sass/admin/overrides.sass +2 -0
  220. data/public/stylesheets/sass/admin/partials/_actions.sass +43 -0
  221. data/public/stylesheets/sass/admin/partials/_avatars.sass +10 -0
  222. data/public/stylesheets/sass/admin/partials/_base.sass +59 -0
  223. data/public/stylesheets/sass/admin/partials/_content.sass +199 -0
  224. data/public/stylesheets/sass/admin/partials/_dateinput.sass +62 -0
  225. data/public/stylesheets/sass/admin/partials/_depreciated.sass +26 -0
  226. data/public/stylesheets/sass/admin/partials/_footer.sass +12 -0
  227. data/public/stylesheets/sass/admin/partials/_forms.sass +309 -0
  228. data/public/stylesheets/sass/admin/partials/_header.sass +112 -0
  229. data/public/stylesheets/sass/admin/partials/_layout.sass +10 -0
  230. data/public/stylesheets/sass/admin/partials/_messages.sass +10 -0
  231. data/public/stylesheets/sass/admin/partials/_popup.sass +117 -0
  232. data/public/stylesheets/sass/admin/partials/_reset.sass +36 -0
  233. data/public/stylesheets/sass/admin/partials/_tabcontrol.sass +70 -0
  234. data/public/stylesheets/sass/admin/partials/_toolbar.sass +31 -0
  235. data/rerun.txt +1 -0
  236. data/script/cucumber +9 -7
  237. data/spec/controllers/admin/export_controller_spec.rb +1 -1
  238. data/spec/controllers/admin/layouts_controller_spec.rb +5 -5
  239. data/spec/controllers/admin/pages_controller_spec.rb +26 -7
  240. data/spec/controllers/admin/preferences_controller_spec.rb +5 -6
  241. data/spec/controllers/admin/references_controller_spec.rb +1 -1
  242. data/spec/controllers/admin/snippets_controller_spec.rb +6 -6
  243. data/spec/controllers/admin/users_controller_spec.rb +10 -1
  244. data/spec/controllers/admin/welcome_controller_spec.rb +3 -3
  245. data/spec/controllers/application_controller_spec.rb +14 -0
  246. data/spec/controllers/site_controller_spec.rb +48 -1
  247. data/spec/datasets/pages_dataset.rb +5 -1
  248. data/spec/datasets/users_dataset.rb +23 -10
  249. data/spec/generators/extension_controller_generator_spec.rb +16 -6
  250. data/spec/generators/extension_generator_spec.rb +49 -18
  251. data/spec/generators/extension_generators_spec_helper.rb +53 -26
  252. data/spec/generators/extension_mailer_generator_spec.rb +3 -3
  253. data/spec/generators/instance_generator_spec.rb +152 -0
  254. data/spec/helpers/admin/node_helper_spec.rb +8 -8
  255. data/spec/helpers/admin/references_helper_spec.rb +4 -4
  256. data/spec/helpers/admin/users_helper_spec.rb +2 -2
  257. data/spec/helpers/application_helper_spec.rb +68 -32
  258. data/spec/lib/login_system_spec.rb +1 -1
  259. data/spec/lib/radiant/admin_ui/nav_tabs_spec.rb +139 -0
  260. data/spec/lib/radiant/admin_ui_spec.rb +30 -131
  261. data/spec/lib/radiant/available_locales_spec.rb +13 -0
  262. data/spec/lib/radiant/extension/script_spec.rb +24 -11
  263. data/spec/lib/radiant/extension_loader_spec.rb +37 -7
  264. data/spec/lib/radiant/extension_spec.rb +32 -1
  265. data/spec/lib/radiant/initializer_spec.rb +32 -2
  266. data/spec/lib/radiant/taggable_spec.rb +10 -8
  267. data/spec/lib/radiant_spec.rb +5 -1
  268. data/spec/lib/task_support_spec.rb +31 -0
  269. data/spec/lib/translation_support_spec.rb +16 -0
  270. data/spec/matchers/generator_matchers.rb +145 -147
  271. data/spec/matchers/render_form_errors_matcher.rb +1 -1
  272. data/spec/models/page_spec.rb +36 -0
  273. data/spec/models/radiant/config_spec.rb +2 -2
  274. data/spec/models/standard_tags_spec.rb +96 -26
  275. data/spec/models/user_spec.rb +32 -8
  276. data/test/fixtures/extensions/{01_basic → basic}/app/controllers/basic_extension_controller.rb +0 -0
  277. data/test/fixtures/extensions/{01_basic → basic}/app/metal/basic_metal.rb +0 -0
  278. data/test/fixtures/extensions/{01_basic → basic}/app/models/basic_extension_mailer.rb +0 -0
  279. data/test/fixtures/extensions/{01_basic → basic}/app/models/basic_extension_model.rb +0 -0
  280. data/test/fixtures/extensions/{01_basic → basic}/app/views/basic_extension/index.html.erb +0 -0
  281. data/test/fixtures/extensions/{01_basic → basic}/app/views/basic_extension/override.html.erb +0 -0
  282. data/test/fixtures/extensions/{01_basic → basic}/app/views/basic_extension_mailer/message.text.html.erb +0 -0
  283. data/test/fixtures/extensions/{01_basic → basic}/basic_extension.rb +3 -4
  284. data/test/fixtures/extensions/{01_basic → basic}/db/migrate/200812131420_create_initial_schema.rb +0 -0
  285. data/test/fixtures/extensions/{01_basic → basic}/db/migrate/200812131421_modify_initial_schema.rb +0 -0
  286. data/test/fixtures/extensions/{01_basic → basic}/lib/new_module.rb +0 -0
  287. data/test/fixtures/extensions/{01_basic → basic}/vendor/plugins/multiple/init.rb +0 -0
  288. data/test/fixtures/extensions/{01_basic → basic}/vendor/plugins/multiple/lib/multiple.rb +0 -0
  289. data/test/fixtures/extensions/{01_basic → basic}/vendor/plugins/plugin_normal/init.rb +0 -0
  290. data/test/fixtures/extensions/{01_basic → basic}/vendor/plugins/plugin_normal/lib/normal_plugin.rb +0 -0
  291. data/test/fixtures/extensions/load_order_blue/load_order_blue_extension.rb +0 -3
  292. data/test/fixtures/extensions/load_order_green/load_order_green_extension.rb +0 -3
  293. data/test/fixtures/extensions/load_order_red/load_order_red_extension.rb +0 -3
  294. data/test/fixtures/extensions/locale/config/locales/en-uk.yml +3 -0
  295. data/test/fixtures/extensions/locale/config/locales/en.yml +3 -0
  296. data/test/fixtures/extensions/locale/locale_extension.rb +5 -0
  297. data/test/fixtures/extensions/{02_overriding → overriding}/app/metal/basic_metal.rb +0 -0
  298. data/test/fixtures/extensions/{02_overriding → overriding}/app/views/basic_extension/override.html.erb +0 -0
  299. data/test/fixtures/extensions/{02_overriding → overriding}/overriding_extension.rb +0 -3
  300. data/test/fixtures/extensions/{02_overriding → overriding}/vendor/plugins/multiple/init.rb +0 -0
  301. data/test/fixtures/extensions/{02_overriding → overriding}/vendor/plugins/multiple/lib/multiple.rb +0 -0
  302. data/test/fixtures/extensions/routed/config/routes.rb +1 -0
  303. data/test/fixtures/extensions/routed/routed_extension.rb +2 -0
  304. data/test/fixtures/extensions/{03_upgrading → upgrading}/db/migrate/01_first.rb +0 -0
  305. data/test/fixtures/extensions/{03_upgrading → upgrading}/db/migrate/02_second.rb +0 -0
  306. data/test/fixtures/extensions/{03_upgrading → upgrading}/db/migrate/03_pending.rb +0 -0
  307. data/test/fixtures/extensions/{03_upgrading → upgrading}/db/migrate/04_dont_run.rb +0 -0
  308. data/test/fixtures/extensions/{03_upgrading → upgrading}/upgrading_extension.rb +0 -0
  309. data/test/fixtures/gems/misnamed_ext-0.0.0/misnamed_ext_extension.rb +2 -0
  310. data/test/fixtures/gems/radiant-gem_ext-extension-0.0.0/gem_ext_extension.rb +2 -0
  311. data/test/fixtures/gems/radiant-gem_ext-extension-0.0.0/lib/gem_ext.rb +3 -0
  312. data/test/test_helper.rb +1 -1
  313. data/vendor/extensions/archive/archive_extension.rb +1 -1
  314. data/vendor/extensions/dutch_language_pack/README +3 -0
  315. data/vendor/extensions/dutch_language_pack/Rakefile +123 -0
  316. data/vendor/extensions/dutch_language_pack/config/locales/nl.yml +187 -0
  317. data/vendor/extensions/dutch_language_pack/config/locales/nl_available_tags.yml +553 -0
  318. data/vendor/extensions/dutch_language_pack/dutch_language_pack_extension.rb +9 -0
  319. data/vendor/extensions/dutch_language_pack/lib/tasks/i18n_nl_extension_tasks.rake +28 -0
  320. data/vendor/extensions/french_language_pack/README +3 -0
  321. data/vendor/extensions/french_language_pack/Rakefile +123 -0
  322. data/vendor/extensions/french_language_pack/config/locales/fr.yml +184 -0
  323. data/vendor/extensions/french_language_pack/config/locales/fr_available_tags.yml +553 -0
  324. data/vendor/extensions/french_language_pack/french_language_pack_extension.rb +9 -0
  325. data/vendor/extensions/french_language_pack/lib/tasks/i18n_fr_extension_tasks.rake +28 -0
  326. data/vendor/extensions/german_language_pack/README +3 -0
  327. data/vendor/extensions/german_language_pack/Rakefile +123 -0
  328. data/vendor/extensions/german_language_pack/config/locales/de.yml +184 -0
  329. data/vendor/extensions/german_language_pack/config/locales/de_available_tags.yml +553 -0
  330. data/vendor/extensions/german_language_pack/german_language_pack_extension.rb +9 -0
  331. data/vendor/extensions/german_language_pack/lib/tasks/i18n_de_extension_tasks.rake +28 -0
  332. data/vendor/extensions/italian_language_pack/README +3 -0
  333. data/vendor/extensions/italian_language_pack/Rakefile +123 -0
  334. data/vendor/extensions/italian_language_pack/config/locales/it.yml +184 -0
  335. data/vendor/extensions/italian_language_pack/config/locales/it_available_tags.yml +553 -0
  336. data/vendor/extensions/italian_language_pack/italian_language_pack_extension.rb +8 -0
  337. data/vendor/extensions/italian_language_pack/lib/tasks/i18n_it_extension_tasks.rake +28 -0
  338. data/vendor/extensions/japanese_language_pack/README +3 -0
  339. data/vendor/extensions/japanese_language_pack/Rakefile +123 -0
  340. data/vendor/extensions/japanese_language_pack/config/locales/ja.yml +184 -0
  341. data/vendor/extensions/japanese_language_pack/config/locales/ja_available_tags.yml +553 -0
  342. data/vendor/extensions/japanese_language_pack/japanese_language_pack_extension.rb +9 -0
  343. data/vendor/extensions/japanese_language_pack/lib/tasks/i18n_ja_extension_tasks.rake +28 -0
  344. data/vendor/extensions/markdown_filter/lib/markdown_filter.rb +5 -1
  345. data/vendor/extensions/markdown_filter/lib/markdown_tags.rb +4 -4
  346. data/vendor/extensions/markdown_filter/markdown.html +122 -122
  347. data/vendor/extensions/markdown_filter/markdown_filter_extension.rb +2 -2
  348. data/vendor/extensions/markdown_filter/smartypants.html +47 -47
  349. data/vendor/extensions/markdown_filter/spec/models/markdown_filter_spec.rb +1 -1
  350. data/vendor/extensions/markdown_filter/vendor/kramdown/AUTHORS +1 -0
  351. data/vendor/extensions/markdown_filter/vendor/kramdown/COPYING +24 -0
  352. data/vendor/extensions/markdown_filter/vendor/kramdown/ChangeLog +2624 -0
  353. data/vendor/extensions/markdown_filter/vendor/kramdown/GPL +674 -0
  354. data/vendor/extensions/markdown_filter/vendor/kramdown/README +20 -0
  355. data/vendor/extensions/markdown_filter/vendor/kramdown/Rakefile +283 -0
  356. data/vendor/extensions/markdown_filter/vendor/kramdown/VERSION +1 -0
  357. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/benchmark.rb +34 -0
  358. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/generate_data.rb +110 -0
  359. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/historic-jruby-1.4.0.dat +7 -0
  360. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/historic-ruby-1.8.6.dat +7 -0
  361. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/historic-ruby-1.8.7.dat +7 -0
  362. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/historic-ruby-1.9.1p243.dat +7 -0
  363. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/historic-ruby-1.9.2dev.dat +7 -0
  364. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/mdbasics.text +306 -0
  365. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/mdsyntax.text +888 -0
  366. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/static-jruby-1.4.0.dat +7 -0
  367. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/static-ruby-1.8.6.dat +7 -0
  368. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/static-ruby-1.8.7.dat +7 -0
  369. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/static-ruby-1.9.1p243.dat +7 -0
  370. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/static-ruby-1.9.2dev.dat +7 -0
  371. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/testing.sh +9 -0
  372. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/timing.sh +10 -0
  373. data/vendor/extensions/markdown_filter/vendor/kramdown/bin/kramdown +71 -0
  374. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/default.css +293 -0
  375. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/default.template +78 -0
  376. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/index.page +91 -0
  377. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/installation.page +90 -0
  378. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/news.feed +10 -0
  379. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/news.page +27 -0
  380. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/quickref.page +551 -0
  381. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/syntax.page +1451 -0
  382. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/tests.page +51 -0
  383. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/virtual +2 -0
  384. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown.rb +23 -0
  385. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/compatibility.rb +34 -0
  386. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/converter.rb +36 -0
  387. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/converter/base.rb +75 -0
  388. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/converter/html.rb +325 -0
  389. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/converter/latex.rb +516 -0
  390. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/document.rb +145 -0
  391. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/error.rb +27 -0
  392. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/options.rb +262 -0
  393. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser.rb +33 -0
  394. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown.rb +292 -0
  395. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/attribute_list.rb +102 -0
  396. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/autolink.rb +42 -0
  397. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/blank_line.rb +43 -0
  398. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/blockquote.rb +42 -0
  399. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/codeblock.rb +58 -0
  400. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/codespan.rb +57 -0
  401. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/emphasis.rb +69 -0
  402. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/eob.rb +39 -0
  403. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/escaped_chars.rb +38 -0
  404. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/extension.rb +109 -0
  405. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/footnote.rb +73 -0
  406. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/header.rb +81 -0
  407. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/horizontal_rule.rb +39 -0
  408. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/html.rb +253 -0
  409. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/html_entity.rb +38 -0
  410. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/line_break.rb +38 -0
  411. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/link.rb +153 -0
  412. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/list.rb +225 -0
  413. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/paragraph.rb +44 -0
  414. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/smart_quotes.rb +213 -0
  415. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/table.rb +125 -0
  416. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/typographic_symbol.rb +48 -0
  417. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/version.rb +28 -0
  418. data/vendor/extensions/markdown_filter/vendor/kramdown/setup.rb +1585 -0
  419. data/vendor/extensions/markdown_filter/vendor/kramdown/test/run_tests.rb +58 -0
  420. data/vendor/extensions/markdown_filter/vendor/kramdown/test/test_files.rb +39 -0
  421. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/01_blank_line/spaces.html +1 -0
  422. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/01_blank_line/spaces.text +3 -0
  423. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/01_blank_line/tabs.html +1 -0
  424. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/01_blank_line/tabs.text +6 -0
  425. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/02_eob/beginning.html +1 -0
  426. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/02_eob/beginning.text +3 -0
  427. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/02_eob/end.html +1 -0
  428. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/02_eob/end.text +3 -0
  429. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/02_eob/middle.html +2 -0
  430. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/02_eob/middle.text +5 -0
  431. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/03_paragraph/indented.html +18 -0
  432. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/03_paragraph/indented.text +19 -0
  433. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/03_paragraph/no_newline_at_end.html +5 -0
  434. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/03_paragraph/no_newline_at_end.text +5 -0
  435. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/03_paragraph/one_para.html +1 -0
  436. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/03_paragraph/one_para.text +1 -0
  437. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/03_paragraph/two_para.html +4 -0
  438. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/03_paragraph/two_para.text +4 -0
  439. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/atx_header.html +34 -0
  440. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/atx_header.text +32 -0
  441. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/atx_header_no_newline_at_end.html +1 -0
  442. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/atx_header_no_newline_at_end.text +1 -0
  443. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/setext_header.html +31 -0
  444. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/setext_header.text +36 -0
  445. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/setext_header_no_newline_at_end.html +1 -0
  446. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/setext_header_no_newline_at_end.text +2 -0
  447. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/with_auto_ids.html +17 -0
  448. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/with_auto_ids.options +1 -0
  449. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/with_auto_ids.text +19 -0
  450. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/indented.html +25 -0
  451. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/indented.text +14 -0
  452. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/nested.html +9 -0
  453. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/nested.text +5 -0
  454. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/no_newline_at_end.html +4 -0
  455. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/no_newline_at_end.text +2 -0
  456. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/only_first_quoted.html +8 -0
  457. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/only_first_quoted.text +4 -0
  458. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/with_code_blocks.html +15 -0
  459. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/with_code_blocks.text +11 -0
  460. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/error.html +4 -0
  461. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/error.text +4 -0
  462. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/no_newline_at_end.html +2 -0
  463. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/no_newline_at_end.text +1 -0
  464. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/normal.html +13 -0
  465. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/normal.text +10 -0
  466. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/tilde_syntax.html +7 -0
  467. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/tilde_syntax.text +9 -0
  468. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/whitespace.html +3 -0
  469. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/whitespace.text +3 -0
  470. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/with_blank_line.html +13 -0
  471. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/with_blank_line.text +12 -0
  472. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/with_eob_marker.html +6 -0
  473. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/with_eob_marker.text +5 -0
  474. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/07_horizontal_rule/error.html +7 -0
  475. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/07_horizontal_rule/error.text +7 -0
  476. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/07_horizontal_rule/normal.html +19 -0
  477. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/07_horizontal_rule/normal.text +19 -0
  478. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/07_horizontal_rule/sepspaces.html +3 -0
  479. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/07_horizontal_rule/sepspaces.text +3 -0
  480. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/07_horizontal_rule/septabs.html +3 -0
  481. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/07_horizontal_rule/septabs.text +3 -0
  482. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/escaping.html +17 -0
  483. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/escaping.text +17 -0
  484. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/list_and_hr.html +9 -0
  485. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/list_and_hr.text +5 -0
  486. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/list_and_others.html +38 -0
  487. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/list_and_others.text +25 -0
  488. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/mixed.html +111 -0
  489. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/mixed.text +66 -0
  490. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/nested.html +17 -0
  491. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/nested.text +7 -0
  492. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/other_first_element.html +39 -0
  493. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/other_first_element.text +18 -0
  494. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/simple_ol.html +19 -0
  495. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/simple_ol.text +13 -0
  496. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/simple_ul.html +61 -0
  497. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/simple_ul.text +43 -0
  498. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/single_item.html +3 -0
  499. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/single_item.text +1 -0
  500. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/special_cases.html +29 -0
  501. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/special_cases.text +19 -0
  502. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/comment.html +13 -0
  503. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/comment.text +12 -0
  504. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/content_model/deflists.html +6 -0
  505. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/content_model/deflists.options +1 -0
  506. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/content_model/deflists.text +6 -0
  507. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/content_model/tables.html +14 -0
  508. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/content_model/tables.options +1 -0
  509. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/content_model/tables.text +14 -0
  510. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/filtered_html.html +1 -0
  511. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/filtered_html.options +1 -0
  512. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/filtered_html.text +1 -0
  513. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_and_codeblocks.html +15 -0
  514. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_and_codeblocks.options +1 -0
  515. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_and_codeblocks.text +13 -0
  516. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/invalid_html_1.html +3 -0
  517. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/invalid_html_1.text +5 -0
  518. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/invalid_html_2.html +5 -0
  519. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/invalid_html_2.text +5 -0
  520. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/markdown_attr.html +38 -0
  521. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/markdown_attr.text +38 -0
  522. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/not_parsed.html +24 -0
  523. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/not_parsed.text +24 -0
  524. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/parse_as_raw.html +32 -0
  525. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/parse_as_raw.options +1 -0
  526. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/parse_as_raw.text +30 -0
  527. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/parse_as_span.html +12 -0
  528. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/parse_as_span.options +1 -0
  529. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/parse_as_span.text +9 -0
  530. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/parse_block_html.html +21 -0
  531. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/parse_block_html.options +1 -0
  532. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/parse_block_html.text +17 -0
  533. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/processing_instruction.html +13 -0
  534. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/processing_instruction.text +12 -0
  535. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/simple.html +62 -0
  536. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/simple.options +1 -0
  537. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/simple.text +57 -0
  538. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/10_ald/simple.html +2 -0
  539. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/10_ald/simple.text +8 -0
  540. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/11_ial/auto_id_and_ial.html +1 -0
  541. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/11_ial/auto_id_and_ial.options +1 -0
  542. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/11_ial/auto_id_and_ial.text +2 -0
  543. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/11_ial/simple.html +20 -0
  544. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/11_ial/simple.text +27 -0
  545. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/comment.html +5 -0
  546. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/comment.text +11 -0
  547. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/ignored.html +6 -0
  548. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/ignored.text +11 -0
  549. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/nomarkdown.html +6 -0
  550. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/nomarkdown.text +11 -0
  551. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/options.html +24 -0
  552. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/options.text +28 -0
  553. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/options2.html +10 -0
  554. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/options2.text +5 -0
  555. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/options3.html +7 -0
  556. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/options3.text +7 -0
  557. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/definition_at_beginning.html +1 -0
  558. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/definition_at_beginning.text +1 -0
  559. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/multiple_terms.html +13 -0
  560. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/multiple_terms.text +10 -0
  561. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/no_def_list.html +2 -0
  562. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/no_def_list.text +2 -0
  563. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/para_wrapping.html +10 -0
  564. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/para_wrapping.text +6 -0
  565. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/separated_by_eob.html +8 -0
  566. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/separated_by_eob.text +5 -0
  567. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/simple.html +8 -0
  568. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/simple.text +7 -0
  569. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/styled_terms.html +4 -0
  570. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/styled_terms.text +2 -0
  571. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/too_much_space.html +3 -0
  572. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/too_much_space.text +4 -0
  573. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/with_blocks.html +38 -0
  574. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/with_blocks.text +24 -0
  575. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/14_table/errors.html +3 -0
  576. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/14_table/errors.text +3 -0
  577. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/14_table/footer.html +65 -0
  578. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/14_table/footer.text +25 -0
  579. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/14_table/header.html +103 -0
  580. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/14_table/header.text +32 -0
  581. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/14_table/no_table.html +3 -0
  582. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/14_table/no_table.text +3 -0
  583. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/14_table/simple.html +61 -0
  584. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/14_table/simple.text +16 -0
  585. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/encoding.html +46 -0
  586. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/encoding.text +28 -0
  587. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/empty.html +3 -0
  588. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/empty.text +3 -0
  589. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/image_in_a.html +5 -0
  590. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/image_in_a.text +5 -0
  591. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/imagelinks.html +12 -0
  592. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/imagelinks.text +14 -0
  593. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/inline.html +40 -0
  594. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/inline.text +42 -0
  595. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/link_defs.html +8 -0
  596. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/link_defs.text +22 -0
  597. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/links_with_angle_brackets.html +3 -0
  598. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/links_with_angle_brackets.text +3 -0
  599. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/reference.html +32 -0
  600. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/reference.text +42 -0
  601. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/02_emphasis/empty.html +3 -0
  602. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/02_emphasis/empty.text +3 -0
  603. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/02_emphasis/errors.html +9 -0
  604. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/02_emphasis/errors.text +9 -0
  605. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/02_emphasis/nesting.html +34 -0
  606. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/02_emphasis/nesting.text +30 -0
  607. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/02_emphasis/normal.html +46 -0
  608. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/02_emphasis/normal.text +46 -0
  609. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/03_codespan/empty.html +5 -0
  610. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/03_codespan/empty.text +5 -0
  611. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/03_codespan/errors.html +1 -0
  612. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/03_codespan/errors.text +1 -0
  613. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/03_codespan/normal.html +16 -0
  614. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/03_codespan/normal.text +16 -0
  615. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/04_footnote/definitions.html +14 -0
  616. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/04_footnote/definitions.text +18 -0
  617. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/04_footnote/footnote_nr.html +12 -0
  618. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/04_footnote/footnote_nr.options +1 -0
  619. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/04_footnote/footnote_nr.text +4 -0
  620. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/04_footnote/markers.html +46 -0
  621. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/04_footnote/markers.text +26 -0
  622. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/05_html/across_lines.html +1 -0
  623. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/05_html/across_lines.text +2 -0
  624. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/05_html/link_with_mailto.html +1 -0
  625. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/05_html/link_with_mailto.text +1 -0
  626. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/05_html/markdown_attr.html +6 -0
  627. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/05_html/markdown_attr.text +6 -0
  628. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/05_html/normal.html +28 -0
  629. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/05_html/normal.text +28 -0
  630. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/autolinks/url_links.html +9 -0
  631. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/autolinks/url_links.text +9 -0
  632. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/escaped_chars/normal.html +41 -0
  633. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/escaped_chars/normal.text +41 -0
  634. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/ial/simple.html +5 -0
  635. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/ial/simple.text +5 -0
  636. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/line_breaks/normal.html +11 -0
  637. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/line_breaks/normal.text +11 -0
  638. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/entities.html +4 -0
  639. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/entities.text +4 -0
  640. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/greaterthan.html +1 -0
  641. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/greaterthan.text +1 -0
  642. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/lowerthan.html +1 -0
  643. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/lowerthan.text +1 -0
  644. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/typography.html +15 -0
  645. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/typography.text +15 -0
  646. data/vendor/extensions/russian_language_pack/README +3 -0
  647. data/vendor/extensions/russian_language_pack/Rakefile +123 -0
  648. data/vendor/extensions/russian_language_pack/config/locales/ru.yml +180 -0
  649. data/vendor/extensions/russian_language_pack/config/locales/ru_available_tags.yml +553 -0
  650. data/vendor/extensions/russian_language_pack/lib/tasks/i18n_ru_extension_tasks.rake +28 -0
  651. data/vendor/extensions/russian_language_pack/russian_language_pack_extension.rb +9 -0
  652. data/vendor/extensions/textile_filter/textile.html +114 -114
  653. data/vendor/plugins/dataset/lib/dataset/extensions/cucumber.rb +5 -4
  654. data/vendor/plugins/dataset/lib/dataset/load.rb +0 -10
  655. data/vendor/plugins/dataset/lib/dataset/session.rb +4 -20
  656. data/vendor/plugins/dataset/lib/dataset/session_binding.rb +5 -15
  657. data/vendor/plugins/haml/CONTRIBUTING +4 -0
  658. data/vendor/plugins/haml/MIT-LICENSE +1 -1
  659. data/vendor/plugins/haml/README.md +357 -0
  660. data/vendor/plugins/haml/Rakefile +233 -26
  661. data/vendor/plugins/haml/TODO +47 -0
  662. data/vendor/plugins/haml/VERSION +1 -1
  663. data/vendor/plugins/haml/VERSION_NAME +1 -0
  664. data/vendor/plugins/haml/doc-src/FAQ.md +175 -0
  665. data/vendor/plugins/haml/doc-src/HAML_CHANGELOG.md +479 -0
  666. data/vendor/plugins/haml/doc-src/HAML_REFERENCE.md +1184 -0
  667. data/vendor/plugins/haml/doc-src/SASS_CHANGELOG.md +695 -0
  668. data/vendor/plugins/haml/doc-src/SASS_REFERENCE.md +1150 -0
  669. data/vendor/plugins/haml/extra/haml-mode.el +514 -97
  670. data/vendor/plugins/haml/extra/sass-mode.el +155 -38
  671. data/vendor/plugins/haml/extra/update_watch.rb +13 -0
  672. data/vendor/plugins/haml/haml.gemspec +51 -0
  673. data/vendor/plugins/haml/init.rb +11 -3
  674. data/vendor/plugins/haml/lib/haml.rb +15 -993
  675. data/vendor/plugins/haml/lib/haml/buffer.rb +147 -85
  676. data/vendor/plugins/haml/lib/haml/engine.rb +137 -103
  677. data/vendor/plugins/haml/lib/haml/error.rb +7 -7
  678. data/vendor/plugins/haml/lib/haml/exec.rb +141 -45
  679. data/vendor/plugins/haml/lib/haml/filters.rb +108 -43
  680. data/vendor/plugins/haml/lib/haml/helpers.rb +267 -168
  681. data/vendor/plugins/haml/lib/haml/helpers/action_view_extensions.rb +48 -38
  682. data/vendor/plugins/haml/lib/haml/helpers/action_view_mods.rb +135 -138
  683. data/vendor/plugins/haml/lib/haml/helpers/xss_mods.rb +125 -0
  684. data/vendor/plugins/haml/lib/haml/html.rb +146 -100
  685. data/vendor/plugins/haml/lib/haml/precompiler.rb +528 -277
  686. data/vendor/plugins/haml/lib/haml/shared.rb +78 -0
  687. data/vendor/plugins/haml/lib/haml/template.rb +49 -15
  688. data/vendor/plugins/haml/lib/haml/template/patch.rb +2 -2
  689. data/vendor/plugins/haml/lib/haml/template/plugin.rb +9 -6
  690. data/vendor/plugins/haml/lib/haml/util.rb +299 -6
  691. data/vendor/plugins/haml/lib/haml/version.rb +30 -13
  692. data/vendor/plugins/haml/lib/sass.rb +7 -856
  693. data/vendor/plugins/haml/lib/sass/css.rb +171 -161
  694. data/vendor/plugins/haml/lib/sass/engine.rb +365 -316
  695. data/vendor/plugins/haml/lib/sass/environment.rb +79 -0
  696. data/vendor/plugins/haml/lib/sass/error.rb +33 -11
  697. data/vendor/plugins/haml/lib/sass/files.rb +147 -0
  698. data/vendor/plugins/haml/lib/sass/plugin.rb +177 -123
  699. data/vendor/plugins/haml/lib/sass/plugin/merb.rb +9 -16
  700. data/vendor/plugins/haml/lib/sass/plugin/rack.rb +65 -0
  701. data/vendor/plugins/haml/lib/sass/plugin/rails.rb +15 -15
  702. data/vendor/plugins/haml/lib/sass/repl.rb +58 -0
  703. data/vendor/plugins/haml/lib/sass/script.rb +62 -0
  704. data/vendor/plugins/haml/lib/sass/script/bool.rb +17 -0
  705. data/vendor/plugins/haml/lib/sass/script/color.rb +222 -0
  706. data/vendor/plugins/haml/lib/sass/script/funcall.rb +50 -0
  707. data/vendor/plugins/haml/lib/sass/script/functions.rb +257 -0
  708. data/vendor/plugins/haml/lib/sass/script/lexer.rb +194 -0
  709. data/vendor/plugins/haml/lib/sass/script/literal.rb +177 -0
  710. data/vendor/plugins/haml/lib/sass/script/node.rb +14 -0
  711. data/vendor/plugins/haml/lib/sass/script/number.rb +383 -0
  712. data/vendor/plugins/haml/lib/sass/script/operation.rb +45 -0
  713. data/vendor/plugins/haml/lib/sass/script/parser.rb +222 -0
  714. data/vendor/plugins/haml/lib/sass/script/string.rb +12 -0
  715. data/vendor/plugins/haml/lib/sass/script/unary_operation.rb +34 -0
  716. data/vendor/plugins/haml/lib/sass/script/variable.rb +31 -0
  717. data/vendor/plugins/haml/lib/sass/tree/comment_node.rb +74 -10
  718. data/vendor/plugins/haml/lib/sass/tree/debug_node.rb +30 -0
  719. data/vendor/plugins/haml/lib/sass/tree/directive_node.rb +39 -17
  720. data/vendor/plugins/haml/lib/sass/tree/for_node.rb +48 -0
  721. data/vendor/plugins/haml/lib/sass/tree/if_node.rb +54 -0
  722. data/vendor/plugins/haml/lib/sass/tree/import_node.rb +65 -0
  723. data/vendor/plugins/haml/lib/sass/tree/mixin_def_node.rb +29 -0
  724. data/vendor/plugins/haml/lib/sass/tree/mixin_node.rb +48 -0
  725. data/vendor/plugins/haml/lib/sass/tree/node.rb +216 -11
  726. data/vendor/plugins/haml/lib/sass/tree/prop_node.rb +121 -0
  727. data/vendor/plugins/haml/lib/sass/tree/rule_node.rb +182 -51
  728. data/vendor/plugins/haml/lib/sass/tree/variable_node.rb +34 -0
  729. data/vendor/plugins/haml/lib/sass/tree/while_node.rb +31 -0
  730. data/vendor/plugins/haml/test/haml/engine_test.rb +659 -44
  731. data/vendor/plugins/haml/test/haml/helper_test.rb +60 -2
  732. data/vendor/plugins/haml/test/haml/html2haml_test.rb +60 -0
  733. data/vendor/plugins/haml/test/haml/results/content_for_layout.xhtml +0 -3
  734. data/vendor/plugins/haml/test/haml/results/filters.xhtml +2 -0
  735. data/vendor/plugins/haml/test/haml/results/just_stuff.xhtml +3 -3
  736. data/vendor/plugins/haml/test/haml/results/list.xhtml +1 -1
  737. data/vendor/plugins/haml/test/haml/results/standard.xhtml +120 -0
  738. data/vendor/plugins/haml/test/haml/rhtml/standard.rhtml +2 -2
  739. data/vendor/plugins/haml/test/haml/template_test.rb +117 -11
  740. data/vendor/plugins/haml/test/haml/templates/content_for_layout.haml +0 -2
  741. data/vendor/plugins/haml/test/haml/templates/list.haml +1 -1
  742. data/vendor/plugins/haml/test/haml/templates/standard.haml +2 -2
  743. data/vendor/plugins/haml/test/haml/templates/standard_ugly.haml +2 -2
  744. data/vendor/plugins/haml/test/haml/util_test.rb +107 -0
  745. data/vendor/plugins/haml/test/linked_rails.rb +11 -2
  746. data/vendor/plugins/haml/test/sass/css2sass_test.rb +83 -24
  747. data/vendor/plugins/haml/test/sass/engine_test.rb +743 -67
  748. data/vendor/plugins/haml/test/sass/functions_test.rb +174 -0
  749. data/vendor/plugins/haml/test/sass/more_results/more1.css +9 -0
  750. data/vendor/plugins/haml/test/sass/more_results/more1_with_line_comments.css +26 -0
  751. data/vendor/plugins/haml/test/sass/more_results/more_import.css +29 -0
  752. data/vendor/plugins/haml/test/sass/more_templates/_more_partial.sass +2 -0
  753. data/vendor/plugins/haml/test/sass/more_templates/more1.sass +23 -0
  754. data/vendor/plugins/haml/test/sass/more_templates/more_import.sass +11 -0
  755. data/vendor/plugins/haml/test/sass/plugin_test.rb +130 -48
  756. data/vendor/plugins/haml/test/sass/results/line_numbers.css +49 -0
  757. data/vendor/plugins/haml/test/sass/results/script.css +16 -0
  758. data/vendor/plugins/haml/test/sass/results/subdir/subdir.css +2 -0
  759. data/vendor/plugins/haml/test/sass/results/units.css +11 -0
  760. data/vendor/plugins/haml/test/sass/script_test.rb +267 -0
  761. data/vendor/plugins/haml/test/sass/templates/complex.sass +0 -3
  762. data/vendor/plugins/haml/test/sass/templates/import.sass +2 -2
  763. data/vendor/plugins/haml/test/sass/templates/importee.sass +7 -2
  764. data/vendor/plugins/haml/test/sass/templates/line_numbers.sass +13 -0
  765. data/vendor/plugins/haml/test/sass/templates/script.sass +101 -0
  766. data/vendor/plugins/haml/test/sass/templates/subdir/nested_subdir/_nested_partial.sass +2 -0
  767. data/vendor/plugins/haml/test/sass/templates/subdir/subdir.sass +2 -2
  768. data/vendor/plugins/haml/test/sass/templates/units.sass +11 -0
  769. data/vendor/plugins/haml/test/test_helper.rb +26 -4
  770. data/vendor/plugins/haml/yard/default/fulldoc/html/css/common.sass +22 -0
  771. data/vendor/plugins/haml/yard/default/layout/html/footer.erb +12 -0
  772. data/vendor/plugins/haml/yard/inherited_hash.rb +41 -0
  773. data/vendor/radius/CHANGELOG +8 -0
  774. data/vendor/radius/Manifest.txt +21 -0
  775. data/vendor/radius/{QUICKSTART → QUICKSTART.rdoc} +11 -12
  776. data/vendor/radius/{README → README.rdoc} +38 -17
  777. data/vendor/radius/Rakefile +31 -86
  778. data/vendor/radius/lib/radius.rb +10 -502
  779. data/vendor/radius/lib/radius/context.rb +139 -0
  780. data/vendor/radius/lib/radius/delegating_open_struct.rb +31 -0
  781. data/vendor/radius/lib/radius/error.rb +43 -0
  782. data/vendor/radius/lib/radius/parse_tag.rb +24 -0
  783. data/vendor/radius/lib/radius/parser.rb +65 -0
  784. data/vendor/radius/lib/radius/parser/scan.rb +1247 -0
  785. data/vendor/radius/lib/radius/parser/scan.rl +123 -0
  786. data/vendor/radius/lib/radius/tag_binding.rb +71 -0
  787. data/vendor/radius/lib/radius/tag_definitions.rb +78 -0
  788. data/vendor/radius/lib/radius/utility.rb +30 -0
  789. data/vendor/radius/lib/radius/version.rb +14 -0
  790. data/vendor/radius/radius.gemspec +38 -0
  791. data/vendor/radius/tasks/scan.rake +27 -0
  792. data/vendor/radius/test/context_test.rb +61 -0
  793. data/vendor/radius/test/{radius_test.rb → parser_test.rb} +45 -82
  794. data/vendor/radius/test/quickstart_test.rb +153 -0
  795. data/vendor/radius/test/test_helper.rb +28 -0
  796. data/vendor/rails/Rakefile +81 -0
  797. data/vendor/rails/actionmailer/CHANGELOG +4 -0
  798. data/vendor/rails/actionmailer/Rakefile +1 -1
  799. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/parser.rb +2 -0
  800. data/vendor/rails/actionmailer/lib/action_mailer/version.rb +1 -1
  801. data/vendor/rails/actionmailer/lib/actionmailer.rb +1 -0
  802. data/vendor/rails/actionmailer/test/fixtures/helpers/example_helper.rb +1 -1
  803. data/vendor/rails/actionmailer/test/mail_service_test.rb +3 -1
  804. data/vendor/rails/actionpack/CHANGELOG +12 -0
  805. data/vendor/rails/actionpack/Rakefile +1 -1
  806. data/vendor/rails/actionpack/lib/action_controller.rb +3 -1
  807. data/vendor/rails/actionpack/lib/action_controller/assertions/dom_assertions.rb +19 -3
  808. data/vendor/rails/actionpack/lib/action_controller/assertions/selector_assertions.rb +16 -10
  809. data/vendor/rails/actionpack/lib/action_controller/base.rb +1 -1
  810. data/vendor/rails/actionpack/lib/action_controller/caching.rb +1 -0
  811. data/vendor/rails/actionpack/lib/action_controller/cookies.rb +2 -1
  812. data/vendor/rails/actionpack/lib/action_controller/http_authentication.rb +3 -2
  813. data/vendor/rails/actionpack/lib/action_controller/integration.rb +15 -3
  814. data/vendor/rails/actionpack/lib/action_controller/layout.rb +6 -1
  815. data/vendor/rails/actionpack/lib/action_controller/middlewares.rb +2 -0
  816. data/vendor/rails/actionpack/lib/action_controller/polymorphic_routes.rb +6 -21
  817. data/vendor/rails/actionpack/lib/action_controller/rack_lint_patch.rb +36 -0
  818. data/vendor/rails/actionpack/lib/action_controller/request_forgery_protection.rb +6 -2
  819. data/vendor/rails/actionpack/lib/action_controller/response.rb +2 -1
  820. data/vendor/rails/actionpack/lib/action_controller/string_coercion.rb +29 -0
  821. data/vendor/rails/actionpack/lib/action_controller/test_case.rb +6 -1
  822. data/vendor/rails/actionpack/lib/action_controller/test_process.rb +1 -1
  823. data/vendor/rails/actionpack/lib/action_controller/translation.rb +2 -2
  824. data/vendor/rails/actionpack/lib/action_controller/uploaded_file.rb +2 -2
  825. data/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/node.rb +1 -1
  826. data/vendor/rails/actionpack/lib/action_pack/version.rb +1 -1
  827. data/vendor/rails/actionpack/lib/action_view.rb +3 -3
  828. data/vendor/rails/actionpack/lib/action_view/base.rb +6 -1
  829. data/vendor/rails/actionpack/lib/action_view/erb/util.rb +6 -0
  830. data/vendor/rails/actionpack/lib/action_view/helpers.rb +2 -0
  831. data/vendor/rails/actionpack/lib/action_view/helpers/active_record_helper.rb +3 -3
  832. data/vendor/rails/actionpack/lib/action_view/helpers/asset_tag_helper.rb +2 -2
  833. data/vendor/rails/actionpack/lib/action_view/helpers/capture_helper.rb +2 -2
  834. data/vendor/rails/actionpack/lib/action_view/helpers/date_helper.rb +27 -15
  835. data/vendor/rails/actionpack/lib/action_view/helpers/form_helper.rb +32 -11
  836. data/vendor/rails/actionpack/lib/action_view/helpers/form_options_helper.rb +1 -1
  837. data/vendor/rails/actionpack/lib/action_view/helpers/form_tag_helper.rb +3 -3
  838. data/vendor/rails/actionpack/lib/action_view/helpers/number_helper.rb +6 -1
  839. data/vendor/rails/actionpack/lib/action_view/helpers/prototype_helper.rb +1 -1
  840. data/vendor/rails/actionpack/lib/action_view/helpers/raw_output_helper.rb +9 -0
  841. data/vendor/rails/actionpack/lib/action_view/helpers/sanitize_helper.rb +10 -2
  842. data/vendor/rails/actionpack/lib/action_view/helpers/tag_helper.rb +4 -4
  843. data/vendor/rails/actionpack/lib/action_view/helpers/translation_helper.rb +1 -1
  844. data/vendor/rails/actionpack/lib/action_view/helpers/url_helper.rb +3 -3
  845. data/vendor/rails/actionpack/lib/action_view/locale/en.yml +3 -0
  846. data/vendor/rails/actionpack/lib/action_view/partials.rb +1 -1
  847. data/vendor/rails/actionpack/lib/action_view/safe_buffer.rb +28 -0
  848. data/vendor/rails/actionpack/lib/action_view/template.rb +8 -2
  849. data/vendor/rails/actionpack/lib/action_view/test_case.rb +102 -27
  850. data/vendor/rails/actionpack/lib/actionpack.rb +1 -0
  851. data/vendor/rails/actionpack/test/controller/cookie_test.rb +7 -0
  852. data/vendor/rails/actionpack/test/controller/dom_assertions_test.rb +53 -0
  853. data/vendor/rails/actionpack/test/controller/filter_params_test.rb +1 -0
  854. data/vendor/rails/actionpack/test/controller/html-scanner/sanitizer_test.rb +1 -0
  855. data/vendor/rails/actionpack/test/controller/http_digest_authentication_test.rb +22 -0
  856. data/vendor/rails/actionpack/test/controller/integration_test.rb +38 -0
  857. data/vendor/rails/actionpack/test/controller/layout_test.rb +11 -0
  858. data/vendor/rails/actionpack/test/controller/polymorphic_routes_test.rb +4 -0
  859. data/vendor/rails/actionpack/test/controller/request_forgery_protection_test.rb +19 -1
  860. data/vendor/rails/actionpack/test/controller/routing_test.rb +23 -15
  861. data/vendor/rails/actionpack/test/controller/session/test_session_test.rb +2 -2
  862. data/vendor/rails/actionpack/test/fixtures/layout_tests/abs_path_layout.rhtml +1 -0
  863. data/vendor/rails/actionpack/test/fixtures/test/_from_helper.erb +1 -0
  864. data/vendor/rails/actionpack/test/template/active_record_helper_test.rb +1 -1
  865. data/vendor/rails/actionpack/test/template/asset_tag_helper_test.rb +12 -0
  866. data/vendor/rails/actionpack/test/template/benchmark_helper_test.rb +6 -6
  867. data/vendor/rails/actionpack/test/template/compiled_templates_test.rb +2 -1
  868. data/vendor/rails/actionpack/test/template/date_helper_i18n_test.rb +10 -9
  869. data/vendor/rails/actionpack/test/template/date_helper_test.rb +29 -13
  870. data/vendor/rails/actionpack/test/template/form_helper_test.rb +90 -10
  871. data/vendor/rails/actionpack/test/template/number_helper_test.rb +4 -0
  872. data/vendor/rails/actionpack/test/template/raw_output_helper_test.rb +21 -0
  873. data/vendor/rails/actionpack/test/template/sanitize_helper_test.rb +10 -1
  874. data/vendor/rails/actionpack/test/template/tag_helper_test.rb +1 -0
  875. data/vendor/rails/actionpack/test/view/safe_buffer_test.rb +36 -0
  876. data/vendor/rails/actionpack/test/view/test_case_test.rb +173 -5
  877. data/vendor/rails/activemodel/CHANGES +12 -0
  878. data/vendor/rails/activemodel/README +21 -0
  879. data/vendor/rails/activemodel/Rakefile +24 -0
  880. data/vendor/rails/activemodel/lib/active_model.rb +5 -0
  881. data/vendor/rails/activemodel/lib/active_model/base.rb +8 -0
  882. data/vendor/rails/activemodel/lib/active_model/callbacks.rb +7 -0
  883. data/vendor/rails/activemodel/lib/active_model/core.rb +7 -0
  884. data/vendor/rails/activemodel/lib/active_model/deprecated_error_methods.rb +38 -0
  885. data/vendor/rails/activemodel/lib/active_model/errors.rb +82 -0
  886. data/vendor/rails/activemodel/lib/active_model/observing.rb +98 -0
  887. data/vendor/rails/activemodel/lib/active_model/state_machine.rb +68 -0
  888. data/vendor/rails/activemodel/lib/active_model/state_machine/event.rb +64 -0
  889. data/vendor/rails/activemodel/lib/active_model/state_machine/machine.rb +78 -0
  890. data/vendor/rails/activemodel/lib/active_model/state_machine/state.rb +47 -0
  891. data/vendor/rails/activemodel/lib/active_model/state_machine/state_transition.rb +40 -0
  892. data/vendor/rails/activemodel/lib/active_model/validations.rb +126 -0
  893. data/vendor/rails/activemodel/lib/active_model/validations/acceptance.rb +45 -0
  894. data/vendor/rails/activemodel/lib/active_model/validations/associated.rb +46 -0
  895. data/vendor/rails/activemodel/lib/active_model/validations/confirmation.rb +44 -0
  896. data/vendor/rails/activemodel/lib/active_model/validations/exclusion.rb +37 -0
  897. data/vendor/rails/activemodel/lib/active_model/validations/format.rb +39 -0
  898. data/vendor/rails/activemodel/lib/active_model/validations/inclusion.rb +37 -0
  899. data/vendor/rails/activemodel/lib/active_model/validations/length.rb +95 -0
  900. data/vendor/rails/activemodel/lib/active_model/validations/numericality.rb +80 -0
  901. data/vendor/rails/activemodel/lib/active_model/validations/presence.rb +42 -0
  902. data/vendor/rails/activemodel/lib/active_model/validations/uniqueness.rb +104 -0
  903. data/vendor/rails/activemodel/test/observing_test.rb +121 -0
  904. data/vendor/rails/activemodel/test/state_machine/event_test.rb +49 -0
  905. data/vendor/rails/activemodel/test/state_machine/machine_test.rb +43 -0
  906. data/vendor/rails/activemodel/test/state_machine/state_test.rb +72 -0
  907. data/vendor/rails/activemodel/test/state_machine/state_transition_test.rb +84 -0
  908. data/vendor/rails/activemodel/test/state_machine_test.rb +312 -0
  909. data/vendor/rails/activemodel/test/test_helper.rb +21 -0
  910. data/vendor/rails/activerecord/CHANGELOG +8 -0
  911. data/vendor/rails/activerecord/MIT-LICENSE +20 -0
  912. data/vendor/rails/activerecord/Rakefile +1 -1
  913. data/vendor/rails/activerecord/lib/active_record/associations.rb +10 -7
  914. data/vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb +7 -8
  915. data/vendor/rails/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb +2 -2
  916. data/vendor/rails/activerecord/lib/active_record/associations/has_one_association.rb +9 -0
  917. data/vendor/rails/activerecord/lib/active_record/autosave_association.rb +32 -23
  918. data/vendor/rails/activerecord/lib/active_record/base.rb +7 -0
  919. data/vendor/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb +6 -2
  920. data/vendor/rails/activerecord/lib/active_record/fixtures.rb +1 -1
  921. data/vendor/rails/activerecord/lib/active_record/locking/optimistic.rb +0 -33
  922. data/vendor/rails/activerecord/lib/active_record/locking/pessimistic.rb +0 -22
  923. data/vendor/rails/activerecord/lib/active_record/nested_attributes.rb +101 -38
  924. data/vendor/rails/activerecord/lib/active_record/validations.rb +35 -35
  925. data/vendor/rails/activerecord/lib/active_record/version.rb +1 -1
  926. data/vendor/rails/activerecord/lib/activerecord.rb +1 -0
  927. data/vendor/rails/activerecord/test/cases/associations/has_many_associations_test.rb +12 -0
  928. data/vendor/rails/activerecord/test/cases/associations/has_many_through_associations_test.rb +22 -0
  929. data/vendor/rails/activerecord/test/cases/associations/has_one_associations_test.rb +21 -0
  930. data/vendor/rails/activerecord/test/cases/autosave_association_test.rb +230 -11
  931. data/vendor/rails/activerecord/test/cases/base_test.rb +2 -0
  932. data/vendor/rails/activerecord/test/cases/connection_test_mysql.rb +8 -0
  933. data/vendor/rails/activerecord/test/cases/fixtures_test.rb +2 -2
  934. data/vendor/rails/activerecord/test/cases/locking_test.rb +0 -18
  935. data/vendor/rails/activerecord/test/cases/nested_attributes_test.rb +109 -37
  936. data/vendor/rails/activerecord/test/cases/reflection_test.rb +3 -3
  937. data/vendor/rails/activerecord/test/cases/validations_i18n_test.rb +8 -0
  938. data/vendor/rails/activerecord/test/cases/validations_test.rb +37 -9
  939. data/vendor/rails/activerecord/test/fixtures/accounts.yml +1 -0
  940. data/vendor/rails/activerecord/test/models/company.rb +10 -0
  941. data/vendor/rails/activerecord/test/models/pirate.rb +9 -2
  942. data/vendor/rails/activerecord/test/models/treasure.rb +2 -0
  943. data/vendor/rails/activerecord/test/schema/mysql_specific_schema.rb +12 -0
  944. data/vendor/rails/activerecord/test/schema/schema.rb +1 -0
  945. data/vendor/rails/activeresource/CHANGELOG +9 -0
  946. data/vendor/rails/activeresource/MIT-LICENSE +20 -0
  947. data/vendor/rails/activeresource/Rakefile +1 -1
  948. data/vendor/rails/activeresource/lib/active_resource/validations.rb +2 -2
  949. data/vendor/rails/activeresource/lib/active_resource/version.rb +1 -1
  950. data/vendor/rails/activeresource/lib/activeresource.rb +1 -0
  951. data/vendor/rails/activeresource/test/base_errors_test.rb +2 -2
  952. data/vendor/rails/activesupport/CHANGELOG +8 -0
  953. data/vendor/rails/activesupport/MIT-LICENSE +20 -0
  954. data/vendor/rails/activesupport/Rakefile +175 -0
  955. data/vendor/rails/activesupport/bin/generate_tables +147 -0
  956. data/vendor/rails/activesupport/install.rb +30 -0
  957. data/vendor/rails/activesupport/lib/active_support/cache.rb +7 -0
  958. data/vendor/rails/activesupport/lib/active_support/cache/mem_cache_store.rb +5 -0
  959. data/vendor/rails/activesupport/lib/active_support/cache/strategy/local_cache.rb +5 -5
  960. data/vendor/rails/activesupport/lib/active_support/core_ext.rb +7 -3
  961. data/vendor/rails/activesupport/lib/active_support/core_ext/blank.rb +2 -58
  962. data/vendor/rails/activesupport/lib/active_support/core_ext/kernel/debugger.rb +1 -0
  963. data/vendor/rails/activesupport/lib/active_support/core_ext/name_error.rb +3 -1
  964. data/vendor/rails/activesupport/lib/active_support/core_ext/object.rb +1 -0
  965. data/vendor/rails/activesupport/lib/active_support/core_ext/object/blank.rb +58 -0
  966. data/vendor/rails/activesupport/lib/active_support/core_ext/string.rb +2 -0
  967. data/vendor/rails/activesupport/lib/active_support/core_ext/string/output_safety.rb +48 -0
  968. data/vendor/rails/activesupport/lib/active_support/core_ext/time/calculations.rb +2 -1
  969. data/vendor/rails/activesupport/lib/active_support/deprecation.rb +1 -1
  970. data/vendor/rails/activesupport/lib/active_support/json/backends/jsongem.rb +2 -3
  971. data/vendor/rails/activesupport/lib/active_support/json/backends/yaml.rb +1 -5
  972. data/vendor/rails/activesupport/lib/active_support/json/decoding.rb +2 -0
  973. data/vendor/rails/activesupport/lib/active_support/message_verifier.rb +30 -10
  974. data/vendor/rails/activesupport/lib/active_support/multibyte/chars.rb +1 -1
  975. data/vendor/rails/activesupport/lib/active_support/multibyte/utils.rb +4 -4
  976. data/vendor/rails/activesupport/lib/active_support/ordered_hash.rb +7 -0
  977. data/vendor/rails/activesupport/lib/active_support/vendor.rb +2 -2
  978. data/vendor/rails/activesupport/lib/active_support/version.rb +1 -1
  979. data/vendor/rails/activesupport/lib/active_support/whiny_nil.rb +8 -2
  980. data/vendor/rails/activesupport/lib/active_support/xml_mini/nokogiri.rb +13 -21
  981. data/vendor/rails/activesupport/lib/activesupport.rb +1 -0
  982. data/vendor/rails/activesupport/test/abstract_unit.rb +36 -0
  983. data/vendor/rails/activesupport/test/autoloading_fixtures/a/b.rb +2 -0
  984. data/vendor/rails/activesupport/test/autoloading_fixtures/a/c/d.rb +2 -0
  985. data/vendor/rails/activesupport/test/autoloading_fixtures/a/c/e/f.rb +2 -0
  986. data/vendor/rails/activesupport/test/autoloading_fixtures/application.rb +1 -0
  987. data/vendor/rails/activesupport/test/autoloading_fixtures/class_folder.rb +3 -0
  988. data/vendor/rails/activesupport/test/autoloading_fixtures/class_folder/class_folder_subclass.rb +3 -0
  989. data/vendor/rails/activesupport/test/autoloading_fixtures/class_folder/inline_class.rb +2 -0
  990. data/vendor/rails/activesupport/test/autoloading_fixtures/class_folder/nested_class.rb +7 -0
  991. data/vendor/rails/activesupport/test/autoloading_fixtures/conflict.rb +1 -0
  992. data/vendor/rails/activesupport/test/autoloading_fixtures/counting_loader.rb +5 -0
  993. data/vendor/rails/activesupport/test/autoloading_fixtures/cross_site_dependency.rb +2 -0
  994. data/vendor/rails/activesupport/test/autoloading_fixtures/e.rb +2 -0
  995. data/vendor/rails/activesupport/test/autoloading_fixtures/module_folder/inline_class.rb +2 -0
  996. data/vendor/rails/activesupport/test/autoloading_fixtures/module_folder/nested_class.rb +4 -0
  997. data/vendor/rails/activesupport/test/autoloading_fixtures/module_folder/nested_sibling.rb +2 -0
  998. data/vendor/rails/activesupport/test/autoloading_fixtures/module_with_custom_const_missing/a/b.rb +1 -0
  999. data/vendor/rails/activesupport/test/autoloading_fixtures/multiple_constant_file.rb +2 -0
  1000. data/vendor/rails/activesupport/test/autoloading_fixtures/raises_name_error.rb +3 -0
  1001. data/vendor/rails/activesupport/test/autoloading_fixtures/raises_no_method_error.rb +3 -0
  1002. data/vendor/rails/activesupport/test/buffered_logger_test.rb +146 -0
  1003. data/vendor/rails/activesupport/test/caching_test.rb +348 -0
  1004. data/vendor/rails/activesupport/test/callbacks_test.rb +188 -0
  1005. data/vendor/rails/activesupport/test/clean_backtrace_test.rb +47 -0
  1006. data/vendor/rails/activesupport/test/clean_logger_test.rb +57 -0
  1007. data/vendor/rails/activesupport/test/core_ext/array_ext_test.rb +363 -0
  1008. data/vendor/rails/activesupport/test/core_ext/base64_ext_test.rb +8 -0
  1009. data/vendor/rails/activesupport/test/core_ext/bigdecimal.rb +10 -0
  1010. data/vendor/rails/activesupport/test/core_ext/blank_test.rb +24 -0
  1011. data/vendor/rails/activesupport/test/core_ext/cgi_ext_test.rb +14 -0
  1012. data/vendor/rails/activesupport/test/core_ext/class/attribute_accessor_test.rb +31 -0
  1013. data/vendor/rails/activesupport/test/core_ext/class/class_inheritable_attributes_test.rb +224 -0
  1014. data/vendor/rails/activesupport/test/core_ext/class/delegating_attributes_test.rb +115 -0
  1015. data/vendor/rails/activesupport/test/core_ext/class_test.rb +46 -0
  1016. data/vendor/rails/activesupport/test/core_ext/date_ext_test.rb +278 -0
  1017. data/vendor/rails/activesupport/test/core_ext/date_time_ext_test.rb +359 -0
  1018. data/vendor/rails/activesupport/test/core_ext/duplicable_test.rb +22 -0
  1019. data/vendor/rails/activesupport/test/core_ext/duration_test.rb +121 -0
  1020. data/vendor/rails/activesupport/test/core_ext/enumerable_test.rb +97 -0
  1021. data/vendor/rails/activesupport/test/core_ext/exception_test.rb +68 -0
  1022. data/vendor/rails/activesupport/test/core_ext/file_test.rb +67 -0
  1023. data/vendor/rails/activesupport/test/core_ext/float_ext_test.rb +25 -0
  1024. data/vendor/rails/activesupport/test/core_ext/hash_ext_test.rb +1014 -0
  1025. data/vendor/rails/activesupport/test/core_ext/integer_ext_test.rb +37 -0
  1026. data/vendor/rails/activesupport/test/core_ext/kernel_test.rb +43 -0
  1027. data/vendor/rails/activesupport/test/core_ext/load_error_test.rb +16 -0
  1028. data/vendor/rails/activesupport/test/core_ext/module/attr_accessor_with_default_test.rb +30 -0
  1029. data/vendor/rails/activesupport/test/core_ext/module/attr_internal_test.rb +52 -0
  1030. data/vendor/rails/activesupport/test/core_ext/module/attribute_accessor_test.rb +33 -0
  1031. data/vendor/rails/activesupport/test/core_ext/module/attribute_aliasing_test.rb +58 -0
  1032. data/vendor/rails/activesupport/test/core_ext/module/model_naming_test.rb +27 -0
  1033. data/vendor/rails/activesupport/test/core_ext/module/synchronization_test.rb +85 -0
  1034. data/vendor/rails/activesupport/test/core_ext/module_test.rb +363 -0
  1035. data/vendor/rails/activesupport/test/core_ext/name_error_test.rb +20 -0
  1036. data/vendor/rails/activesupport/test/core_ext/numeric_ext_test.rb +162 -0
  1037. data/vendor/rails/activesupport/test/core_ext/object_and_class_ext_test.rb +282 -0
  1038. data/vendor/rails/activesupport/test/core_ext/object_ext_test.rb +8 -0
  1039. data/vendor/rails/activesupport/test/core_ext/pathname_test.rb +9 -0
  1040. data/vendor/rails/activesupport/test/core_ext/proc_test.rb +11 -0
  1041. data/vendor/rails/activesupport/test/core_ext/range_ext_test.rb +63 -0
  1042. data/vendor/rails/activesupport/test/core_ext/string_ext_test.rb +369 -0
  1043. data/vendor/rails/activesupport/test/core_ext/symbol_test.rb +9 -0
  1044. data/vendor/rails/activesupport/test/core_ext/time_ext_test.rb +744 -0
  1045. data/vendor/rails/activesupport/test/core_ext/time_with_zone_test.rb +845 -0
  1046. data/vendor/rails/activesupport/test/core_ext/uri_ext_test.rb +12 -0
  1047. data/vendor/rails/activesupport/test/dependencies/check_warnings.rb +2 -0
  1048. data/vendor/rails/activesupport/test/dependencies/conflict.rb +1 -0
  1049. data/vendor/rails/activesupport/test/dependencies/cross_site_depender.rb +3 -0
  1050. data/vendor/rails/activesupport/test/dependencies/mutual_one.rb +4 -0
  1051. data/vendor/rails/activesupport/test/dependencies/mutual_two.rb +4 -0
  1052. data/vendor/rails/activesupport/test/dependencies/raises_exception.rb +3 -0
  1053. data/vendor/rails/activesupport/test/dependencies/requires_nonexistent0.rb +1 -0
  1054. data/vendor/rails/activesupport/test/dependencies/requires_nonexistent1.rb +1 -0
  1055. data/vendor/rails/activesupport/test/dependencies/service_one.rb +5 -0
  1056. data/vendor/rails/activesupport/test/dependencies/service_two.rb +2 -0
  1057. data/vendor/rails/activesupport/test/dependencies_test.rb +782 -0
  1058. data/vendor/rails/activesupport/test/deprecation_test.rb +167 -0
  1059. data/vendor/rails/activesupport/test/flush_cache_on_private_memoization_test.rb +43 -0
  1060. data/vendor/rails/activesupport/test/gzip_test.rb +7 -0
  1061. data/vendor/rails/activesupport/test/i18n_test.rb +98 -0
  1062. data/vendor/rails/activesupport/test/inflector_test.rb +298 -0
  1063. data/vendor/rails/activesupport/test/inflector_test_cases.rb +252 -0
  1064. data/vendor/rails/activesupport/test/json/decoding_test.rb +73 -0
  1065. data/vendor/rails/activesupport/test/json/encoding_test.rb +160 -0
  1066. data/vendor/rails/activesupport/test/memoizable_test.rb +247 -0
  1067. data/vendor/rails/activesupport/test/message_encryptor_test.rb +46 -0
  1068. data/vendor/rails/activesupport/test/message_verifier_test.rb +31 -0
  1069. data/vendor/rails/activesupport/test/multibyte_chars_test.rb +606 -0
  1070. data/vendor/rails/activesupport/test/multibyte_conformance.rb +129 -0
  1071. data/vendor/rails/activesupport/test/multibyte_test_helpers.rb +19 -0
  1072. data/vendor/rails/activesupport/test/multibyte_unicode_database_test.rb +22 -0
  1073. data/vendor/rails/activesupport/test/multibyte_utils_test.rb +137 -0
  1074. data/vendor/rails/activesupport/test/option_merger_test.rb +85 -0
  1075. data/vendor/rails/activesupport/test/ordered_hash_test.rb +201 -0
  1076. data/vendor/rails/activesupport/test/ordered_options_test.rb +53 -0
  1077. data/vendor/rails/activesupport/test/rescuable_test.rb +75 -0
  1078. data/vendor/rails/activesupport/test/secure_random_test.rb +19 -0
  1079. data/vendor/rails/activesupport/test/string_inquirer_test.rb +15 -0
  1080. data/vendor/rails/activesupport/test/test_test.rb +148 -0
  1081. data/vendor/rails/activesupport/test/time_zone_test.rb +266 -0
  1082. data/vendor/rails/activesupport/test/whiny_nil_test.rb +50 -0
  1083. data/vendor/rails/activesupport/test/xml_mini/jdom_engine_test.rb +153 -0
  1084. data/vendor/rails/activesupport/test/xml_mini/nokogiri_engine_test.rb +168 -0
  1085. data/vendor/rails/activesupport/test/xml_mini/rexml_engine_test.rb +15 -0
  1086. data/vendor/rails/ci/ci_build.rb +119 -0
  1087. data/vendor/rails/ci/ci_setup_notes.txt +131 -0
  1088. data/vendor/rails/ci/cruise_config.rb +9 -0
  1089. data/vendor/rails/ci/geminstaller.yml +24 -0
  1090. data/vendor/rails/ci/site.css +13 -0
  1091. data/vendor/rails/ci/site_config.rb +72 -0
  1092. data/vendor/rails/doc/template/horo.rb +613 -0
  1093. data/vendor/rails/pushgems.rb +14 -0
  1094. data/vendor/rails/railties/CHANGELOG +6 -0
  1095. data/vendor/rails/railties/Rakefile +6 -6
  1096. data/vendor/rails/railties/lib/commands/plugin.rb +1 -1
  1097. data/vendor/rails/railties/lib/rails/rack/debugger.rb +2 -0
  1098. data/vendor/rails/railties/lib/rails/version.rb +1 -1
  1099. data/vendor/rails/railties/lib/rails_generator/options.rb +7 -7
  1100. data/vendor/rails/railties/lib/tasks/rails.rb +2 -1
  1101. data/vendor/rails/railties/test/abstract_unit.rb +27 -0
  1102. data/vendor/rails/railties/test/backtrace_cleaner_test.rb +61 -0
  1103. data/vendor/rails/railties/test/boot_test.rb +178 -0
  1104. data/vendor/rails/railties/test/console_app_test.rb +42 -0
  1105. data/vendor/rails/railties/test/fcgi_dispatcher_test.rb +266 -0
  1106. data/vendor/rails/railties/test/fixtures/about_yml_plugins/bad_about_yml/about.yml +1 -0
  1107. data/vendor/rails/railties/test/fixtures/about_yml_plugins/bad_about_yml/init.rb +1 -0
  1108. data/vendor/rails/railties/test/fixtures/about_yml_plugins/plugin_without_about_yml/init.rb +1 -0
  1109. data/vendor/rails/railties/test/fixtures/eager/zoo.rb +3 -0
  1110. data/vendor/rails/railties/test/fixtures/eager/zoo/reptile_house.rb +2 -0
  1111. data/vendor/rails/railties/test/fixtures/environment_with_constant.rb +1 -0
  1112. data/vendor/{extensions/markdown_filter/lib/tasks/textile_filter_extension_tasks.rake → rails/railties/test/fixtures/lib/generators/missing_class/missing_class_generator.rb} +0 -0
  1113. data/vendor/rails/railties/test/fixtures/lib/generators/working/working_generator.rb +2 -0
  1114. data/vendor/rails/railties/test/fixtures/metal/multiplemetals/app/metal/metal_a.rb +5 -0
  1115. data/vendor/rails/railties/test/fixtures/metal/multiplemetals/app/metal/metal_b.rb +5 -0
  1116. data/vendor/rails/railties/test/fixtures/metal/pluralmetal/app/metal/legacy_routes.rb +5 -0
  1117. data/vendor/rails/railties/test/fixtures/metal/singlemetal/app/metal/foo_metal.rb +5 -0
  1118. data/vendor/rails/railties/test/fixtures/metal/subfolders/app/metal/Folder/metal_a.rb +7 -0
  1119. data/vendor/rails/railties/test/fixtures/metal/subfolders/app/metal/Folder/metal_b.rb +7 -0
  1120. data/vendor/rails/railties/test/fixtures/plugins/alternate/a/generators/a_generator/a_generator.rb +4 -0
  1121. data/vendor/rails/railties/test/fixtures/plugins/default/gemlike/init.rb +1 -0
  1122. data/vendor/rails/railties/test/fixtures/plugins/default/gemlike/lib/gemlike.rb +2 -0
  1123. data/vendor/rails/railties/test/fixtures/plugins/default/gemlike/rails/init.rb +7 -0
  1124. data/vendor/rails/railties/test/fixtures/plugins/default/plugin_with_no_lib_dir/init.rb +0 -0
  1125. data/vendor/rails/railties/test/fixtures/plugins/default/stubby/about.yml +2 -0
  1126. data/vendor/rails/railties/test/fixtures/plugins/default/stubby/generators/stubby_generator/stubby_generator.rb +4 -0
  1127. data/vendor/rails/railties/test/fixtures/plugins/default/stubby/init.rb +7 -0
  1128. data/vendor/rails/railties/test/fixtures/plugins/default/stubby/lib/stubby_mixin.rb +2 -0
  1129. data/vendor/rails/railties/test/fixtures/plugins/engines/engine/app/controllers/engine_controller.rb +2 -0
  1130. data/vendor/rails/railties/test/fixtures/plugins/engines/engine/app/metal/engine_metal.rb +10 -0
  1131. data/vendor/rails/railties/test/fixtures/plugins/engines/engine/app/models/engine_model.rb +2 -0
  1132. data/vendor/rails/railties/test/fixtures/plugins/engines/engine/config/locales/en.yml +2 -0
  1133. data/vendor/rails/railties/test/fixtures/plugins/engines/engine/config/routes.rb +3 -0
  1134. data/vendor/rails/railties/test/fixtures/plugins/engines/engine/init.rb +3 -0
  1135. data/vendor/rails/railties/test/fixtures/public/foo/bar.html +1 -0
  1136. data/vendor/rails/railties/test/fixtures/public/foo/index.html +1 -0
  1137. data/vendor/rails/railties/test/fixtures/public/index.html +1 -0
  1138. data/vendor/rails/railties/test/gem_dependency_test.rb +219 -0
  1139. data/vendor/rails/railties/test/generator_lookup_test.rb +40 -0
  1140. data/vendor/rails/railties/test/generators/generator_test_helper.rb +310 -0
  1141. data/vendor/rails/railties/test/generators/rails_controller_generator_test.rb +44 -0
  1142. data/vendor/rails/railties/test/generators/rails_helper_generator_test.rb +36 -0
  1143. data/vendor/rails/railties/test/generators/rails_mailer_generator_test.rb +29 -0
  1144. data/vendor/rails/railties/test/generators/rails_model_generator_test.rb +96 -0
  1145. data/vendor/rails/railties/test/generators/rails_resource_generator_test.rb +29 -0
  1146. data/vendor/rails/railties/test/generators/rails_scaffold_generator_test.rb +151 -0
  1147. data/vendor/rails/railties/test/generators/rails_template_runner_test.rb +216 -0
  1148. data/vendor/rails/railties/test/initializer_test.rb +416 -0
  1149. data/vendor/rails/railties/test/metal_test.rb +72 -0
  1150. data/vendor/rails/railties/test/mocks/routes.rb +6 -0
  1151. data/vendor/rails/railties/test/plugin_loader_test.rb +172 -0
  1152. data/vendor/rails/railties/test/plugin_locator_test.rb +62 -0
  1153. data/vendor/rails/railties/test/plugin_test.rb +162 -0
  1154. data/vendor/rails/railties/test/plugin_test_helper.rb +29 -0
  1155. data/vendor/rails/railties/test/rack_static_test.rb +46 -0
  1156. data/vendor/rails/railties/test/rails_generator_test.rb +145 -0
  1157. data/vendor/rails/railties/test/rails_info_controller_test.rb +52 -0
  1158. data/vendor/rails/railties/test/rails_info_test.rb +99 -0
  1159. data/vendor/rails/railties/test/secret_key_generation_test.rb +38 -0
  1160. data/vendor/rails/railties/test/vendor/gems/dummy-gem-a-0.4.0/lib/dummy-gem-a.rb +1 -0
  1161. data/vendor/rails/railties/test/vendor/gems/dummy-gem-b-0.4.0/lib/dummy-gem-b.rb +1 -0
  1162. data/vendor/rails/railties/test/vendor/gems/dummy-gem-b-0.6.0/lib/dummy-gem-b.rb +1 -0
  1163. data/vendor/rails/railties/test/vendor/gems/dummy-gem-c-0.4.0/lib/dummy-gem-c.rb +1 -0
  1164. data/vendor/rails/railties/test/vendor/gems/dummy-gem-c-0.6.0/lib/dummy-gem-c.rb +1 -0
  1165. data/vendor/rails/railties/test/vendor/gems/dummy-gem-d-1.0.0/lib/dummy-gem-d.rb +1 -0
  1166. data/vendor/rails/railties/test/vendor/gems/dummy-gem-e-1.0.0/lib/dummy-gem-e.rb +1 -0
  1167. data/vendor/rails/railties/test/vendor/gems/dummy-gem-f-1.0.0/lib/dummy-gem-f.rb +1 -0
  1168. data/vendor/rails/railties/test/vendor/gems/dummy-gem-g-1.0.0/lib/dummy-gem-g.rb +1 -0
  1169. data/vendor/rails/railties/test/vendor/gems/dummy-gem-h-1.0.0/lib/dummy-gem-h.rb +1 -0
  1170. data/vendor/rails/railties/test/vendor/gems/dummy-gem-i-1.0.0/ext/dummy-gem-i/Makefile +0 -0
  1171. data/vendor/rails/railties/test/vendor/gems/dummy-gem-i-1.0.0/lib/dummy-gem-i.rb +1 -0
  1172. data/vendor/rails/railties/test/vendor/gems/dummy-gem-j-1.0.0/lib/dummy-gem-j.rb +1 -0
  1173. data/vendor/rails/railties/test/vendor/gems/dummy-gem-k-1.0.0/lib/dummy-gem-k.rb +1 -0
  1174. data/vendor/rails/release.rb +25 -0
  1175. metadata +814 -84
  1176. data/app/views/admin/pages/_edit_styles.html.haml +0 -15
  1177. data/app/views/admin/references/filters.js.erb +0 -5
  1178. data/app/views/admin/references/tags.js.erb +0 -5
  1179. data/features/step_definitions/webrat_steps.rb +0 -117
  1180. data/public/images/admin/add-child.png +0 -0
  1181. data/public/images/admin/clear-page-cache.png +0 -0
  1182. data/public/images/admin/remove-disabled.png +0 -0
  1183. data/public/images/admin/remove.png +0 -0
  1184. data/public/images/admin/view-site.gif +0 -0
  1185. data/public/images/admin/virtual-page.png +0 -0
  1186. data/public/javascripts/admin/admin.js +0 -149
  1187. data/public/javascripts/application.js +0 -2
  1188. data/public/javascripts/pngfix.js +0 -39
  1189. data/public/javascripts/string.js +0 -17
  1190. data/vendor/extensions/markdown_filter/vendor/bluecloth/CHANGES +0 -366
  1191. data/vendor/extensions/markdown_filter/vendor/bluecloth/LICENSE +0 -340
  1192. data/vendor/extensions/markdown_filter/vendor/bluecloth/README +0 -99
  1193. data/vendor/extensions/markdown_filter/vendor/bluecloth/bin/bluecloth +0 -83
  1194. data/vendor/extensions/markdown_filter/vendor/bluecloth/install.rb +0 -150
  1195. data/vendor/extensions/markdown_filter/vendor/bluecloth/lib/bluecloth.rb +0 -1144
  1196. data/vendor/extensions/markdown_filter/vendor/bluecloth/test.rb +0 -117
  1197. data/vendor/extensions/markdown_filter/vendor/bluecloth/tests/00_Class.tests.rb +0 -71
  1198. data/vendor/extensions/markdown_filter/vendor/bluecloth/tests/05_Markdown.tests.rb +0 -1527
  1199. data/vendor/extensions/markdown_filter/vendor/bluecloth/tests/10_Bug.tests.rb +0 -57
  1200. data/vendor/extensions/markdown_filter/vendor/bluecloth/tests/15_Contrib.tests.rb +0 -132
  1201. data/vendor/extensions/markdown_filter/vendor/bluecloth/tests/bctestcase.rb +0 -274
  1202. data/vendor/extensions/markdown_filter/vendor/bluecloth/tests/data/antsugar.txt +0 -34
  1203. data/vendor/extensions/markdown_filter/vendor/bluecloth/tests/data/ml-announce.txt +0 -17
  1204. data/vendor/extensions/markdown_filter/vendor/bluecloth/tests/data/re-overflow.txt +0 -67
  1205. data/vendor/extensions/markdown_filter/vendor/bluecloth/tests/data/re-overflow2.txt +0 -281
  1206. data/vendor/extensions/markdown_filter/vendor/bluecloth/utils.rb +0 -553
  1207. data/vendor/radius/ROADMAP +0 -12
  1208. data/vendor/rails/activerecord/test/fixtures/fixture_database.sqlite +0 -0
  1209. data/vendor/rails/activerecord/test/fixtures/fixture_database.sqlite3 +0 -0
  1210. data/vendor/rails/activerecord/test/fixtures/fixture_database_2.sqlite +0 -0
  1211. data/vendor/rails/activerecord/test/fixtures/fixture_database_2.sqlite3 +0 -0
  1212. data/vendor/rails/activeresource/test/debug.log +0 -7974
@@ -1,466 +1,515 @@
1
+ require 'strscan'
2
+ require 'digest/sha1'
1
3
  require 'sass/tree/node'
2
- require 'sass/tree/value_node'
3
4
  require 'sass/tree/rule_node'
4
5
  require 'sass/tree/comment_node'
5
- require 'sass/tree/attr_node'
6
+ require 'sass/tree/prop_node'
6
7
  require 'sass/tree/directive_node'
7
- require 'sass/constant'
8
+ require 'sass/tree/variable_node'
9
+ require 'sass/tree/mixin_def_node'
10
+ require 'sass/tree/mixin_node'
11
+ require 'sass/tree/if_node'
12
+ require 'sass/tree/while_node'
13
+ require 'sass/tree/for_node'
14
+ require 'sass/tree/debug_node'
15
+ require 'sass/tree/import_node'
16
+ require 'sass/environment'
17
+ require 'sass/script'
8
18
  require 'sass/error'
19
+ require 'sass/files'
20
+ require 'haml/shared'
9
21
 
10
22
  module Sass
11
- # This is the class where all the parsing and processing of the Sass
12
- # template is done. It can be directly used by the user by creating a
13
- # new instance and calling <tt>render</tt> to render the template. For example:
23
+ # A Sass mixin.
14
24
  #
15
- # template = File.load('stylesheets/sassy.sass')
16
- # sass_engine = Sass::Engine.new(template)
17
- # output = sass_engine.render
18
- # puts output
25
+ # `name`: `String`
26
+ # : The name of the mixin.
27
+ #
28
+ # `args`: `Array<(String, Script::Node)>`
29
+ # : The arguments for the mixin.
30
+ # Each element is a tuple containing the name of the argument
31
+ # and the parse tree for the default value of the argument.
32
+ #
33
+ # `environment`: {Sass::Environment}
34
+ # : The environment in which the mixin was defined.
35
+ # This is captured so that the mixin can have access
36
+ # to local variables defined in its scope.
37
+ #
38
+ # `tree`: {Sass::Tree::Node}
39
+ # : The parse tree for the mixin.
40
+ Mixin = Struct.new(:name, :args, :environment, :tree)
41
+
42
+ # This class handles the parsing and compilation of the Sass template.
43
+ # Example usage:
44
+ #
45
+ # template = File.load('stylesheets/sassy.sass')
46
+ # sass_engine = Sass::Engine.new(template)
47
+ # output = sass_engine.render
48
+ # puts output
19
49
  class Engine
20
- # The character that begins a CSS attribute.
21
- ATTRIBUTE_CHAR = ?:
50
+ include Haml::Util
51
+
52
+ # A line of Sass code.
53
+ #
54
+ # `text`: `String`
55
+ # : The text in the line, without any whitespace at the beginning or end.
56
+ #
57
+ # `tabs`: `Fixnum`
58
+ # : The level of indentation of the line.
59
+ #
60
+ # `index`: `Fixnum`
61
+ # : The line number in the original document.
62
+ #
63
+ # `offset`: `Fixnum`
64
+ # : The number of bytes in on the line that the text begins.
65
+ # This ends up being the number of bytes of leading whitespace.
66
+ #
67
+ # `filename`: `String`
68
+ # : The name of the file in which this line appeared.
69
+ #
70
+ # `children`: `Array<Line>`
71
+ # : The lines nested below this one.
72
+ class Line < Struct.new(:text, :tabs, :index, :offset, :filename, :children)
73
+ def comment?
74
+ text[0] == COMMENT_CHAR && (text[1] == SASS_COMMENT_CHAR || text[1] == CSS_COMMENT_CHAR)
75
+ end
76
+ end
77
+
78
+ # The character that begins a CSS property.
79
+ # @private
80
+ PROPERTY_CHAR = ?:
22
81
 
23
82
  # The character that designates that
24
- # an attribute should be assigned to the result of constant arithmetic.
83
+ # a property should be assigned to a SassScript expression.
84
+ # @private
25
85
  SCRIPT_CHAR = ?=
26
86
 
27
87
  # The character that designates the beginning of a comment,
28
88
  # either Sass or CSS.
89
+ # @private
29
90
  COMMENT_CHAR = ?/
30
91
 
31
92
  # The character that follows the general COMMENT_CHAR and designates a Sass comment,
32
93
  # which is not output as a CSS comment.
94
+ # @private
33
95
  SASS_COMMENT_CHAR = ?/
34
96
 
35
97
  # The character that follows the general COMMENT_CHAR and designates a CSS comment,
36
98
  # which is embedded in the CSS document.
99
+ # @private
37
100
  CSS_COMMENT_CHAR = ?*
38
101
 
39
102
  # The character used to denote a compiler directive.
103
+ # @private
40
104
  DIRECTIVE_CHAR = ?@
41
105
 
42
106
  # Designates a non-parsed rule.
107
+ # @private
43
108
  ESCAPE_CHAR = ?\\
44
109
 
45
110
  # Designates block as mixin definition rather than CSS rules to output
111
+ # @private
46
112
  MIXIN_DEFINITION_CHAR = ?=
47
113
 
48
114
  # Includes named mixin declared using MIXIN_DEFINITION_CHAR
115
+ # @private
49
116
  MIXIN_INCLUDE_CHAR = ?+
50
117
 
51
- # The regex that matches and extracts data from
52
- # attributes of the form <tt>:name attr</tt>.
53
- ATTRIBUTE = /^:([^\s=:]+)\s*(=?)(?:\s+|$)(.*)/
54
-
55
- # The regex that matches attributes of the form <tt>name: attr</tt>.
56
- ATTRIBUTE_ALTERNATE_MATCHER = /^[^\s:]+\s*[=:](\s|$)/
118
+ # The regex that matches properties of the form `name: prop`.
119
+ # @private
120
+ PROPERTY_NEW_MATCHER = /^[^\s:"\[]+\s*[=:](\s|$)/
57
121
 
58
122
  # The regex that matches and extracts data from
59
- # attributes of the form <tt>name: attr</tt>.
60
- ATTRIBUTE_ALTERNATE = /^([^\s=:]+)(\s*=|:)(?:\s+|$)(.*)/
123
+ # properties of the form `name: prop`.
124
+ # @private
125
+ PROPERTY_NEW = /^([^\s=:"]+)(\s*=|:)(?:\s+|$)(.*)/
61
126
 
62
- # Creates a new instace of Sass::Engine that will compile the given
63
- # template string when <tt>render</tt> is called.
64
- # See README.rdoc for available options.
65
- #
66
- #--
67
- #
68
- # TODO: Add current options to REFRENCE. Remember :filename!
69
- #
70
- # When adding options, remember to add information about them
71
- # to README.rdoc!
72
- #++
73
- #
127
+ # The regex that matches and extracts data from
128
+ # properties of the form `:name prop`.
129
+ # @private
130
+ PROPERTY_OLD = /^:([^\s=:"]+)\s*(=?)(?:\s+|$)(.*)/
131
+
132
+ # The default options for Sass::Engine.
133
+ DEFAULT_OPTIONS = {
134
+ :style => :nested,
135
+ :load_paths => ['.'],
136
+ :cache => true,
137
+ :cache_location => './.sass-cache',
138
+ }.freeze
139
+
140
+ # @param template [String] The Sass template.
141
+ # @param options [{Symbol => Object}] An options hash;
142
+ # see {file:SASS_REFERENCE.md#sass_options the Sass options documentation}
74
143
  def initialize(template, options={})
75
- @options = {
76
- :style => :nested,
77
- :load_paths => ['.']
78
- }.merge! options
79
- @template = template.split(/\r\n|\r|\n/)
80
- @lines = []
81
- @constants = {"important" => "!important"}
82
- @mixins = {}
144
+ @options = DEFAULT_OPTIONS.merge(options.reject {|k, v| v.nil?})
145
+ @template = template
146
+
147
+ # Support both, because the docs said one and the other actually worked
148
+ # for quite a long time.
149
+ @options[:line_comments] ||= @options[:line_numbers]
150
+
151
+ # Backwards compatibility
152
+ @options[:property_syntax] ||= @options[:attribute_syntax]
153
+ case @options[:property_syntax]
154
+ when :alternate; @options[:property_syntax] = :new
155
+ when :normal; @options[:property_syntax] = :old
156
+ end
83
157
  end
84
158
 
85
- # Processes the template and returns the result as a string.
159
+ # Render the template to CSS.
160
+ #
161
+ # @return [String] The CSS
162
+ # @raise [Sass::SyntaxError] if there's an error in the document
86
163
  def render
87
- begin
88
- render_to_tree.to_s
89
- rescue SyntaxError => err
90
- unless err.sass_filename
91
- err.add_backtrace_entry(@options[:filename])
92
- end
93
- raise err
94
- end
164
+ to_tree.render
95
165
  end
96
166
 
97
167
  alias_method :to_css, :render
98
168
 
99
- protected
100
-
101
- def constants
102
- @constants
103
- end
104
-
105
- def mixins
106
- @mixins
107
- end
108
-
109
- def render_to_tree
110
- split_lines
111
-
112
- root = Tree::Node.new(@options[:style])
113
- index = 0
114
- while @lines[index]
115
- old_index = index
116
- child, index = build_tree(index)
117
-
118
- if child.is_a? Tree::Node
119
- child.line = old_index + 1
120
- root << child
121
- elsif child.is_a? Array
122
- child.each do |c|
123
- root << c
124
- end
125
- end
126
- end
127
- @lines.clear
128
-
169
+ # Parses the document into its parse tree.
170
+ #
171
+ # @return [Sass::Tree::Node] The root of the parse tree.
172
+ # @raise [Sass::SyntaxError] if there's an error in the document
173
+ def to_tree
174
+ root = Tree::Node.new
175
+ append_children(root, tree(tabulate(@template)).first, true)
176
+ root.options = @options
129
177
  root
178
+ rescue SyntaxError => e; e.add_metadata(@options[:filename], @line)
130
179
  end
131
180
 
132
181
  private
133
182
 
134
- # Readies each line in the template for parsing,
135
- # and computes the tabulation of the line.
136
- def split_lines
137
- @line = 0
138
- old_tabs = nil
139
- @template.each_with_index do |line, index|
140
- @line += 1
141
-
142
- tabs = count_tabs(line)
143
-
144
- if line[0] == COMMENT_CHAR && line[1] == SASS_COMMENT_CHAR && tabs == 0
145
- tabs = old_tabs
183
+ def tabulate(string)
184
+ tab_str = nil
185
+ comment_tab_str = nil
186
+ first = true
187
+ lines = []
188
+ string.gsub(/\r|\n|\r\n|\r\n/, "\n").scan(/^.*?$/).each_with_index do |line, index|
189
+ index += (@options[:line] || 1)
190
+ if line.strip.empty?
191
+ lines.last.text << "\n" if lines.last && lines.last.comment?
192
+ next
146
193
  end
147
194
 
148
- if tabs # if line isn't blank
149
- raise SyntaxError.new("Indenting at the beginning of the document is illegal.", @line) if old_tabs.nil? && tabs > 0
195
+ line_tab_str = line[/^\s*/]
196
+ unless line_tab_str.empty?
197
+ if tab_str.nil?
198
+ comment_tab_str ||= line_tab_str
199
+ next if try_comment(line, lines.last, "", comment_tab_str, index)
200
+ comment_tab_str = nil
201
+ end
202
+
203
+ tab_str ||= line_tab_str
150
204
 
151
- if old_tabs && tabs - old_tabs > 1
152
- raise SyntaxError.new("#{tabs * 2} spaces were used for indentation. Sass must be indented using two spaces.", @line)
205
+ raise SyntaxError.new("Indenting at the beginning of the document is illegal.", index) if first
206
+ if tab_str.include?(?\s) && tab_str.include?(?\t)
207
+ raise SyntaxError.new("Indentation can't use both tabs and spaces.", index)
153
208
  end
154
- @lines << [line.strip, tabs]
209
+ end
210
+ first &&= !tab_str.nil?
211
+ if tab_str.nil?
212
+ lines << Line.new(line.strip, 0, index, 0, @options[:filename], [])
213
+ next
214
+ end
155
215
 
156
- old_tabs = tabs
216
+ comment_tab_str ||= line_tab_str
217
+ if try_comment(line, lines.last, tab_str * (lines.last.tabs + 1), comment_tab_str, index)
218
+ next
157
219
  else
158
- @lines << ['//', old_tabs || 0]
220
+ comment_tab_str = nil
159
221
  end
160
- end
161
222
 
162
- @line = nil
223
+ line_tabs = line_tab_str.scan(tab_str).size
224
+ raise SyntaxError.new(<<END.strip.gsub("\n", ' '), index) if tab_str * line_tabs != line_tab_str
225
+ Inconsistent indentation: #{Haml::Shared.human_indentation line_tab_str, true} used for indentation,
226
+ but the rest of the document was indented using #{Haml::Shared.human_indentation tab_str}.
227
+ END
228
+ lines << Line.new(line.strip, line_tabs, index, tab_str.size, @options[:filename], [])
229
+ end
230
+ lines
163
231
  end
164
232
 
165
- # Counts the tabulation of a line.
166
- def count_tabs(line)
167
- return nil if line.strip.empty?
168
- return nil unless spaces = line.index(/[^ ]/)
169
-
170
- if spaces % 2 == 1
171
- raise SyntaxError.new(<<END.strip, @line)
172
- #{spaces} space#{spaces == 1 ? ' was' : 's were'} used for indentation. Sass must be indented using two spaces.
173
- END
174
- elsif line[spaces] == ?\t
175
- raise SyntaxError.new(<<END.strip, @line)
176
- A tab character was used for indentation. Sass must be indented using two spaces.
177
- Are you sure you have soft tabs enabled in your editor?
178
- END
233
+ def try_comment(line, last, tab_str, comment_tab_str, index)
234
+ return unless last && last.comment?
235
+ return unless line =~ /^#{tab_str}/
236
+ unless line =~ /^(?:#{comment_tab_str})(.*)$/
237
+ raise SyntaxError.new(<<MSG.strip.gsub("\n", " "), index)
238
+ Inconsistent indentation:
239
+ previous line was indented by #{Haml::Shared.human_indentation comment_tab_str},
240
+ but this line was indented by #{Haml::Shared.human_indentation line[/^\s*/]}.
241
+ MSG
179
242
  end
180
- spaces / 2
243
+
244
+ last.text << "\n" << $1
245
+ true
181
246
  end
182
247
 
183
- def build_tree(index)
184
- line, tabs = @lines[index]
185
- index += 1
186
- @line = index
187
- node = parse_line(line)
188
-
189
- has_children = has_children?(index, tabs)
190
-
191
- # Node is a symbol if it's non-outputting, like a constant assignment
192
- unless node.is_a? Tree::Node
193
- if has_children
194
- if node == :constant
195
- raise SyntaxError.new("Illegal nesting: Nothing may be nested beneath constants.", @line + 1)
196
- elsif node.is_a? Array
197
- # arrays can either be full of import statements
198
- # or attributes from mixin includes
199
- # in either case they shouldn't have children.
200
- # Need to peek into the array in order to give meaningful errors
201
- directive_type = (node.first.is_a?(Tree::DirectiveNode) ? "import" : "mixin")
202
- raise SyntaxError.new("Illegal nesting: Nothing may be nested beneath #{directive_type} directives.", @line + 1)
248
+ def tree(arr, i = 0)
249
+ return [], i if arr[i].nil?
250
+
251
+ base = arr[i].tabs
252
+ nodes = []
253
+ while (line = arr[i]) && line.tabs >= base
254
+ if line.tabs > base
255
+ if line.tabs > base + 1
256
+ raise SyntaxError.new("The line was indented #{line.tabs - base} levels deeper than the previous line.", line.index)
203
257
  end
204
- end
205
258
 
206
- index = @line if node == :mixin
207
- return node, index
259
+ nodes.last.children, i = tree(arr, i)
260
+ else
261
+ nodes << line
262
+ i += 1
263
+ end
208
264
  end
265
+ return nodes, i
266
+ end
209
267
 
210
- node.line = @line
268
+ def build_tree(parent, line, root = false)
269
+ @line = line.index
270
+ node_or_nodes = parse_line(parent, line, root)
211
271
 
212
- if node.is_a? Tree::CommentNode
213
- while has_children
214
- line, index = raw_next_line(index)
215
- node << line
272
+ Array(node_or_nodes).each do |node|
273
+ # Node is a symbol if it's non-outputting, like a variable assignment
274
+ next unless node.is_a? Tree::Node
216
275
 
217
- has_children = has_children?(index, tabs)
218
- end
276
+ node.line = line.index
277
+ node.filename = line.filename
219
278
 
220
- return node, index
279
+ if node.is_a?(Tree::CommentNode)
280
+ node.lines = line.children
281
+ else
282
+ append_children(node, line.children, false)
283
+ end
221
284
  end
222
285
 
223
- # Resolve multiline rules
224
- if node.is_a?(Tree::RuleNode)
225
- if node.continued?
226
- child, index = build_tree(index) if @lines[old_index = index]
227
- if @lines[old_index].nil? || has_children?(old_index, tabs) || !child.is_a?(Tree::RuleNode)
228
- raise SyntaxError.new("Rules can't end in commas.", @line)
286
+ node_or_nodes
287
+ end
288
+
289
+ def append_children(parent, children, root)
290
+ continued_rule = nil
291
+ children.each do |line|
292
+ child = build_tree(parent, line, root)
293
+
294
+ if child.is_a?(Tree::RuleNode) && child.continued?
295
+ raise SyntaxError.new("Rules can't end in commas.", child.line) unless child.children.empty?
296
+ if continued_rule
297
+ continued_rule.add_rules child
298
+ else
299
+ continued_rule = child
229
300
  end
301
+ next
302
+ end
230
303
 
231
- node.add_rules child
304
+ if continued_rule
305
+ raise SyntaxError.new("Rules can't end in commas.", continued_rule.line) unless child.is_a?(Tree::RuleNode)
306
+ continued_rule.add_rules child
307
+ continued_rule.children = child.children
308
+ continued_rule, child = nil, continued_rule
232
309
  end
233
- node.children = child.children if child
310
+
311
+ check_for_no_children(child)
312
+ validate_and_append_child(parent, child, line, root)
234
313
  end
235
314
 
236
- while has_children
237
- child, index = build_tree(index)
315
+ raise SyntaxError.new("Rules can't end in commas.", continued_rule.line) if continued_rule
238
316
 
239
- validate_and_append_child(node, child)
317
+ parent
318
+ end
240
319
 
241
- has_children = has_children?(index, tabs)
320
+ def validate_and_append_child(parent, child, line, root)
321
+ unless root
322
+ case child
323
+ when Tree::MixinDefNode
324
+ raise SyntaxError.new("Mixins may only be defined at the root of a document.", line.index)
325
+ when Tree::ImportNode
326
+ raise SyntaxError.new("Import directives may only be used at the root of a document.", line.index)
327
+ end
242
328
  end
243
329
 
244
- return node, index
245
- end
246
-
247
- def validate_and_append_child(parent, child)
248
330
  case child
249
- when :constant
250
- raise SyntaxError.new("Constants may only be declared at the root of a document.", @line)
251
- when :mixin
252
- raise SyntaxError.new("Mixins may only be defined at the root of a document.", @line)
253
331
  when Array
254
- child.each do |c|
255
- if c.is_a?(Tree::DirectiveNode)
256
- raise SyntaxError.new("Import directives may only be used at the root of a document.", @line)
257
- end
258
- parent << c
259
- end
332
+ child.each {|c| validate_and_append_child(parent, c, line, root)}
260
333
  when Tree::Node
261
334
  parent << child
262
335
  end
263
336
  end
264
337
 
265
- def has_children?(index, tabs)
266
- next_line = ['//', 0]
267
- while !next_line.nil? && next_line[0] == '//' && next_line[1] = 0
268
- next_line = @lines[index]
269
- index += 1
270
- end
271
- next_line && next_line[1] > tabs
272
- end
338
+ def check_for_no_children(node)
339
+ return unless node.is_a?(Tree::RuleNode) && node.children.empty?
340
+ warning = (node.rules.size == 1) ? <<SHORT : <<LONG
341
+ WARNING on line #{node.line}#{" of #{node.filename}" if node.filename}:
342
+ Selector #{node.rules.first.inspect} doesn't have any properties and will not be rendered.
343
+ SHORT
344
+
345
+ WARNING on line #{node.line}#{" of #{node.filename}" if node.filename}:
346
+ Selector
347
+ #{node.rules.join("\n ")}
348
+ doesn't have any properties and will not be rendered.
349
+ LONG
273
350
 
274
- def raw_next_line(index)
275
- [@lines[index][0], index + 1]
351
+ warn(warning.strip)
276
352
  end
277
353
 
278
- def parse_line(line)
279
- case line[0]
280
- when ATTRIBUTE_CHAR
281
- if line[1] != ATTRIBUTE_CHAR
282
- parse_attribute(line, ATTRIBUTE)
283
- else
354
+ def parse_line(parent, line, root)
355
+ case line.text[0]
356
+ when PROPERTY_CHAR
357
+ if line.text[1] == PROPERTY_CHAR ||
358
+ (@options[:property_syntax] == :new &&
359
+ line.text =~ PROPERTY_OLD && $3.empty?)
284
360
  # Support CSS3-style pseudo-elements,
285
- # which begin with ::
286
- Tree::RuleNode.new(line, @options[:style])
361
+ # which begin with ::,
362
+ # as well as pseudo-classes
363
+ # if we're using the new property syntax
364
+ Tree::RuleNode.new(line.text)
365
+ else
366
+ parse_property(line, PROPERTY_OLD)
287
367
  end
288
- when Constant::CONSTANT_CHAR
289
- parse_constant(line)
368
+ when Script::VARIABLE_CHAR
369
+ parse_variable(line)
290
370
  when COMMENT_CHAR
291
- parse_comment(line)
371
+ parse_comment(line.text)
292
372
  when DIRECTIVE_CHAR
293
- parse_directive(line)
373
+ parse_directive(parent, line, root)
294
374
  when ESCAPE_CHAR
295
- Tree::RuleNode.new(line[1..-1], @options[:style])
375
+ Tree::RuleNode.new(line.text[1..-1])
296
376
  when MIXIN_DEFINITION_CHAR
297
377
  parse_mixin_definition(line)
298
378
  when MIXIN_INCLUDE_CHAR
299
- if line[1].nil? || line[1] == ?\s
300
- Tree::RuleNode.new(line, @options[:style])
379
+ if line.text[1].nil? || line.text[1] == ?\s
380
+ Tree::RuleNode.new(line.text)
301
381
  else
302
- parse_mixin_include(line)
382
+ parse_mixin_include(line, root)
303
383
  end
304
384
  else
305
- if line =~ ATTRIBUTE_ALTERNATE_MATCHER
306
- parse_attribute(line, ATTRIBUTE_ALTERNATE)
385
+ if line.text =~ PROPERTY_NEW_MATCHER
386
+ parse_property(line, PROPERTY_NEW)
307
387
  else
308
- Tree::RuleNode.new(line, @options[:style])
388
+ Tree::RuleNode.new(line.text)
309
389
  end
310
390
  end
311
391
  end
312
392
 
313
- def parse_attribute(line, attribute_regx)
314
- if @options[:attribute_syntax] == :normal &&
315
- attribute_regx == ATTRIBUTE_ALTERNATE
316
- raise SyntaxError.new("Illegal attribute syntax: can't use alternate syntax when :attribute_syntax => :normal is set.")
317
- elsif @options[:attribute_syntax] == :alternate &&
318
- attribute_regx == ATTRIBUTE
319
- raise SyntaxError.new("Illegal attribute syntax: can't use normal syntax when :attribute_syntax => :alternate is set.")
320
- end
321
-
322
- name, eq, value = line.scan(attribute_regx)[0]
393
+ def parse_property(line, property_regx)
394
+ name, eq, value = line.text.scan(property_regx)[0]
323
395
 
324
396
  if name.nil? || value.nil?
325
- raise SyntaxError.new("Invalid attribute: \"#{line}\".", @line)
397
+ raise SyntaxError.new("Invalid property: \"#{line.text}\".", @line)
326
398
  end
327
-
328
- if eq.strip[0] == SCRIPT_CHAR
329
- value = Sass::Constant.parse(value, @constants, @line).to_s
399
+ expr = if (eq.strip[0] == SCRIPT_CHAR)
400
+ parse_script(value, :offset => line.offset + line.text.index(value))
401
+ else
402
+ value
330
403
  end
331
-
332
- Tree::AttrNode.new(name, value, @options[:style])
404
+ Tree::PropNode.new(name, expr, property_regx == PROPERTY_OLD ? :old : :new)
333
405
  end
334
406
 
335
- def parse_constant(line)
336
- name, op, value = line.scan(Sass::Constant::MATCH)[0]
337
- unless name && value
338
- raise SyntaxError.new("Invalid constant: \"#{line}\".", @line)
339
- end
407
+ def parse_variable(line)
408
+ name, op, value = line.text.scan(Script::MATCH)[0]
409
+ raise SyntaxError.new("Illegal nesting: Nothing may be nested beneath variable declarations.", @line + 1) unless line.children.empty?
410
+ raise SyntaxError.new("Invalid variable: \"#{line.text}\".", @line) unless name && value
340
411
 
341
- constant = Sass::Constant.parse(value, @constants, @line)
342
- if op == '||='
343
- @constants[name] ||= constant
344
- else
345
- @constants[name] = constant
346
- end
347
-
348
- :constant
412
+ Tree::VariableNode.new(name, parse_script(value, :offset => line.offset + line.text.index(value)), op == '||=')
349
413
  end
350
414
 
351
415
  def parse_comment(line)
352
- if line[1] == SASS_COMMENT_CHAR
353
- :comment
354
- elsif line[1] == CSS_COMMENT_CHAR
355
- Tree::CommentNode.new(line, @options[:style])
416
+ if line[1] == CSS_COMMENT_CHAR || line[1] == SASS_COMMENT_CHAR
417
+ Tree::CommentNode.new(line, line[1] == SASS_COMMENT_CHAR)
356
418
  else
357
- Tree::RuleNode.new(line, @options[:style])
419
+ Tree::RuleNode.new(line)
358
420
  end
359
421
  end
360
422
 
361
- def parse_directive(line)
362
- directive, value = line[1..-1].split(/\s+/, 2)
423
+ def parse_directive(parent, line, root)
424
+ directive, whitespace, value = line.text[1..-1].split(/(\s+)/, 2)
425
+ offset = directive.size + whitespace.size + 1 if whitespace
363
426
 
364
427
  # If value begins with url( or ",
365
428
  # it's a CSS @import rule and we don't want to touch it.
366
429
  if directive == "import" && value !~ /^(url\(|")/
367
- import(value)
430
+ raise SyntaxError.new("Illegal nesting: Nothing may be nested beneath import directives.", @line + 1) unless line.children.empty?
431
+ value.split(/,\s*/).map {|f| Tree::ImportNode.new(f)}
432
+ elsif directive == "for"
433
+ parse_for(line, root, value)
434
+ elsif directive == "else"
435
+ parse_else(parent, line, value)
436
+ elsif directive == "while"
437
+ raise SyntaxError.new("Invalid while directive '@while': expected expression.") unless value
438
+ Tree::WhileNode.new(parse_script(value, :offset => offset))
439
+ elsif directive == "if"
440
+ raise SyntaxError.new("Invalid if directive '@if': expected expression.") unless value
441
+ Tree::IfNode.new(parse_script(value, :offset => offset))
442
+ elsif directive == "debug"
443
+ raise SyntaxError.new("Invalid debug directive '@debug': expected expression.") unless value
444
+ raise SyntaxError.new("Illegal nesting: Nothing may be nested beneath debug directives.", @line + 1) unless line.children.empty?
445
+ offset = line.offset + line.text.index(value).to_i
446
+ Tree::DebugNode.new(parse_script(value, :offset => offset))
368
447
  else
369
- Tree::DirectiveNode.new(line, @options[:style])
448
+ Tree::DirectiveNode.new(line.text)
370
449
  end
371
450
  end
372
451
 
373
- def parse_mixin_definition(line)
374
- mixin_name = line[1..-1].strip
375
- @mixins[mixin_name] = []
376
- index = @line
377
- line, tabs = @lines[index]
378
- while !line.nil? && tabs > 0
379
- child, index = build_tree(index)
380
- validate_and_append_child(@mixins[mixin_name], child)
381
- line, tabs = @lines[index]
382
- end
383
- :mixin
384
- end
452
+ def parse_for(line, root, text)
453
+ var, from_expr, to_name, to_expr = text.scan(/^([^\s]+)\s+from\s+(.+)\s+(to|through)\s+(.+)$/).first
385
454
 
386
- def parse_mixin_include(line)
387
- mixin_name = line[1..-1]
388
- unless @mixins.has_key?(mixin_name)
389
- raise SyntaxError.new("Undefined mixin '#{mixin_name}'.", @line)
390
- end
391
- @mixins[mixin_name]
392
- end
393
-
394
- def import(files)
395
- nodes = []
396
-
397
- files.split(/,\s*/).each do |filename|
398
- engine = nil
399
-
400
- begin
401
- filename = self.class.find_file_to_import(filename, @options[:load_paths])
402
- rescue Exception => e
403
- raise SyntaxError.new(e.message, @line)
455
+ if var.nil? # scan failed, try to figure out why for error message
456
+ if text !~ /^[^\s]+/
457
+ expected = "variable name"
458
+ elsif text !~ /^[^\s]+\s+from\s+.+/
459
+ expected = "'from <expr>'"
460
+ else
461
+ expected = "'to <expr>' or 'through <expr>'"
404
462
  end
463
+ raise SyntaxError.new("Invalid for directive '@for #{text}': expected #{expected}.", @line)
464
+ end
465
+ raise SyntaxError.new("Invalid variable \"#{var}\".", @line) unless var =~ Script::VALIDATE
405
466
 
406
- if filename =~ /\.css$/
407
- nodes << Tree::DirectiveNode.new("@import url(#{filename})", @options[:style])
408
- else
409
- File.open(filename) do |file|
410
- new_options = @options.dup
411
- new_options[:filename] = filename
412
- engine = Sass::Engine.new(file.read, @options)
413
- end
467
+ parsed_from = parse_script(from_expr, :offset => line.offset + line.text.index(from_expr))
468
+ parsed_to = parse_script(to_expr, :offset => line.offset + line.text.index(to_expr))
469
+ Tree::ForNode.new(var[1..-1], parsed_from, parsed_to, to_name == 'to')
470
+ end
414
471
 
415
- engine.constants.merge! @constants
416
- engine.mixins.merge! @mixins
472
+ def parse_else(parent, line, text)
473
+ previous = parent.last
474
+ raise SyntaxError.new("@else must come after @if.") unless previous.is_a?(Tree::IfNode)
417
475
 
418
- begin
419
- root = engine.render_to_tree
420
- rescue Sass::SyntaxError => err
421
- err.add_backtrace_entry(filename)
422
- raise err
423
- end
424
- root.children.each do |child|
425
- child.filename = filename
426
- nodes << child
427
- end
428
- @constants = engine.constants
429
- @mixins = engine.mixins
476
+ if text
477
+ if text !~ /^if\s+(.+)/
478
+ raise SyntaxError.new("Invalid else directive '@else #{text}': expected 'if <expr>'.", @line)
430
479
  end
480
+ expr = parse_script($1, :offset => line.offset + line.text.index($1))
431
481
  end
432
482
 
433
- nodes
483
+ node = Tree::IfNode.new(expr)
484
+ append_children(node, line.children, false)
485
+ previous.add_else node
486
+ nil
434
487
  end
435
488
 
436
- def self.find_file_to_import(filename, load_paths)
437
- was_sass = false
438
- original_filename = filename
489
+ def parse_mixin_definition(line)
490
+ name, arg_string = line.text.scan(/^=\s*([^(]+)(.*)$/).first
491
+ raise SyntaxError.new("Invalid mixin \"#{line.text[1..-1]}\".", @line) if name.nil?
439
492
 
440
- if filename[-5..-1] == ".sass"
441
- filename = filename[0...-5]
442
- was_sass = true
443
- elsif filename[-4..-1] == ".css"
444
- return filename
445
- end
493
+ offset = line.offset + line.text.size - arg_string.size
494
+ args = Script::Parser.new(arg_string.strip, @line, offset).parse_mixin_definition_arglist
495
+ default_arg_found = false
496
+ Tree::MixinDefNode.new(name, args)
497
+ end
446
498
 
447
- new_filename = find_full_path("#{filename}.sass", load_paths)
499
+ def parse_mixin_include(line, root)
500
+ name, arg_string = line.text.scan(/^\+\s*([^(]+)(.*)$/).first
501
+ raise SyntaxError.new("Invalid mixin include \"#{line.text}\".", @line) if name.nil?
448
502
 
449
- return new_filename if new_filename
450
- return filename + '.css' unless was_sass
451
- raise SyntaxError.new("File to import not found or unreadable: #{original_filename}.", @line)
503
+ offset = line.offset + line.text.size - arg_string.size
504
+ args = Script::Parser.new(arg_string.strip, @line, offset).parse_mixin_include_arglist
505
+ raise SyntaxError.new("Illegal nesting: Nothing may be nested beneath mixin directives.", @line + 1) unless line.children.empty?
506
+ Tree::MixinNode.new(name, args)
452
507
  end
453
508
 
454
- def self.find_full_path(filename, load_paths)
455
- load_paths.each do |path|
456
- ["_#{filename}", filename].each do |name|
457
- full_path = File.join(path, name)
458
- if File.readable?(full_path)
459
- return full_path
460
- end
461
- end
462
- end
463
- nil
509
+ def parse_script(script, options = {})
510
+ line = options[:line] || @line
511
+ offset = options[:offset] || 0
512
+ Script.parse(script, line, offset, @options[:filename])
464
513
  end
465
514
  end
466
515
  end