radiant 0.9.1 → 1.0.0.rc1

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 (1514) hide show
  1. data/.gitignore +19 -0
  2. data/CHANGELOG +26 -0
  3. data/CONTRIBUTORS +18 -0
  4. data/Gemfile +3 -0
  5. data/app/controllers/admin/configuration_controller.rb +50 -0
  6. data/app/controllers/admin/page_fields_controller.rb +9 -0
  7. data/app/controllers/admin/pages_controller.rb +39 -8
  8. data/app/controllers/admin/preferences_controller.rb +1 -1
  9. data/app/controllers/admin/resource_controller.rb +10 -2
  10. data/app/controllers/admin/welcome_controller.rb +6 -1
  11. data/app/controllers/application_controller.rb +0 -1
  12. data/app/controllers/site_controller.rb +1 -1
  13. data/app/helpers/admin/configuration_helper.rb +80 -0
  14. data/app/helpers/admin/node_helper.rb +47 -1
  15. data/app/helpers/admin/pages_helper.rb +5 -7
  16. data/app/helpers/admin/preferences_helper.rb +1 -0
  17. data/app/helpers/admin/references_helper.rb +2 -3
  18. data/app/helpers/application_helper.rb +4 -3
  19. data/app/models/deprecated_tags.rb +77 -0
  20. data/app/models/file_not_found_page.rb +4 -0
  21. data/app/models/page.rb +75 -24
  22. data/app/models/page_field.rb +3 -0
  23. data/app/models/page_part.rb +0 -1
  24. data/app/models/radiant/config.rb +239 -38
  25. data/app/models/snippet.rb +4 -0
  26. data/app/models/standard_tags.rb +202 -156
  27. data/app/models/status.rb +9 -1
  28. data/app/models/text_filter.rb +12 -1
  29. data/app/models/user.rb +1 -2
  30. data/app/models/user_action_observer.rb +9 -3
  31. data/app/views/admin/configuration/edit.html.haml +38 -0
  32. data/app/views/admin/configuration/show.html.haml +58 -0
  33. data/app/views/admin/extensions/index.html.haml +2 -2
  34. data/app/views/admin/layouts/_form.html.haml +2 -2
  35. data/app/views/admin/layouts/index.html.haml +10 -10
  36. data/app/views/admin/layouts/remove.html.haml +1 -1
  37. data/app/views/admin/page_fields/_page_field.html.haml +12 -0
  38. data/app/views/admin/pages/_fields.html.haml +22 -5
  39. data/app/views/admin/pages/_meta_row.html.haml +5 -1
  40. data/app/views/admin/pages/_node.html.haml +10 -9
  41. data/app/views/admin/pages/_popups.html.haml +17 -4
  42. data/app/views/admin/pages/edit.html.haml +1 -1
  43. data/app/views/admin/pages/index.html.haml +5 -5
  44. data/app/views/admin/pages/remove.html.haml +1 -1
  45. data/app/views/admin/preferences/edit.html.haml +1 -1
  46. data/app/views/admin/references/filters.haml +1 -1
  47. data/app/views/admin/references/tags.haml +1 -1
  48. data/app/views/admin/snippets/_form.html.haml +2 -2
  49. data/app/views/admin/snippets/index.html.haml +11 -11
  50. data/app/views/admin/snippets/remove.html.haml +1 -1
  51. data/app/views/admin/users/_avatar.html.haml +3 -1
  52. data/app/views/admin/users/_form.html.haml +3 -3
  53. data/app/views/admin/users/_password_fields.html.haml +2 -2
  54. data/app/views/admin/users/index.html.haml +11 -11
  55. data/app/views/admin/users/remove.html.haml +1 -1
  56. data/app/views/admin/welcome/login.html.haml +1 -1
  57. data/app/views/layouts/application.html.haml +9 -14
  58. data/config/boot.rb +28 -11
  59. data/config/compass.config +18 -0
  60. data/config/environment.rb +10 -5
  61. data/config/environments/cucumber.rb +5 -5
  62. data/config/environments/test.rb +5 -5
  63. data/config/initializers/compass.rb +3 -0
  64. data/config/initializers/radiant_config.rb +17 -0
  65. data/config/locales/en.yml +61 -13
  66. data/config/locales/en_available_tags.yml +131 -39
  67. data/config/routes.rb +4 -6
  68. data/db/migrate/20100805154952_add_page_fields.rb +15 -0
  69. data/db/migrate/20100805155020_convert_page_metas.rb +15 -0
  70. data/db/migrate/20100810151922_add_field_name_index.rb +11 -0
  71. data/db/schema.rb +32 -7
  72. data/features/admin/configuration.feature +38 -0
  73. data/features/admin/pages_management.feature +2 -9
  74. data/features/admin/resource_pagination.feature +1 -1
  75. data/features/admin/snippets_management.feature +2 -1
  76. data/features/admin/user_permissions.feature +3 -4
  77. data/features/admin/user_preferences.feature +1 -1
  78. data/features/step_definitions/admin/admin_steps.rb +1 -1
  79. data/features/step_definitions/admin/content_negotiation_steps.rb +4 -0
  80. data/features/step_definitions/admin/pages_management_steps.rb +5 -1
  81. data/features/step_definitions/admin/pagination_steps.rb +2 -4
  82. data/features/step_definitions/page_serving_steps.rb +16 -0
  83. data/features/support/dataset.rb +7 -3
  84. data/features/support/datasets_loader.rb +3 -0
  85. data/features/support/env.rb +2 -0
  86. data/features/support/matchers.rb +3 -0
  87. data/features/support/paths.rb +2 -0
  88. data/lib/generators/extension/extension_generator.rb +6 -0
  89. data/lib/generators/extension/templates/README +4 -1
  90. data/lib/generators/extension/templates/RSpecRakefile +1 -28
  91. data/lib/generators/extension/templates/Rakefile +0 -17
  92. data/lib/generators/extension/templates/cucumber_datasets_loader.rb +3 -0
  93. data/lib/generators/extension/templates/cucumber_env.rb +1 -10
  94. data/lib/generators/extension/templates/extension.rb +3 -3
  95. data/lib/generators/extension/templates/gemspec.rb +24 -0
  96. data/lib/generators/extension/templates/lib.rb +2 -0
  97. data/lib/generators/extension/templates/radiant_config.rb +3 -0
  98. data/lib/generators/extension/templates/version.rb +3 -0
  99. data/lib/generators/instance/instance_generator.rb +3 -2
  100. data/lib/generators/instance/templates/instance_boot.rb +28 -10
  101. data/lib/generators/instance/templates/instance_environment.rb +10 -5
  102. data/lib/generators/instance/templates/instance_radiant_config.rb +16 -0
  103. data/lib/generators/language_extension/templates/lang.yml +11 -11
  104. data/lib/plugins/active_record_extensions/lib/active_record_extensions.rb +10 -0
  105. data/lib/plugins/object_extensions/lib/object_extensions.rb +3 -0
  106. data/lib/radiant.rb +4 -4
  107. data/lib/radiant/admin_ui.rb +58 -41
  108. data/lib/radiant/available_locales.rb +8 -8
  109. data/lib/radiant/cache.rb +1 -0
  110. data/lib/radiant/config/definition.rb +142 -0
  111. data/lib/radiant/extension.rb +20 -4
  112. data/lib/radiant/extension/script.rb +15 -15
  113. data/lib/radiant/extension_gem.rb +12 -0
  114. data/lib/radiant/extension_loader.rb +12 -5
  115. data/lib/radiant/extension_locator.rb +25 -0
  116. data/lib/radiant/extension_migrator.rb +3 -2
  117. data/lib/radiant/gem_dependency_fix.rb +21 -0
  118. data/lib/radiant/gem_locator.rb +28 -0
  119. data/lib/radiant/initializer.rb +74 -7
  120. data/lib/radiant/pagination/controller.rb +1 -0
  121. data/lib/radiant/setup.rb +19 -11
  122. data/lib/task_support.rb +14 -8
  123. data/lib/tasks/database.rake +2 -0
  124. data/lib/tasks/framework.rake +32 -15
  125. data/lib/tasks/prototype.rake +8 -11
  126. data/lib/tasks/release.rake +1 -0
  127. data/public/assets/1/2375_1115822414591_1197894784_30347214_1109_n.jpg +0 -0
  128. data/public/assets/1/2375_1115822414591_1197894784_30347214_1109_n_icon.png +0 -0
  129. data/public/assets/1/2375_1115822414591_1197894784_30347214_1109_n_normal.jpg +0 -0
  130. data/public/assets/1/2375_1115822414591_1197894784_30347214_1109_n_thumbnail.png +0 -0
  131. data/public/flash/ZeroClipboard.swf +0 -0
  132. data/public/images/admin/assets/add.png +0 -0
  133. data/public/images/admin/assets/archive_icon.png +0 -0
  134. data/public/images/admin/assets/audio_icon.png +0 -0
  135. data/public/images/admin/assets/audio_thumbnail.png +0 -0
  136. data/public/images/admin/assets/c_icon.png +0 -0
  137. data/public/images/admin/assets/copy.png +0 -0
  138. data/public/images/admin/assets/css_icon.png +0 -0
  139. data/public/images/admin/assets/database_icon.png +0 -0
  140. data/public/images/admin/assets/delete.png +0 -0
  141. data/public/images/admin/assets/document_icon.png +0 -0
  142. data/public/images/admin/assets/document_thumbnail.png +0 -0
  143. data/public/images/admin/assets/flash_icon.png +0 -0
  144. data/public/images/admin/assets/flash_thumbnail.png +0 -0
  145. data/public/images/admin/assets/font_icon.png +0 -0
  146. data/public/images/admin/assets/gzip_icon.png +0 -0
  147. data/public/images/admin/assets/html_icon.png +0 -0
  148. data/public/images/admin/assets/image_icon.png +0 -0
  149. data/public/images/admin/assets/image_thumbnail.png +0 -0
  150. data/public/images/admin/assets/java_icon.png +0 -0
  151. data/public/images/admin/assets/page_edit.png +0 -0
  152. data/public/images/admin/assets/perl_icon.png +0 -0
  153. data/public/images/admin/assets/php_icon.png +0 -0
  154. data/public/images/admin/assets/presentation_icon.png +0 -0
  155. data/public/images/admin/assets/python_icon.png +0 -0
  156. data/public/images/admin/assets/reorder_assets.png +0 -0
  157. data/public/images/admin/assets/ruby_icon.png +0 -0
  158. data/public/images/admin/assets/script_icon.png +0 -0
  159. data/public/images/admin/assets/spreadsheet_icon.png +0 -0
  160. data/public/images/admin/assets/tar_icon.png +0 -0
  161. data/public/images/admin/assets/unknown_icon.png +0 -0
  162. data/public/images/admin/assets/unknown_thumbnail.png +0 -0
  163. data/public/images/admin/assets/video_icon.png +0 -0
  164. data/public/images/admin/assets/video_thumbnail.png +0 -0
  165. data/public/images/admin/assets/xml_icon.png +0 -0
  166. data/public/images/admin/assets/zip_icon.png +0 -0
  167. data/public/images/admin/avatar_64x64.png +0 -0
  168. data/public/images/admin/image.png +0 -0
  169. data/public/images/admin/javascript.png +0 -0
  170. data/public/images/admin/navigation_secondary_separator.gif +0 -0
  171. data/public/images/admin/plus_disabled.png +0 -0
  172. data/public/images/admin/search.png +0 -0
  173. data/public/images/admin/status_spinner.gif +0 -0
  174. data/public/images/admin/stylesheet.png +0 -0
  175. data/public/images/admin/upload.png +0 -0
  176. data/public/images/{radiant-badge-color.png → radiant/radiant-badge-color.png} +0 -0
  177. data/public/images/roasters/banner.jpg +0 -0
  178. data/public/images/roasters/closelabel.gif +0 -0
  179. data/public/images/roasters/comment.png +0 -0
  180. data/public/images/roasters/gallery1.jpg +0 -0
  181. data/public/images/roasters/gallery2.jpg +0 -0
  182. data/public/images/roasters/gallery3.jpg +0 -0
  183. data/public/images/roasters/gallery4.jpg +0 -0
  184. data/public/images/roasters/gift.gif +0 -0
  185. data/public/images/roasters/green.gif +0 -0
  186. data/public/images/roasters/nav-background.gif +0 -0
  187. data/public/images/roasters/nav-divider.gif +0 -0
  188. data/public/images/roasters/nextlabel.gif +0 -0
  189. data/public/images/roasters/open.gif +0 -0
  190. data/public/images/roasters/preview-1.jpg +0 -0
  191. data/public/images/roasters/preview.jpg +0 -0
  192. data/public/images/roasters/prevlabel.gif +0 -0
  193. data/public/images/roasters/prize.gif +0 -0
  194. data/public/images/roasters/recycle.gif +0 -0
  195. data/public/images/roasters/rss.gif +0 -0
  196. data/public/images/roasters/thumb-grinder.jpg +0 -0
  197. data/public/images/roasters/thumb-grower.jpg +0 -0
  198. data/public/images/roasters/thumb-roaster.jpg +0 -0
  199. data/public/images/roasters/truck.gif +0 -0
  200. data/public/javascripts/admin/application.js +11 -2
  201. data/public/javascripts/admin/codearea.js +4 -4
  202. data/public/javascripts/admin/cookie.js +1 -1
  203. data/public/javascripts/admin/dateinput.js +5 -5
  204. data/public/javascripts/admin/dropdown.js +216 -0
  205. data/public/javascripts/admin/page_preview.js +41 -0
  206. data/public/javascripts/admin/pagefield.js +54 -0
  207. data/public/javascripts/admin/popup.js +187 -64
  208. data/public/javascripts/admin/sitemap.js +2 -2
  209. data/public/javascripts/admin/status.js +13 -13
  210. data/public/javascripts/admin/tabcontrol.js +9 -7
  211. data/public/javascripts/admin/toggle.js +18 -18
  212. data/public/javascripts/admin/utility.js +5 -4
  213. data/public/loading-iframe.html +11 -0
  214. data/public/stylesheets/admin/base.css +1 -0
  215. data/public/stylesheets/admin/main.css +1 -1213
  216. data/public/stylesheets/admin/overrides.css +0 -1
  217. data/public/stylesheets/sass/admin/_base.sass +17 -0
  218. data/public/stylesheets/sass/admin/main.sass +21 -21
  219. data/public/stylesheets/sass/admin/modules/_boxes.sass +6 -0
  220. data/public/stylesheets/sass/admin/modules/_links.sass +6 -3
  221. data/public/stylesheets/sass/admin/partials/_actions.sass +51 -38
  222. data/public/stylesheets/sass/admin/partials/_avatars.sass +4 -4
  223. data/public/stylesheets/sass/admin/partials/_content.sass +41 -182
  224. data/public/stylesheets/sass/admin/partials/_dateinput.sass +5 -5
  225. data/public/stylesheets/sass/admin/partials/_deprecated.sass +31 -2
  226. data/public/stylesheets/sass/admin/partials/_dropdown.sass +28 -0
  227. data/public/stylesheets/sass/admin/partials/_forms.sass +40 -27
  228. data/public/stylesheets/sass/admin/partials/_header.sass +78 -76
  229. data/public/stylesheets/sass/admin/partials/_index.sass +147 -0
  230. data/public/stylesheets/sass/admin/partials/_popup.sass +116 -20
  231. data/public/stylesheets/sass/admin/partials/_tabcontrol.sass +5 -3
  232. data/public/stylesheets/sass/admin/partials/{_base.sass → _typography.sass} +4 -3
  233. data/public/stylesheets/sass/admin/partials/_validations.sass +16 -18
  234. data/radiant.gemspec +42 -0
  235. data/spec/controllers/admin/page_fields_controller_spec.rb +17 -0
  236. data/spec/controllers/admin/pages_controller_spec.rb +87 -6
  237. data/spec/controllers/admin/preferences_controller_spec.rb +1 -1
  238. data/spec/controllers/site_controller_spec.rb +4 -4
  239. data/spec/datasets/config_dataset.rb +3 -1
  240. data/spec/datasets/home_page_dataset.rb +1 -3
  241. data/spec/datasets/pages_dataset.rb +1 -1
  242. data/spec/datasets/users_dataset.rb +1 -1
  243. data/spec/fixtures/bad_settings.rb +5 -0
  244. data/spec/fixtures/invalid_config.yml +11 -0
  245. data/spec/fixtures/more_settings.rb +8 -0
  246. data/spec/fixtures/radiant_config.yml +2 -2
  247. data/spec/fixtures/settings.rb +5 -0
  248. data/spec/generators/extension_controller_generator_spec.rb +20 -18
  249. data/spec/generators/extension_generator_spec.rb +39 -17
  250. data/spec/generators/extension_generators_spec_helper.rb +10 -12
  251. data/spec/generators/extension_mailer_generator_spec.rb +15 -13
  252. data/spec/generators/extension_migration_generator_spec.rb +6 -5
  253. data/spec/generators/extension_model_generator_spec.rb +16 -14
  254. data/spec/generators/instance_generator_spec.rb +27 -20
  255. data/spec/helpers/admin/node_helper_spec.rb +57 -2
  256. data/spec/helpers/admin/pages_helper_spec.rb +4 -1
  257. data/spec/helpers/admin/references_helper_spec.rb +10 -1
  258. data/spec/helpers/application_helper_spec.rb +7 -2
  259. data/spec/lib/locator_spec.rb +41 -0
  260. data/spec/lib/login_system_spec.rb +6 -0
  261. data/spec/lib/radiant/admin_ui_spec.rb +12 -11
  262. data/spec/lib/radiant/config/definition_spec.rb +160 -0
  263. data/spec/lib/radiant/extension_loader_spec.rb +29 -6
  264. data/spec/lib/radiant/extension_migrator_spec.rb +11 -0
  265. data/spec/lib/radiant/extension_spec.rb +24 -4
  266. data/spec/lib/radiant/initializer_spec.rb +10 -0
  267. data/spec/lib/task_support_spec.rb +6 -0
  268. data/spec/matchers/render_matcher.rb +4 -4
  269. data/spec/models/deprecated_tags_spec.rb +85 -0
  270. data/spec/models/file_not_found_page_spec.rb +15 -11
  271. data/spec/models/page_part_spec.rb +0 -7
  272. data/spec/models/page_spec.rb +230 -174
  273. data/spec/models/radiant/config_spec.rb +38 -3
  274. data/spec/models/snippet_spec.rb +18 -0
  275. data/spec/models/standard_tags_spec.rb +175 -154
  276. data/spec/models/status_spec.rb +11 -0
  277. data/spec/models/text_filter_spec.rb +6 -2
  278. data/spec/models/user_spec.rb +0 -7
  279. data/test/fixtures/extensions/basic/basic_extension.rb +1 -6
  280. data/test/fixtures/extensions/basic/config/routes.rb +3 -0
  281. data/test/fixtures/extensions/unrouted/unrouted_extension.rb +2 -0
  282. data/{log/.keep → test/fixtures/gems/radiant-gem_ext-extension-0.0.0/app/views/dummy.haml} +0 -0
  283. data/vendor/extensions/archive/Rakefile +13 -24
  284. data/vendor/extensions/archive/app/models/archive_day_index_page.rb +4 -0
  285. data/vendor/extensions/archive/app/models/archive_finder.rb +2 -2
  286. data/vendor/extensions/archive/app/models/archive_month_index_page.rb +4 -0
  287. data/vendor/extensions/archive/app/models/archive_page.rb +50 -9
  288. data/vendor/extensions/archive/app/models/archive_year_index_page.rb +4 -0
  289. data/vendor/extensions/archive/archive_extension.rb +13 -12
  290. data/vendor/extensions/archive/config/initializers/radiant_config.rb +3 -0
  291. data/vendor/extensions/archive/config/locales/en.yml +3 -0
  292. data/vendor/extensions/archive/config/routes.rb +5 -0
  293. data/vendor/extensions/archive/cucumber.yml +1 -0
  294. data/vendor/extensions/archive/features/archive_content.feature +51 -0
  295. data/vendor/extensions/archive/features/step_definitions/web_steps.rb +7 -0
  296. data/vendor/extensions/archive/features/support/datasets_loader.rb +3 -0
  297. data/vendor/extensions/archive/features/support/env.rb +7 -0
  298. data/vendor/extensions/archive/features/support/matchers.rb +3 -0
  299. data/vendor/extensions/archive/features/support/paths.rb +14 -0
  300. data/vendor/extensions/archive/lib/archive_index_tags_and_methods.rb +28 -8
  301. data/vendor/extensions/archive/lib/radiant-archive-extension.rb +2 -0
  302. data/vendor/extensions/archive/lib/radiant-archive-extension/version.rb +3 -0
  303. data/vendor/extensions/archive/lib/tasks/archive_extension_tasks.rake +30 -3
  304. data/vendor/extensions/archive/radiant-archive-extension.gemspec +24 -0
  305. data/vendor/extensions/archive/spec/datasets/archive_dataset.rb +10 -6
  306. data/vendor/extensions/archive/spec/models/archive_day_index_page_spec.rb +13 -3
  307. data/vendor/extensions/archive/spec/models/archive_month_index_page_spec.rb +17 -3
  308. data/vendor/extensions/archive/spec/models/archive_page_spec.rb +31 -8
  309. data/vendor/extensions/archive/spec/models/archive_year_index_page_spec.rb +14 -3
  310. data/vendor/extensions/archive/spec/models/page_spec.rb +6 -0
  311. data/vendor/extensions/archive/tmp/cache/entity/d0/580097d24f3e7cfc7bf9706a0a3a3729a9de3e +6 -0
  312. data/vendor/extensions/archive/tmp/cache/meta/0e/da69d02186242cdfda62e46044566f2bc50f3a +0 -0
  313. data/vendor/extensions/assets/HELP_admin.markdown +69 -0
  314. data/vendor/extensions/assets/LICENSE +22 -0
  315. data/vendor/extensions/assets/README.md +230 -0
  316. data/vendor/extensions/assets/Rakefile +111 -0
  317. data/vendor/extensions/assets/VERSION +1 -0
  318. data/vendor/extensions/assets/app/controllers/admin/assets_controller.rb +54 -0
  319. data/vendor/extensions/assets/app/controllers/admin/page_attachments_controller.rb +45 -0
  320. data/vendor/extensions/assets/app/helpers/admin/assets_helper.rb +11 -0
  321. data/vendor/extensions/assets/app/models/asset.rb +161 -0
  322. data/vendor/extensions/assets/app/models/asset_tags.rb +378 -0
  323. data/vendor/extensions/assets/app/models/asset_type.rb +160 -0
  324. data/vendor/extensions/assets/app/models/old_page_attachment.rb +26 -0
  325. data/vendor/extensions/assets/app/models/page_attachment.rb +14 -0
  326. data/vendor/extensions/assets/app/views/admin/assets/_asset.html.haml +12 -0
  327. data/vendor/extensions/assets/app/views/admin/assets/_asset_table.html.haml +30 -0
  328. data/vendor/extensions/assets/app/views/admin/assets/_errors.html.haml +3 -0
  329. data/vendor/extensions/assets/app/views/admin/assets/_form.html.haml +20 -0
  330. data/vendor/extensions/assets/app/views/admin/assets/_page_assets.html.haml +12 -0
  331. data/vendor/extensions/assets/app/views/admin/assets/_search.html.haml +17 -0
  332. data/vendor/extensions/assets/app/views/admin/assets/_search_results.html.haml +17 -0
  333. data/vendor/extensions/assets/app/views/admin/assets/edit.html.haml +41 -0
  334. data/vendor/extensions/assets/app/views/admin/assets/index.html.haml +18 -0
  335. data/vendor/extensions/assets/app/views/admin/assets/new.html.haml +24 -0
  336. data/vendor/extensions/assets/app/views/admin/assets/remove.html.haml +16 -0
  337. data/vendor/extensions/assets/app/views/admin/configuration/_edit.html.haml +8 -0
  338. data/vendor/extensions/assets/app/views/admin/configuration/_show.html.haml +12 -0
  339. data/vendor/extensions/assets/app/views/admin/page_attachments/_attachment.html.haml +22 -0
  340. data/vendor/extensions/assets/app/views/admin/page_attachments/_new_attachment.html.haml +18 -0
  341. data/vendor/extensions/assets/app/views/admin/page_parts/_page_part.html.haml +20 -0
  342. data/vendor/extensions/assets/app/views/admin/pages/_asset_popups.html.haml +42 -0
  343. data/vendor/extensions/assets/app/views/admin/pages/_assets.html.haml +13 -0
  344. data/vendor/extensions/assets/app/views/admin/removed/_assets_bucket.html.haml +8 -0
  345. data/vendor/extensions/assets/app/views/admin/removed/_assets_container.html.haml +58 -0
  346. data/vendor/extensions/assets/app/views/admin/removed/_bucket.html.haml +11 -0
  347. data/vendor/extensions/assets/app/views/admin/removed/_bucket_asset.html.haml +9 -0
  348. data/vendor/extensions/assets/app/views/admin/removed/_show_bucket_link.html.haml +4 -0
  349. data/vendor/extensions/assets/app/views/admin/removed/_upload_to_page.html.haml +12 -0
  350. data/vendor/extensions/assets/app/views/admin/removed/bucket/_iframe.html.haml +1 -0
  351. data/vendor/extensions/assets/artwork/icons.png +0 -0
  352. data/vendor/extensions/assets/assets_extension.rb +86 -0
  353. data/vendor/extensions/assets/config/initializers/interpolation.rb +6 -0
  354. data/vendor/extensions/assets/config/initializers/radiant_config.rb +37 -0
  355. data/vendor/extensions/assets/config/locales/en.yml +105 -0
  356. data/vendor/extensions/assets/config/locales/nl.yml +105 -0
  357. data/vendor/extensions/assets/config/routes.rb +8 -0
  358. data/vendor/extensions/assets/db/migrate/001_create_assets.rb +12 -0
  359. data/vendor/extensions/assets/db/migrate/002_create_paperclip_attributes.rb +13 -0
  360. data/vendor/extensions/assets/db/migrate/003_create_user_observer.rb +13 -0
  361. data/vendor/extensions/assets/db/migrate/004_create_page_attachments.rb +19 -0
  362. data/vendor/extensions/assets/db/migrate/005_rename_users.rb +13 -0
  363. data/vendor/extensions/assets/db/migrate/20090316132151_disable_file_types.rb +20 -0
  364. data/vendor/extensions/assets/db/migrate/20110513205050_asset_uuid.rb +11 -0
  365. data/vendor/extensions/assets/lib/assets_admin_ui.rb +32 -0
  366. data/vendor/extensions/assets/lib/page_asset_associations.rb +13 -0
  367. data/vendor/extensions/assets/lib/paperclip/frame_grab.rb +39 -0
  368. data/vendor/extensions/assets/lib/tag_deprecation.rb +73 -0
  369. data/vendor/extensions/assets/lib/tasks/assets_extension_tasks.rake +123 -0
  370. data/vendor/extensions/assets/lib/tasks/paperclip_tasks.rake +79 -0
  371. data/vendor/extensions/assets/public/flash/ZeroClipboard.swf +0 -0
  372. data/vendor/extensions/assets/public/images/admin/assets/add.png +0 -0
  373. data/vendor/extensions/assets/public/images/admin/assets/archive_icon.png +0 -0
  374. data/vendor/extensions/assets/public/images/admin/assets/audio_icon.png +0 -0
  375. data/vendor/extensions/assets/public/images/admin/assets/audio_thumbnail.png +0 -0
  376. data/vendor/extensions/assets/public/images/admin/assets/c_icon.png +0 -0
  377. data/vendor/extensions/assets/public/images/admin/assets/copy.png +0 -0
  378. data/vendor/extensions/assets/public/images/admin/assets/css_icon.png +0 -0
  379. data/vendor/extensions/assets/public/images/admin/assets/database_icon.png +0 -0
  380. data/vendor/extensions/assets/public/images/admin/assets/delete.png +0 -0
  381. data/vendor/extensions/assets/public/images/admin/assets/document_icon.png +0 -0
  382. data/vendor/extensions/assets/public/images/admin/assets/document_thumbnail.png +0 -0
  383. data/vendor/extensions/assets/public/images/admin/assets/flash_icon.png +0 -0
  384. data/vendor/extensions/assets/public/images/admin/assets/flash_thumbnail.png +0 -0
  385. data/vendor/extensions/assets/public/images/admin/assets/font_icon.png +0 -0
  386. data/vendor/extensions/assets/public/images/admin/assets/gzip_icon.png +0 -0
  387. data/vendor/extensions/assets/public/images/admin/assets/html_icon.png +0 -0
  388. data/vendor/extensions/assets/public/images/admin/assets/image_icon.png +0 -0
  389. data/vendor/extensions/assets/public/images/admin/assets/image_thumbnail.png +0 -0
  390. data/vendor/extensions/assets/public/images/admin/assets/java_icon.png +0 -0
  391. data/vendor/extensions/assets/public/images/admin/assets/page_edit.png +0 -0
  392. data/vendor/extensions/assets/public/images/admin/assets/perl_icon.png +0 -0
  393. data/vendor/extensions/assets/public/images/admin/assets/php_icon.png +0 -0
  394. data/vendor/extensions/assets/public/images/admin/assets/presentation_icon.png +0 -0
  395. data/vendor/extensions/assets/public/images/admin/assets/python_icon.png +0 -0
  396. data/vendor/extensions/assets/public/images/admin/assets/reorder_assets.png +0 -0
  397. data/vendor/extensions/assets/public/images/admin/assets/ruby_icon.png +0 -0
  398. data/vendor/extensions/assets/public/images/admin/assets/script_icon.png +0 -0
  399. data/vendor/extensions/assets/public/images/admin/assets/spreadsheet_icon.png +0 -0
  400. data/vendor/extensions/assets/public/images/admin/assets/tar_icon.png +0 -0
  401. data/vendor/extensions/assets/public/images/admin/assets/unknown_icon.png +0 -0
  402. data/vendor/extensions/assets/public/images/admin/assets/unknown_thumbnail.png +0 -0
  403. data/vendor/extensions/assets/public/images/admin/assets/video_icon.png +0 -0
  404. data/vendor/extensions/assets/public/images/admin/assets/video_thumbnail.png +0 -0
  405. data/vendor/extensions/assets/public/images/admin/assets/xml_icon.png +0 -0
  406. data/vendor/extensions/assets/public/images/admin/assets/zip_icon.png +0 -0
  407. data/vendor/extensions/assets/public/javascripts/admin/assets.js +238 -0
  408. data/vendor/extensions/assets/public/stylesheets/sass/admin/assets.sass +203 -0
  409. data/vendor/extensions/assets/spec/controllers/admin/assets_controller_spec.rb +50 -0
  410. data/vendor/extensions/assets/spec/controllers/admin/page_attachment_controller_spec.rb +51 -0
  411. data/vendor/extensions/assets/spec/datasets/assets_dataset.rb +31 -0
  412. data/vendor/extensions/assets/spec/lib/asset_tags_spec.rb +9 -0
  413. data/vendor/extensions/assets/spec/lib/tag_deprecation_spec.rb +49 -0
  414. data/vendor/extensions/assets/spec/models/asset_spec.rb +71 -0
  415. data/vendor/extensions/assets/spec/models/asset_type_spec.rb +49 -0
  416. data/vendor/extensions/assets/spec/spec.opts +6 -0
  417. data/vendor/extensions/assets/spec/spec_helper.rb +36 -0
  418. data/vendor/extensions/assets/wireframes/edit-page-assets-2.bmml +453 -0
  419. data/vendor/extensions/assets/wireframes/edit-page-assets-2.png +0 -0
  420. data/vendor/extensions/assets/wireframes/edit-page-assets-3.bmml +454 -0
  421. data/vendor/extensions/assets/wireframes/edit-page-assets-3.png +0 -0
  422. data/vendor/extensions/assets/wireframes/edit-page-assets.bmml +433 -0
  423. data/vendor/extensions/assets/wireframes/edit-page-assets.png +0 -0
  424. data/vendor/extensions/assets/wireframes/edit-page.bmml +174 -0
  425. data/vendor/extensions/assets/wireframes/edit-page.png +0 -0
  426. data/vendor/extensions/debug/README +3 -0
  427. data/vendor/extensions/debug/Rakefile +136 -0
  428. data/{app → vendor/extensions/debug/app}/models/env_dump_page.rb +0 -0
  429. data/vendor/extensions/debug/config/locales/en.yml +3 -0
  430. data/vendor/extensions/debug/config/routes.rb +5 -0
  431. data/vendor/extensions/debug/debug_extension.rb +11 -0
  432. data/vendor/extensions/debug/lib/tasks/debug_extension_tasks.rake +55 -0
  433. data/{spec → vendor/extensions/debug/spec}/models/env_dump_page_spec.rb +0 -0
  434. data/vendor/extensions/debug/spec/spec.opts +6 -0
  435. data/vendor/extensions/debug/spec/spec_helper.rb +36 -0
  436. data/vendor/extensions/dutch_language_pack/config/locales/nl.yml +80 -29
  437. data/vendor/extensions/exporter/README +5 -0
  438. data/vendor/extensions/exporter/Rakefile +116 -0
  439. data/vendor/extensions/exporter/app/controllers/admin/export_controller.rb +5 -0
  440. data/vendor/extensions/exporter/app/models/radiant/exporter.rb +41 -0
  441. data/vendor/extensions/exporter/config/locales/en.yml +3 -0
  442. data/vendor/extensions/exporter/config/routes.rb +6 -0
  443. data/vendor/extensions/exporter/cucumber.yml +1 -0
  444. data/vendor/extensions/exporter/exporter_extension.rb +8 -0
  445. data/vendor/extensions/exporter/features/support/env.rb +16 -0
  446. data/vendor/extensions/exporter/features/support/paths.rb +14 -0
  447. data/vendor/extensions/exporter/lib/tasks/exporter_extension_tasks.rake +55 -0
  448. data/{spec → vendor/extensions/exporter/spec}/controllers/admin/export_controller_spec.rb +1 -1
  449. data/vendor/extensions/exporter/spec/models/radiant/exporter_spec.rb +29 -0
  450. data/vendor/extensions/exporter/spec/spec.opts +6 -0
  451. data/vendor/extensions/exporter/spec/spec_helper.rb +36 -0
  452. data/vendor/extensions/german_language_pack/config/locales/de.yml +52 -0
  453. data/vendor/extensions/japanese_language_pack/README +40 -1
  454. data/vendor/extensions/japanese_language_pack/config/locales/ja.yml +107 -71
  455. data/vendor/extensions/japanese_language_pack/config/locales/ja_available_tags.yml +327 -347
  456. data/vendor/extensions/japanese_language_pack/japanese_language_pack_extension.rb +3 -3
  457. data/vendor/extensions/markdown_filter/vendor/kramdown/CONTRIBUTERS +2 -1
  458. data/vendor/extensions/markdown_filter/vendor/kramdown/ChangeLog +1250 -0
  459. data/vendor/extensions/markdown_filter/vendor/kramdown/README +1 -1
  460. data/vendor/extensions/markdown_filter/vendor/kramdown/Rakefile +2 -2
  461. data/vendor/extensions/markdown_filter/vendor/kramdown/VERSION +1 -1
  462. data/vendor/extensions/markdown_filter/vendor/kramdown/bin/kramdown +5 -4
  463. data/vendor/extensions/markdown_filter/vendor/kramdown/data/kramdown/document.html +11 -2
  464. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/{default.less.css → default.scss.css} +18 -9
  465. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/default.template +11 -2
  466. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/documentation.page +1 -1
  467. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/index.page +37 -4
  468. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/quickref.page +2 -2
  469. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/syntax.page +281 -187
  470. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/converter.rb +1 -0
  471. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/converter/html.rb +92 -90
  472. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/converter/kramdown.rb +421 -0
  473. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/converter/latex.rb +311 -289
  474. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/document.rb +10 -6
  475. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/options.rb +29 -15
  476. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/base.rb +0 -1
  477. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/html.rb +153 -41
  478. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown.rb +21 -3
  479. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/abbreviation.rb +1 -0
  480. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/attribute_list.rb +20 -12
  481. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/autolink.rb +11 -4
  482. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/block_boundary.rb +46 -0
  483. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/blockquote.rb +7 -3
  484. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/codeblock.rb +5 -3
  485. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/escaped_chars.rb +1 -1
  486. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/extension.rb +23 -8
  487. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/footnote.rb +3 -2
  488. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/header.rb +11 -11
  489. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/html.rb +18 -16
  490. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/html_entity.rb +2 -1
  491. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/link.rb +13 -10
  492. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/list.rb +48 -37
  493. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/math.rb +15 -4
  494. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/paragraph.rb +14 -3
  495. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/table.rb +17 -9
  496. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/typographic_symbol.rb +4 -4
  497. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/utils.rb +37 -0
  498. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/utils/entities.rb +335 -0
  499. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/utils/html.rb +75 -0
  500. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/utils/ordered_hash.rb +79 -0
  501. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/version.rb +1 -1
  502. data/vendor/extensions/markdown_filter/vendor/kramdown/man/man1/kramdown.1 +60 -36
  503. data/vendor/extensions/markdown_filter/vendor/kramdown/test/run_tests.rb +1 -1
  504. data/vendor/extensions/markdown_filter/vendor/kramdown/test/test_files.rb +66 -4
  505. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/02_eob/middle.html +0 -1
  506. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/atx_header.html +5 -2
  507. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/atx_header.text +3 -1
  508. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/setext_header.html +4 -5
  509. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/setext_header.html.19 +30 -0
  510. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/lazy.html +34 -0
  511. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/lazy.text +20 -0
  512. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/nested.html +1 -0
  513. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/nested.text +1 -0
  514. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/with_code_blocks.html +2 -2
  515. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/lazy.html +4 -0
  516. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/lazy.text +5 -0
  517. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/no_newline_at_end_1.html +2 -0
  518. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/no_newline_at_end_1.text +2 -0
  519. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/whitespace.html +2 -2
  520. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/with_ial.html +6 -0
  521. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/with_ial.text +5 -0
  522. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/07_horizontal_rule/error.html.19 +7 -0
  523. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/07_horizontal_rule/normal.html +0 -2
  524. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/07_horizontal_rule/normal.text +0 -2
  525. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/item_ial.html +1 -3
  526. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/lazy.html +39 -0
  527. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/lazy.text +29 -0
  528. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/list_and_others.html +5 -3
  529. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/list_and_others.text +1 -0
  530. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/other_first_element.html +2 -2
  531. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/other_first_element.text +1 -1
  532. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/simple_ul.html +0 -13
  533. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/simple_ul.text +0 -7
  534. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/special_cases.html +8 -31
  535. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/special_cases.text +2 -15
  536. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/comment.html +2 -2
  537. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/code.html +1 -1
  538. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/code.text +1 -1
  539. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/emphasis.html +2 -0
  540. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/emphasis.text +2 -0
  541. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/table_normal.html +2 -1
  542. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/table_simple.html +40 -2
  543. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/table_simple.text +42 -0
  544. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/typography.html.19 +1 -0
  545. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/invalid_html_1.html +2 -0
  546. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/parse_as_raw.html +2 -2
  547. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/parse_as_span.html +1 -1
  548. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/simple.html +2 -0
  549. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/simple.html.19 +64 -0
  550. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/simple.text +2 -0
  551. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/11_ial/auto_id_and_ial.html +1 -1
  552. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/11_ial/simple.html +4 -4
  553. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/comment.html +6 -3
  554. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/comment.text +2 -1
  555. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/ignored.html +5 -1
  556. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/ignored.text +1 -1
  557. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/nomarkdown.html +5 -1
  558. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/nomarkdown.kramdown +20 -0
  559. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/nomarkdown.latex +13 -0
  560. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/nomarkdown.text +11 -1
  561. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/options.html +0 -3
  562. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/options.text +0 -6
  563. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/item_ial.html +12 -0
  564. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/item_ial.text +8 -0
  565. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/simple.html +2 -2
  566. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/14_table/errors.html +5 -0
  567. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/14_table/errors.text +6 -0
  568. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/14_table/header.text +1 -1
  569. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/14_table/no_table.text +1 -1
  570. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/14_table/simple.html +78 -0
  571. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/14_table/simple.text +22 -0
  572. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/15_math/normal.html +11 -4
  573. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/15_math/normal.text +10 -0
  574. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/16_toc/no_toc_depth.html +33 -0
  575. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/16_toc/no_toc_depth.options +1 -0
  576. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/16_toc/no_toc_depth.text +16 -0
  577. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/16_toc/toc_depth_2.html +24 -0
  578. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/16_toc/toc_depth_2.options +1 -0
  579. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/16_toc/toc_depth_2.text +16 -0
  580. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/encoding.html +1 -1
  581. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/empty.html +2 -0
  582. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/empty.text +2 -0
  583. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/image_in_a.html +3 -3
  584. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/imagelinks.html +8 -6
  585. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/imagelinks.text +2 -0
  586. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/inline.html +11 -5
  587. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/inline.html.19 +46 -0
  588. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/inline.text +11 -5
  589. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/link_defs.html +2 -1
  590. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/link_defs.text +4 -0
  591. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/reference.html +3 -0
  592. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/reference.html.19 +35 -0
  593. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/reference.text +5 -0
  594. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/03_codespan/highlighting.html +1 -0
  595. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/03_codespan/highlighting.text +1 -0
  596. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/04_footnote/definitions.html +3 -0
  597. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/04_footnote/definitions.latex +3 -4
  598. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/04_footnote/definitions.text +6 -0
  599. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/04_footnote/footnote_nr.latex +1 -5
  600. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/04_footnote/markers.latex +5 -14
  601. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/05_html/markdown_attr.html +1 -1
  602. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/05_html/markdown_attr.text +1 -1
  603. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/05_html/normal.html +5 -3
  604. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/05_html/normal.text +2 -0
  605. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/escaped_chars/normal.html +2 -0
  606. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/escaped_chars/normal.text +2 -0
  607. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/extension/comment.html +5 -5
  608. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/extension/ignored.html +1 -1
  609. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/line_breaks/normal.latex +12 -0
  610. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/entities.html +1 -1
  611. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/entities.options +1 -0
  612. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/entities_as_char.html +1 -0
  613. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/entities_as_char.html.19 +1 -0
  614. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/entities_as_char.options +1 -0
  615. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/entities_as_char.text +1 -0
  616. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/entities_as_input.html +1 -0
  617. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/entities_as_input.options +1 -0
  618. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/entities_as_input.text +1 -0
  619. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/entities_numeric.html +1 -0
  620. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/entities_numeric.options +1 -0
  621. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/entities_numeric.text +1 -0
  622. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/entities_symbolic.html +1 -0
  623. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/entities_symbolic.options +1 -0
  624. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/entities_symbolic.text +1 -0
  625. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/typography.html +1 -1
  626. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/typography.html.19 +18 -0
  627. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/typography.text +1 -1
  628. data/vendor/extensions/russian_language_pack/README +3 -1
  629. data/vendor/extensions/russian_language_pack/config/locales/ru.yml +28 -19
  630. data/vendor/extensions/russian_language_pack/config/locales/ru_available_tags.yml +6 -8
  631. data/vendor/extensions/russian_language_pack/lib/tasks/i18n_ru_extension_tasks.rake +4 -4
  632. data/vendor/extensions/russian_language_pack/russian_language_pack_extension.rb +4 -4
  633. data/vendor/extensions/sheets/LICENSE +21 -0
  634. data/vendor/extensions/sheets/README.md +33 -0
  635. data/vendor/extensions/sheets/Rakefile +117 -0
  636. data/vendor/extensions/sheets/app/controllers/admin/scripts_controller.rb +13 -0
  637. data/vendor/extensions/sheets/app/controllers/admin/sheet_resource_controller.rb +54 -0
  638. data/vendor/extensions/sheets/app/controllers/admin/styles_controller.rb +13 -0
  639. data/vendor/extensions/sheets/app/helpers/admin/scripts_helper.rb +5 -0
  640. data/vendor/extensions/sheets/app/helpers/admin/styles_helper.rb +5 -0
  641. data/vendor/extensions/sheets/app/models/javascript_page.rb +16 -0
  642. data/vendor/extensions/sheets/app/models/sheet.rb +89 -0
  643. data/vendor/extensions/sheets/app/models/stylesheet_page.rb +16 -0
  644. data/vendor/extensions/sheets/app/views/admin/scripts/edit.html.haml +30 -0
  645. data/vendor/extensions/sheets/app/views/admin/scripts/index.html.haml +27 -0
  646. data/vendor/extensions/sheets/app/views/admin/scripts/new.html.haml +30 -0
  647. data/vendor/extensions/sheets/app/views/admin/sheets/_edit_scripts.html.haml +40 -0
  648. data/vendor/extensions/sheets/app/views/admin/sheets/_upload_script.html.haml +16 -0
  649. data/vendor/extensions/sheets/app/views/admin/styles/edit.html.haml +30 -0
  650. data/vendor/extensions/sheets/app/views/admin/styles/index.html.haml +31 -0
  651. data/vendor/extensions/sheets/app/views/admin/styles/new.html.haml +30 -0
  652. data/vendor/extensions/sheets/config/locales/en.yml +15 -0
  653. data/vendor/extensions/sheets/config/routes.rb +6 -0
  654. data/vendor/extensions/sheets/cucumber.yml +1 -0
  655. data/vendor/extensions/sheets/features/support/env.rb +16 -0
  656. data/vendor/extensions/sheets/features/support/paths.rb +14 -0
  657. data/vendor/extensions/sheets/lib/javascript_tags.rb +58 -0
  658. data/vendor/extensions/sheets/lib/radiant-sheets-extension.rb +2 -0
  659. data/vendor/extensions/sheets/lib/radiant-sheets-extension/version.rb +3 -0
  660. data/vendor/extensions/sheets/lib/sass_filter.rb +16 -0
  661. data/vendor/extensions/sheets/lib/stylesheet_tags.rb +61 -0
  662. data/vendor/extensions/sheets/lib/tasks/sheets_extension_tasks.rake +79 -0
  663. data/vendor/extensions/sheets/public/images/admin/javascript.png +0 -0
  664. data/vendor/extensions/sheets/public/images/admin/stylesheet.png +0 -0
  665. data/vendor/extensions/sheets/radiant-sheets-extension.gemspec +24 -0
  666. data/vendor/extensions/sheets/sass.html +82 -0
  667. data/vendor/extensions/sheets/sheets_extension.rb +88 -0
  668. data/vendor/extensions/sheets/spec/controllers/admin/scripts_controller_spec.rb +123 -0
  669. data/vendor/extensions/sheets/spec/controllers/admin/styles_controller_spec.rb +124 -0
  670. data/vendor/extensions/sheets/spec/datasets/javascripts_dataset.rb +10 -0
  671. data/vendor/extensions/sheets/spec/datasets/stylesheets_dataset.rb +15 -0
  672. data/vendor/extensions/sheets/spec/helpers/admin/scripts_helper_spec.rb +5 -0
  673. data/vendor/extensions/sheets/spec/helpers/admin/styles_helper_spec.rb +5 -0
  674. data/vendor/extensions/sheets/spec/lib/javascript_tags_spec.rb +36 -0
  675. data/vendor/extensions/sheets/spec/lib/stylesheet_tags_spec.rb +41 -0
  676. data/vendor/extensions/sheets/spec/models/javascript_page_spec.rb +80 -0
  677. data/vendor/extensions/sheets/spec/models/page_spec.rb +5 -0
  678. data/vendor/extensions/sheets/spec/models/stylesheet_page_spec.rb +80 -0
  679. data/vendor/extensions/sheets/spec/spec.opts +6 -0
  680. data/vendor/extensions/sheets/spec/spec_helper.rb +36 -0
  681. data/vendor/extensions/site_templates/README +3 -0
  682. data/vendor/extensions/site_templates/Rakefile +136 -0
  683. data/{db → vendor/extensions/site_templates/db}/templates/empty.yml +0 -0
  684. data/vendor/extensions/site_templates/db/templates/roasters.yml +7826 -0
  685. data/vendor/extensions/site_templates/db/templates/simple-blog.yml +251 -0
  686. data/vendor/extensions/site_templates/db/templates/styled-blog.yml +535 -0
  687. data/vendor/extensions/site_templates/lib/tasks/site_templates_extension_tasks.rake +55 -0
  688. data/vendor/extensions/site_templates/public/images/roasters/banner.jpg +0 -0
  689. data/vendor/extensions/site_templates/public/images/roasters/closelabel.gif +0 -0
  690. data/vendor/extensions/site_templates/public/images/roasters/comment.png +0 -0
  691. data/vendor/extensions/site_templates/public/images/roasters/gallery1.jpg +0 -0
  692. data/vendor/extensions/site_templates/public/images/roasters/gallery2.jpg +0 -0
  693. data/vendor/extensions/site_templates/public/images/roasters/gallery3.jpg +0 -0
  694. data/vendor/extensions/site_templates/public/images/roasters/gallery4.jpg +0 -0
  695. data/vendor/extensions/site_templates/public/images/roasters/gift.gif +0 -0
  696. data/vendor/extensions/site_templates/public/images/roasters/green.gif +0 -0
  697. data/vendor/extensions/site_templates/public/images/roasters/nav-background.gif +0 -0
  698. data/vendor/extensions/site_templates/public/images/roasters/nav-divider.gif +0 -0
  699. data/vendor/extensions/site_templates/public/images/roasters/nextlabel.gif +0 -0
  700. data/vendor/extensions/site_templates/public/images/roasters/open.gif +0 -0
  701. data/vendor/extensions/site_templates/public/images/roasters/preview-1.jpg +0 -0
  702. data/vendor/extensions/site_templates/public/images/roasters/preview.jpg +0 -0
  703. data/vendor/extensions/site_templates/public/images/roasters/prevlabel.gif +0 -0
  704. data/vendor/extensions/site_templates/public/images/roasters/prize.gif +0 -0
  705. data/vendor/extensions/site_templates/public/images/roasters/recycle.gif +0 -0
  706. data/vendor/extensions/site_templates/public/images/roasters/rss.gif +0 -0
  707. data/vendor/extensions/site_templates/public/images/roasters/thumb-grinder.jpg +0 -0
  708. data/vendor/extensions/site_templates/public/images/roasters/thumb-grower.jpg +0 -0
  709. data/vendor/extensions/site_templates/public/images/roasters/thumb-roaster.jpg +0 -0
  710. data/vendor/extensions/site_templates/public/images/roasters/truck.gif +0 -0
  711. data/vendor/extensions/site_templates/site_templates_extension.rb +8 -0
  712. data/vendor/extensions/textile_filter/textile.html +2 -2
  713. data/vendor/plugins/dataset/lib/dataset.rb +2 -2
  714. data/vendor/plugins/dataset/plugit/descriptor.rb +25 -0
  715. data/vendor/plugins/haml/README.md +95 -154
  716. data/vendor/plugins/haml/Rakefile +104 -91
  717. data/vendor/plugins/haml/TODO +26 -20
  718. data/vendor/plugins/haml/VERSION +1 -1
  719. data/vendor/plugins/haml/VERSION_NAME +1 -1
  720. data/vendor/plugins/haml/bin/css2sass +7 -1
  721. data/vendor/plugins/haml/bin/sass-convert +7 -0
  722. data/vendor/plugins/haml/doc-src/FAQ.md +16 -4
  723. data/vendor/plugins/haml/doc-src/HAML_CHANGELOG.md +536 -1
  724. data/vendor/plugins/haml/doc-src/HAML_REFERENCE.md +176 -16
  725. data/vendor/plugins/haml/doc-src/INDENTED_SYNTAX.md +210 -0
  726. data/vendor/plugins/haml/doc-src/SASS_CHANGELOG.md +1159 -0
  727. data/vendor/plugins/haml/doc-src/SASS_REFERENCE.md +1163 -633
  728. data/vendor/plugins/haml/doc-src/SCSS_FOR_SASS_USERS.md +155 -0
  729. data/vendor/plugins/haml/ext/extconf.rb +10 -0
  730. data/vendor/plugins/haml/extra/haml-mode.el +36 -34
  731. data/vendor/plugins/haml/extra/sass-mode.el +10 -9
  732. data/vendor/plugins/haml/haml.gemspec +8 -33
  733. data/vendor/plugins/haml/init.rbc +404 -0
  734. data/vendor/plugins/haml/lib/haml.rb +5 -2
  735. data/vendor/plugins/haml/lib/haml.rbc +569 -0
  736. data/vendor/plugins/haml/lib/haml/buffer.rb +22 -4
  737. data/vendor/plugins/haml/lib/haml/buffer.rbc +4048 -0
  738. data/vendor/plugins/haml/lib/haml/engine.rb +13 -4
  739. data/vendor/plugins/haml/lib/haml/engine.rbc +3852 -0
  740. data/vendor/plugins/haml/lib/haml/error.rbc +339 -0
  741. data/vendor/plugins/haml/lib/haml/exec.rb +456 -64
  742. data/vendor/plugins/haml/lib/haml/filters.rb +19 -1
  743. data/vendor/plugins/haml/lib/haml/filters.rbc +5617 -0
  744. data/vendor/plugins/haml/lib/haml/helpers.rb +40 -19
  745. data/vendor/plugins/haml/lib/haml/helpers.rbc +7086 -0
  746. data/vendor/plugins/haml/lib/haml/helpers/action_view_extensions.rbc +522 -0
  747. data/vendor/plugins/haml/lib/haml/helpers/action_view_mods.rb +38 -12
  748. data/vendor/plugins/haml/lib/haml/helpers/action_view_mods.rbc +5515 -0
  749. data/vendor/plugins/haml/lib/haml/helpers/xss_mods.rb +13 -2
  750. data/vendor/plugins/haml/lib/haml/html.rb +209 -49
  751. data/vendor/plugins/haml/lib/haml/html/erb.rb +141 -0
  752. data/vendor/plugins/haml/lib/haml/precompiler.rb +130 -89
  753. data/vendor/plugins/haml/lib/haml/precompiler.rbc +22247 -0
  754. data/vendor/plugins/haml/lib/haml/railtie.rb +16 -13
  755. data/vendor/plugins/haml/lib/haml/railtie.rbc +409 -0
  756. data/vendor/plugins/haml/lib/haml/root.rb +7 -0
  757. data/vendor/plugins/haml/lib/haml/root.rbc +160 -0
  758. data/vendor/plugins/haml/lib/haml/shared.rbc +1137 -0
  759. data/vendor/plugins/haml/lib/haml/template.rb +13 -12
  760. data/vendor/plugins/haml/lib/haml/template.rbc +1838 -0
  761. data/vendor/plugins/haml/lib/haml/template/options.rb +16 -0
  762. data/vendor/plugins/haml/lib/haml/template/options.rbc +235 -0
  763. data/vendor/plugins/haml/lib/haml/template/plugin.rb +18 -6
  764. data/vendor/plugins/haml/lib/haml/template/plugin.rbc +2720 -0
  765. data/vendor/plugins/haml/lib/haml/util.rb +483 -44
  766. data/vendor/plugins/haml/lib/haml/util.rbc +12059 -0
  767. data/vendor/plugins/haml/lib/haml/util/subset_map.rb +101 -0
  768. data/vendor/plugins/haml/lib/haml/util/subset_map.rbc +1316 -0
  769. data/vendor/plugins/haml/lib/haml/version.rb +25 -2
  770. data/vendor/plugins/haml/lib/haml/version.rbc +1671 -0
  771. data/vendor/plugins/haml/lib/sass.rb +7 -2
  772. data/vendor/plugins/haml/lib/sass.rbc +492 -0
  773. data/vendor/plugins/haml/lib/sass/callbacks.rb +52 -0
  774. data/vendor/plugins/haml/lib/sass/callbacks.rbc +388 -0
  775. data/vendor/plugins/haml/lib/sass/css.rb +86 -196
  776. data/vendor/plugins/haml/lib/sass/engine.rb +304 -99
  777. data/vendor/plugins/haml/lib/sass/engine.rbc +17020 -0
  778. data/vendor/plugins/haml/lib/sass/environment.rb +67 -3
  779. data/vendor/plugins/haml/lib/sass/environment.rbc +1751 -0
  780. data/vendor/plugins/haml/lib/sass/error.rb +166 -25
  781. data/vendor/plugins/haml/lib/sass/error.rbc +2801 -0
  782. data/vendor/plugins/haml/lib/sass/files.rb +43 -38
  783. data/vendor/plugins/haml/lib/sass/files.rbc +3118 -0
  784. data/vendor/plugins/haml/lib/sass/less.rb +382 -0
  785. data/vendor/plugins/haml/lib/sass/plugin.rb +198 -150
  786. data/vendor/plugins/haml/lib/sass/plugin.rbc +4356 -0
  787. data/vendor/plugins/haml/lib/sass/plugin/configuration.rb +221 -0
  788. data/vendor/plugins/haml/lib/sass/plugin/configuration.rbc +1343 -0
  789. data/vendor/plugins/haml/lib/sass/plugin/generic.rb +15 -0
  790. data/vendor/plugins/haml/lib/sass/plugin/merb.rb +8 -20
  791. data/vendor/plugins/haml/lib/sass/plugin/rack.rb +2 -20
  792. data/vendor/plugins/haml/lib/sass/plugin/rack.rbc +446 -0
  793. data/vendor/plugins/haml/lib/sass/plugin/rails.rb +16 -9
  794. data/vendor/plugins/haml/lib/sass/plugin/rails.rbc +879 -0
  795. data/vendor/plugins/haml/lib/sass/plugin/staleness_checker.rb +123 -0
  796. data/vendor/plugins/haml/lib/sass/plugin/staleness_checker.rbc +2019 -0
  797. data/vendor/plugins/haml/lib/sass/repl.rb +1 -1
  798. data/vendor/plugins/haml/lib/sass/script.rb +32 -31
  799. data/vendor/plugins/haml/lib/sass/script.rbc +1188 -0
  800. data/vendor/plugins/haml/lib/sass/script/bool.rb +2 -1
  801. data/vendor/plugins/haml/lib/sass/script/bool.rbc +366 -0
  802. data/vendor/plugins/haml/lib/sass/script/color.rb +295 -26
  803. data/vendor/plugins/haml/lib/sass/script/color.rbc +8148 -0
  804. data/vendor/plugins/haml/lib/sass/script/css_lexer.rb +29 -0
  805. data/vendor/plugins/haml/lib/sass/script/css_lexer.rbc +809 -0
  806. data/vendor/plugins/haml/lib/sass/script/css_parser.rb +31 -0
  807. data/vendor/plugins/haml/lib/sass/script/css_parser.rbc +628 -0
  808. data/vendor/plugins/haml/lib/sass/script/funcall.rb +33 -6
  809. data/vendor/plugins/haml/lib/sass/script/funcall.rbc +1805 -0
  810. data/vendor/plugins/haml/lib/sass/script/functions.rb +637 -33
  811. data/vendor/plugins/haml/lib/sass/script/functions.rbc +8418 -0
  812. data/vendor/plugins/haml/lib/sass/script/interpolation.rb +70 -0
  813. data/vendor/plugins/haml/lib/sass/script/interpolation.rbc +1225 -0
  814. data/vendor/plugins/haml/lib/sass/script/lexer.rb +200 -57
  815. data/vendor/plugins/haml/lib/sass/script/lexer.rbc +7231 -0
  816. data/vendor/plugins/haml/lib/sass/script/literal.rb +69 -10
  817. data/vendor/plugins/haml/lib/sass/script/literal.rbc +3365 -0
  818. data/vendor/plugins/haml/lib/sass/script/node.rb +99 -1
  819. data/vendor/plugins/haml/lib/sass/script/node.rbc +1418 -0
  820. data/vendor/plugins/haml/lib/sass/script/number.rb +64 -24
  821. data/vendor/plugins/haml/lib/sass/script/number.rbc +6024 -0
  822. data/vendor/plugins/haml/lib/sass/script/operation.rb +53 -3
  823. data/vendor/plugins/haml/lib/sass/script/operation.rbc +1856 -0
  824. data/vendor/plugins/haml/lib/sass/script/parser.rb +229 -50
  825. data/vendor/plugins/haml/lib/sass/script/parser.rbc +8418 -0
  826. data/vendor/plugins/haml/lib/sass/script/string.rb +57 -2
  827. data/vendor/plugins/haml/lib/sass/script/string.rbc +1357 -0
  828. data/vendor/plugins/haml/lib/sass/script/string_interpolation.rb +93 -0
  829. data/vendor/plugins/haml/lib/sass/script/string_interpolation.rbc +1643 -0
  830. data/vendor/plugins/haml/lib/sass/script/unary_operation.rb +25 -2
  831. data/vendor/plugins/haml/lib/sass/script/unary_operation.rbc +1144 -0
  832. data/vendor/plugins/haml/lib/sass/script/variable.rb +22 -5
  833. data/vendor/plugins/haml/lib/sass/script/variable.rbc +844 -0
  834. data/vendor/plugins/haml/lib/sass/scss.rb +17 -0
  835. data/vendor/plugins/haml/lib/sass/scss.rbc +242 -0
  836. data/vendor/plugins/haml/lib/sass/scss/css_parser.rb +46 -0
  837. data/vendor/plugins/haml/lib/sass/scss/css_parser.rbc +1106 -0
  838. data/vendor/plugins/haml/lib/sass/scss/parser.rb +846 -0
  839. data/vendor/plugins/haml/lib/sass/scss/parser.rbc +19348 -0
  840. data/vendor/plugins/haml/lib/sass/scss/rx.rb +126 -0
  841. data/vendor/plugins/haml/lib/sass/scss/rx.rbc +2849 -0
  842. data/vendor/plugins/haml/lib/sass/scss/sass_parser.rb +11 -0
  843. data/vendor/plugins/haml/lib/sass/scss/sass_parser.rbc +287 -0
  844. data/vendor/plugins/haml/lib/sass/scss/script_lexer.rb +15 -0
  845. data/vendor/plugins/haml/lib/sass/scss/script_lexer.rbc +439 -0
  846. data/vendor/plugins/haml/lib/sass/scss/script_parser.rb +25 -0
  847. data/vendor/plugins/haml/lib/sass/scss/script_parser.rbc +482 -0
  848. data/vendor/plugins/haml/lib/sass/scss/static_parser.rb +40 -0
  849. data/vendor/plugins/haml/lib/sass/scss/static_parser.rbc +971 -0
  850. data/vendor/plugins/haml/lib/sass/selector.rb +361 -0
  851. data/vendor/plugins/haml/lib/sass/selector.rbc +4193 -0
  852. data/vendor/plugins/haml/lib/sass/selector/abstract_sequence.rb +62 -0
  853. data/vendor/plugins/haml/lib/sass/selector/abstract_sequence.rbc +798 -0
  854. data/vendor/plugins/haml/lib/sass/selector/comma_sequence.rb +82 -0
  855. data/vendor/plugins/haml/lib/sass/selector/comma_sequence.rbc +1814 -0
  856. data/vendor/plugins/haml/lib/sass/selector/sequence.rb +237 -0
  857. data/vendor/plugins/haml/lib/sass/selector/sequence.rbc +4928 -0
  858. data/vendor/plugins/haml/lib/sass/selector/simple.rb +113 -0
  859. data/vendor/plugins/haml/lib/sass/selector/simple.rbc +1553 -0
  860. data/vendor/plugins/haml/lib/sass/selector/simple_sequence.rb +136 -0
  861. data/vendor/plugins/haml/lib/sass/selector/simple_sequence.rbc +2346 -0
  862. data/vendor/plugins/haml/lib/sass/tree/charset_node.rb +37 -0
  863. data/vendor/plugins/haml/lib/sass/tree/charset_node.rbc +606 -0
  864. data/vendor/plugins/haml/lib/sass/tree/comment_node.rb +71 -27
  865. data/vendor/plugins/haml/lib/sass/tree/comment_node.rbc +2397 -0
  866. data/vendor/plugins/haml/lib/sass/tree/debug_node.rb +8 -2
  867. data/vendor/plugins/haml/lib/sass/tree/debug_node.rbc +740 -0
  868. data/vendor/plugins/haml/lib/sass/tree/directive_node.rb +44 -37
  869. data/vendor/plugins/haml/lib/sass/tree/directive_node.rbc +1302 -0
  870. data/vendor/plugins/haml/lib/sass/tree/extend_node.rb +65 -0
  871. data/vendor/plugins/haml/lib/sass/tree/extend_node.rbc +1276 -0
  872. data/vendor/plugins/haml/lib/sass/tree/for_node.rb +19 -0
  873. data/vendor/plugins/haml/lib/sass/tree/for_node.rbc +1145 -0
  874. data/vendor/plugins/haml/lib/sass/tree/if_node.rb +26 -0
  875. data/vendor/plugins/haml/lib/sass/tree/if_node.rbc +1119 -0
  876. data/vendor/plugins/haml/lib/sass/tree/import_node.rb +64 -27
  877. data/vendor/plugins/haml/lib/sass/tree/import_node.rbc +2242 -0
  878. data/vendor/plugins/haml/lib/sass/tree/mixin_def_node.rb +31 -0
  879. data/vendor/plugins/haml/lib/sass/tree/mixin_def_node.rbc +1001 -0
  880. data/vendor/plugins/haml/lib/sass/tree/mixin_node.rb +82 -7
  881. data/vendor/plugins/haml/lib/sass/tree/mixin_node.rbc +3355 -0
  882. data/vendor/plugins/haml/lib/sass/tree/node.rb +291 -77
  883. data/vendor/plugins/haml/lib/sass/tree/node.rbc +5533 -0
  884. data/vendor/plugins/haml/lib/sass/tree/prop_node.rb +157 -58
  885. data/vendor/plugins/haml/lib/sass/tree/prop_node.rbc +3949 -0
  886. data/vendor/plugins/haml/lib/sass/tree/root_node.rb +157 -0
  887. data/vendor/plugins/haml/lib/sass/tree/root_node.rbc +3112 -0
  888. data/vendor/plugins/haml/lib/sass/tree/rule_node.rb +178 -137
  889. data/vendor/plugins/haml/lib/sass/tree/rule_node.rbc +5636 -0
  890. data/vendor/plugins/haml/lib/sass/tree/variable_node.rb +10 -5
  891. data/vendor/plugins/haml/lib/sass/tree/variable_node.rbc +845 -0
  892. data/vendor/plugins/haml/lib/sass/tree/warn_node.rb +42 -0
  893. data/vendor/plugins/haml/lib/sass/tree/warn_node.rbc +1043 -0
  894. data/vendor/plugins/haml/lib/sass/tree/while_node.rb +17 -0
  895. data/vendor/plugins/haml/lib/sass/tree/while_node.rbc +722 -0
  896. data/vendor/plugins/haml/test/benchmark.rb +5 -5
  897. data/vendor/plugins/haml/test/haml/engine_test.rb +530 -19
  898. data/vendor/plugins/haml/test/haml/{rhtml/_av_partial_1.rhtml → erb/_av_partial_1.erb} +1 -1
  899. data/vendor/plugins/haml/test/haml/{rhtml/_av_partial_2.rhtml → erb/_av_partial_2.erb} +1 -1
  900. data/vendor/plugins/haml/test/haml/{rhtml/action_view.rhtml → erb/action_view.erb} +1 -1
  901. data/vendor/plugins/haml/test/haml/{rhtml/standard.rhtml → erb/standard.erb} +0 -0
  902. data/vendor/plugins/haml/test/haml/helper_test.rb +124 -7
  903. data/vendor/plugins/haml/test/haml/html2haml/erb_tests.rb +426 -0
  904. data/vendor/plugins/haml/test/haml/html2haml_test.rb +250 -66
  905. data/vendor/plugins/haml/test/haml/results/filters.xhtml +1 -1
  906. data/vendor/plugins/haml/test/haml/results/helpers.xhtml +0 -23
  907. data/vendor/plugins/haml/test/haml/results/just_stuff.xhtml +2 -0
  908. data/vendor/plugins/haml/test/haml/spec/LICENSE +14 -0
  909. data/vendor/plugins/haml/test/haml/spec/README.md +106 -0
  910. data/vendor/plugins/haml/test/haml/spec/lua_haml_spec.lua +38 -0
  911. data/vendor/plugins/haml/test/haml/spec/perl_haml_test.pl +81 -0
  912. data/vendor/plugins/haml/test/haml/spec/ruby_haml_test.rb +19 -0
  913. data/vendor/plugins/haml/test/haml/spec/tests.json +603 -0
  914. data/vendor/plugins/haml/test/haml/spec_test.rb +44 -0
  915. data/vendor/plugins/haml/test/haml/template_test.rb +33 -3
  916. data/vendor/plugins/haml/test/haml/templates/helpers.haml +0 -66
  917. data/vendor/plugins/haml/test/haml/templates/just_stuff.haml +2 -0
  918. data/vendor/plugins/haml/test/haml/util/subset_map_test.rb +91 -0
  919. data/vendor/plugins/haml/test/haml/util_test.rb +161 -0
  920. data/vendor/plugins/haml/test/linked_rails.rb +22 -1
  921. data/vendor/plugins/haml/test/sass/callbacks_test.rb +61 -0
  922. data/vendor/plugins/haml/test/sass/conversion_test.rb +1218 -0
  923. data/vendor/plugins/haml/test/sass/css2sass_test.rb +130 -18
  924. data/vendor/plugins/haml/test/sass/data/hsl-rgb.txt +319 -0
  925. data/vendor/plugins/haml/test/sass/engine_test.rb +1427 -139
  926. data/vendor/plugins/haml/test/sass/extend_test.rb +1348 -0
  927. data/vendor/plugins/haml/test/sass/functions_test.rb +429 -47
  928. data/vendor/plugins/haml/test/sass/less_conversion_test.rb +653 -0
  929. data/vendor/plugins/haml/test/sass/more_results/more_import.css +1 -1
  930. data/vendor/plugins/haml/test/sass/more_templates/more_import.sass +3 -3
  931. data/vendor/plugins/haml/test/sass/plugin_test.rb +246 -56
  932. data/vendor/plugins/haml/test/sass/results/compact.css +1 -1
  933. data/vendor/plugins/haml/test/sass/results/complex.css +5 -6
  934. data/vendor/plugins/haml/test/sass/results/compressed.css +1 -1
  935. data/vendor/plugins/haml/test/sass/results/expanded.css +1 -1
  936. data/vendor/plugins/haml/test/sass/results/import.css +3 -1
  937. data/vendor/plugins/haml/test/sass/results/import_charset.css +4 -0
  938. data/vendor/plugins/haml/test/sass/results/import_charset_1_8.css +4 -0
  939. data/vendor/plugins/haml/test/sass/results/import_charset_ibm866.css +4 -0
  940. data/vendor/plugins/haml/test/sass/results/mixins.css +12 -12
  941. data/vendor/plugins/haml/test/sass/results/nested.css +1 -1
  942. data/vendor/plugins/haml/test/sass/results/options.css +1 -0
  943. data/vendor/plugins/haml/test/sass/results/parent_ref.css +4 -4
  944. data/vendor/plugins/haml/test/sass/results/script.css +4 -4
  945. data/vendor/plugins/haml/test/sass/results/scss_import.css +31 -0
  946. data/vendor/plugins/haml/test/sass/results/scss_importee.css +2 -0
  947. data/vendor/plugins/haml/test/sass/results/warn.css +0 -0
  948. data/vendor/plugins/haml/test/sass/results/warn_imported.css +0 -0
  949. data/vendor/plugins/haml/test/sass/script_conversion_test.rb +314 -0
  950. data/vendor/plugins/haml/test/sass/script_test.rb +281 -78
  951. data/vendor/plugins/haml/test/sass/scss/css_test.rb +916 -0
  952. data/vendor/plugins/haml/test/sass/scss/rx_test.rb +156 -0
  953. data/vendor/plugins/haml/test/sass/scss/scss_test.rb +1088 -0
  954. data/vendor/plugins/haml/test/sass/scss/test_helper.rb +37 -0
  955. data/vendor/plugins/haml/test/sass/templates/_imported_charset_ibm866.sass +4 -0
  956. data/vendor/plugins/haml/test/sass/templates/_imported_charset_utf8.sass +4 -0
  957. data/vendor/plugins/haml/test/sass/templates/alt.sass +2 -2
  958. data/vendor/plugins/haml/test/sass/templates/basic.sass +1 -1
  959. data/vendor/plugins/haml/test/sass/templates/bork1.sass +2 -0
  960. data/vendor/plugins/haml/test/sass/templates/bork3.sass +2 -0
  961. data/vendor/plugins/haml/test/sass/templates/bork4.sass +2 -0
  962. data/vendor/plugins/haml/test/sass/templates/complex.sass +0 -2
  963. data/vendor/plugins/haml/test/sass/templates/import.sass +5 -4
  964. data/vendor/plugins/haml/test/sass/templates/import_charset.sass +7 -0
  965. data/vendor/plugins/haml/test/sass/templates/import_charset_1_8.sass +4 -0
  966. data/vendor/plugins/haml/test/sass/templates/import_charset_ibm866.sass +9 -0
  967. data/vendor/plugins/haml/test/sass/templates/importee.less +2 -0
  968. data/vendor/plugins/haml/test/sass/templates/importee.sass +3 -3
  969. data/vendor/plugins/haml/test/sass/templates/line_numbers.sass +1 -1
  970. data/vendor/plugins/haml/test/sass/templates/mixin_bork.sass +5 -0
  971. data/vendor/plugins/haml/test/sass/templates/mixins.sass +2 -2
  972. data/vendor/plugins/haml/test/sass/templates/nested_bork1.sass +2 -0
  973. data/vendor/plugins/haml/test/sass/templates/nested_bork2.sass +2 -0
  974. data/vendor/plugins/haml/test/sass/templates/nested_bork3.sass +2 -0
  975. data/vendor/plugins/haml/test/sass/templates/nested_bork4.sass +2 -0
  976. data/vendor/plugins/haml/test/sass/templates/nested_mixin_bork.sass +6 -0
  977. data/vendor/plugins/haml/test/sass/templates/options.sass +2 -0
  978. data/vendor/plugins/haml/test/sass/templates/parent_ref.sass +2 -2
  979. data/vendor/plugins/haml/test/sass/templates/script.sass +69 -69
  980. data/vendor/plugins/haml/test/sass/templates/scss_import.scss +11 -0
  981. data/vendor/plugins/haml/test/sass/templates/scss_importee.scss +1 -0
  982. data/vendor/plugins/haml/test/sass/templates/units.sass +10 -10
  983. data/vendor/plugins/haml/test/sass/templates/warn.sass +3 -0
  984. data/vendor/plugins/haml/test/sass/templates/warn_imported.sass +4 -0
  985. data/vendor/plugins/haml/test/test_helper.rb +52 -4
  986. data/vendor/plugins/haml/vendor/fssm/LICENSE +20 -0
  987. data/vendor/plugins/haml/vendor/fssm/README.markdown +55 -0
  988. data/vendor/plugins/haml/vendor/fssm/Rakefile +59 -0
  989. data/vendor/plugins/haml/vendor/fssm/VERSION.yml +5 -0
  990. data/vendor/plugins/haml/vendor/fssm/example.rb +9 -0
  991. data/vendor/plugins/haml/vendor/fssm/fssm.gemspec +77 -0
  992. data/vendor/plugins/haml/vendor/fssm/lib/fssm.rb +33 -0
  993. data/vendor/plugins/haml/vendor/fssm/lib/fssm/backends/fsevents.rb +36 -0
  994. data/vendor/plugins/haml/vendor/fssm/lib/fssm/backends/inotify.rb +26 -0
  995. data/vendor/plugins/haml/vendor/fssm/lib/fssm/backends/polling.rb +25 -0
  996. data/vendor/plugins/haml/vendor/fssm/lib/fssm/backends/rubycocoa/fsevents.rb +131 -0
  997. data/vendor/plugins/haml/vendor/fssm/lib/fssm/monitor.rb +26 -0
  998. data/vendor/plugins/haml/vendor/fssm/lib/fssm/path.rb +91 -0
  999. data/vendor/plugins/haml/vendor/fssm/lib/fssm/pathname.rb +502 -0
  1000. data/vendor/plugins/haml/vendor/fssm/lib/fssm/state/directory.rb +57 -0
  1001. data/vendor/plugins/haml/vendor/fssm/lib/fssm/state/file.rb +24 -0
  1002. data/vendor/plugins/haml/vendor/fssm/lib/fssm/support.rb +63 -0
  1003. data/vendor/plugins/haml/vendor/fssm/lib/fssm/tree.rb +176 -0
  1004. data/vendor/plugins/haml/vendor/fssm/profile/prof-cache.rb +40 -0
  1005. data/vendor/plugins/haml/vendor/fssm/profile/prof-fssm-pathname.html +1231 -0
  1006. data/vendor/plugins/haml/vendor/fssm/profile/prof-pathname.rb +68 -0
  1007. data/vendor/plugins/haml/vendor/fssm/profile/prof-plain-pathname.html +988 -0
  1008. data/vendor/plugins/haml/vendor/fssm/profile/prof.html +2379 -0
  1009. data/vendor/plugins/haml/vendor/fssm/spec/path_spec.rb +75 -0
  1010. data/vendor/plugins/haml/vendor/fssm/spec/root/duck/quack.txt +0 -0
  1011. data/vendor/plugins/haml/vendor/fssm/spec/root/file.css +0 -0
  1012. data/vendor/plugins/haml/vendor/fssm/spec/root/file.rb +0 -0
  1013. data/vendor/plugins/haml/vendor/fssm/spec/root/file.yml +0 -0
  1014. data/vendor/plugins/haml/vendor/fssm/spec/root/moo/cow.txt +0 -0
  1015. data/vendor/plugins/haml/vendor/fssm/spec/spec_helper.rb +14 -0
  1016. data/vendor/plugins/haml/yard/callbacks.rb +29 -0
  1017. data/vendor/plugins/haml/yard/default/fulldoc/html/css/common.sass +5 -1
  1018. data/vendor/rails/Rakefile +83 -0
  1019. data/vendor/rails/actionmailer/CHANGELOG +3 -4
  1020. data/vendor/rails/actionmailer/Rakefile +1 -1
  1021. data/vendor/rails/actionmailer/lib/action_mailer/base.rb +34 -1
  1022. data/vendor/rails/actionmailer/lib/action_mailer/helpers.rb +1 -1
  1023. data/vendor/rails/actionmailer/lib/action_mailer/version.rb +1 -1
  1024. data/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.rhtml.bak +1 -0
  1025. data/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.html.erb~ +10 -0
  1026. data/vendor/rails/actionpack/CHANGELOG +11 -0
  1027. data/vendor/rails/actionpack/Rakefile +1 -1
  1028. data/vendor/rails/actionpack/lib/action_controller/base.rb +4 -2
  1029. data/vendor/rails/actionpack/lib/action_controller/caching/fragments.rb +1 -1
  1030. data/vendor/rails/actionpack/lib/action_controller/cookies.rb +8 -2
  1031. data/vendor/rails/actionpack/lib/action_controller/integration.rb +19 -7
  1032. data/vendor/rails/actionpack/lib/action_controller/request.rb +2 -2
  1033. data/vendor/rails/actionpack/lib/action_controller/request_forgery_protection.rb +9 -6
  1034. data/vendor/rails/actionpack/lib/action_controller/rescue.rb +2 -2
  1035. data/vendor/rails/actionpack/lib/action_controller/resources.rb +1 -1
  1036. data/vendor/rails/actionpack/lib/action_controller/routing.rb +1 -1
  1037. data/vendor/rails/actionpack/lib/action_controller/routing/route.rb +3 -3
  1038. data/vendor/rails/actionpack/lib/action_controller/session/abstract_store.rb +143 -55
  1039. data/vendor/rails/actionpack/lib/action_controller/session/cookie_store.rb +48 -35
  1040. data/vendor/rails/actionpack/lib/action_controller/session/mem_cache_store.rb +10 -1
  1041. data/vendor/rails/actionpack/lib/action_controller/test_process.rb +1 -1
  1042. data/vendor/rails/actionpack/lib/action_controller/url_rewriter.rb +11 -1
  1043. data/vendor/rails/actionpack/lib/action_pack/version.rb +1 -1
  1044. data/vendor/rails/actionpack/lib/action_view/helpers.rb +2 -0
  1045. data/vendor/rails/actionpack/lib/action_view/helpers/asset_tag_helper.rb +1 -0
  1046. data/vendor/rails/actionpack/lib/action_view/helpers/csrf_helper.rb +14 -0
  1047. data/vendor/rails/actionpack/lib/action_view/helpers/form_helper.rb +21 -14
  1048. data/vendor/rails/actionpack/lib/action_view/helpers/form_options_helper.rb +1 -1
  1049. data/vendor/rails/actionpack/lib/action_view/helpers/form_tag_helper.rb +1 -1
  1050. data/vendor/rails/actionpack/lib/action_view/helpers/prototype_helper.rb +3 -3
  1051. data/vendor/rails/actionpack/lib/action_view/helpers/text_helper.rb +27 -17
  1052. data/vendor/rails/actionpack/lib/action_view/helpers/url_helper.rb +2 -1
  1053. data/vendor/rails/actionpack/lib/action_view/locale/en.yml +14 -14
  1054. data/vendor/rails/actionpack/lib/action_view/renderable_partial.rb +7 -1
  1055. data/vendor/rails/actionpack/lib/action_view/template.rb +2 -2
  1056. data/vendor/rails/actionpack/test/abstract_unit.rb +17 -0
  1057. data/vendor/rails/actionpack/test/activerecord/active_record_store_test.rb +65 -18
  1058. data/vendor/rails/actionpack/test/controller/cookie_test.rb +38 -0
  1059. data/vendor/rails/actionpack/test/controller/integration_test.rb +44 -0
  1060. data/vendor/rails/actionpack/test/controller/reloader_test.rb +1 -0
  1061. data/vendor/rails/actionpack/test/controller/render_test.rb +12 -0
  1062. data/vendor/rails/actionpack/test/controller/request/multipart_params_parsing_test.rb +15 -0
  1063. data/vendor/rails/actionpack/test/controller/request_forgery_protection_test.rb +92 -124
  1064. data/vendor/rails/actionpack/test/controller/rescue_test.rb +5 -6
  1065. data/vendor/rails/actionpack/test/controller/session/cookie_store_test.rb +101 -7
  1066. data/vendor/rails/actionpack/test/controller/session/mem_cache_store_test.rb +71 -11
  1067. data/vendor/rails/actionpack/test/controller/url_rewriter_test.rb +9 -3
  1068. data/vendor/rails/actionpack/test/fixtures/session_autoload_test/session_autoload_test/foo.rb +10 -0
  1069. data/vendor/rails/actionpack/test/fixtures/test/hello_world.erb~ +1 -0
  1070. data/vendor/rails/actionpack/test/fixtures/test/malformed/malformed.en.html.erb~ +1 -0
  1071. data/vendor/rails/actionpack/test/fixtures/test/malformed/malformed.erb~ +1 -0
  1072. data/vendor/rails/actionpack/test/fixtures/test/malformed/malformed.html.erb~ +1 -0
  1073. data/vendor/rails/actionpack/test/template/form_options_helper_test.rb +4 -0
  1074. data/vendor/rails/actionpack/test/template/text_helper_test.rb +47 -18
  1075. data/vendor/rails/actionpack/test/template/url_helper_test.rb +4 -4
  1076. data/vendor/rails/activemodel/CHANGES +12 -0
  1077. data/vendor/rails/activemodel/README +21 -0
  1078. data/vendor/rails/activemodel/Rakefile +24 -0
  1079. data/vendor/rails/activemodel/lib/active_model.rb +5 -0
  1080. data/vendor/rails/activemodel/lib/active_model/base.rb +8 -0
  1081. data/vendor/rails/activemodel/lib/active_model/callbacks.rb +7 -0
  1082. data/vendor/rails/activemodel/lib/active_model/core.rb +7 -0
  1083. data/vendor/rails/activemodel/lib/active_model/deprecated_error_methods.rb +38 -0
  1084. data/vendor/rails/activemodel/lib/active_model/errors.rb +82 -0
  1085. data/vendor/rails/activemodel/lib/active_model/observing.rb +98 -0
  1086. data/vendor/rails/activemodel/lib/active_model/state_machine.rb +68 -0
  1087. data/vendor/rails/activemodel/lib/active_model/state_machine/event.rb +64 -0
  1088. data/vendor/rails/activemodel/lib/active_model/state_machine/machine.rb +78 -0
  1089. data/vendor/rails/activemodel/lib/active_model/state_machine/state.rb +47 -0
  1090. data/vendor/rails/activemodel/lib/active_model/state_machine/state_transition.rb +40 -0
  1091. data/vendor/rails/activemodel/lib/active_model/validations.rb +126 -0
  1092. data/vendor/rails/activemodel/lib/active_model/validations/acceptance.rb +45 -0
  1093. data/vendor/rails/activemodel/lib/active_model/validations/associated.rb +46 -0
  1094. data/vendor/rails/activemodel/lib/active_model/validations/confirmation.rb +44 -0
  1095. data/vendor/rails/activemodel/lib/active_model/validations/exclusion.rb +37 -0
  1096. data/vendor/rails/activemodel/lib/active_model/validations/format.rb +39 -0
  1097. data/vendor/rails/activemodel/lib/active_model/validations/inclusion.rb +37 -0
  1098. data/vendor/rails/activemodel/lib/active_model/validations/length.rb +95 -0
  1099. data/vendor/rails/activemodel/lib/active_model/validations/numericality.rb +80 -0
  1100. data/vendor/rails/activemodel/lib/active_model/validations/presence.rb +42 -0
  1101. data/vendor/rails/activemodel/lib/active_model/validations/uniqueness.rb +104 -0
  1102. data/vendor/rails/activemodel/test/observing_test.rb +121 -0
  1103. data/vendor/rails/activemodel/test/state_machine/event_test.rb +49 -0
  1104. data/vendor/rails/activemodel/test/state_machine/machine_test.rb +43 -0
  1105. data/vendor/rails/activemodel/test/state_machine/state_test.rb +72 -0
  1106. data/vendor/rails/activemodel/test/state_machine/state_transition_test.rb +84 -0
  1107. data/vendor/rails/activemodel/test/state_machine_test.rb +312 -0
  1108. data/vendor/rails/activemodel/test/test_helper.rb +21 -0
  1109. data/vendor/rails/activerecord/CHANGELOG +5 -2
  1110. data/vendor/rails/activerecord/MIT-LICENSE +20 -0
  1111. data/vendor/rails/activerecord/Rakefile +1 -1
  1112. data/vendor/rails/activerecord/examples/performance.rb +39 -3
  1113. data/vendor/rails/activerecord/lib/active_record/association_preload.rb +12 -2
  1114. data/vendor/rails/activerecord/lib/active_record/associations.rb +1 -1
  1115. data/vendor/rails/activerecord/lib/active_record/associations/association_collection.rb +60 -6
  1116. data/vendor/rails/activerecord/lib/active_record/attribute_methods.rb +0 -4
  1117. data/vendor/rails/activerecord/lib/active_record/autosave_association.rb +2 -2
  1118. data/vendor/rails/activerecord/lib/active_record/base.rb +28 -16
  1119. data/vendor/rails/activerecord/lib/active_record/calculations.rb +19 -12
  1120. data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_specification.rb +1 -1
  1121. data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb +3 -1
  1122. data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb +6 -0
  1123. data/vendor/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb +2 -0
  1124. data/vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb +1 -1
  1125. data/vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb +2 -1
  1126. data/vendor/rails/activerecord/lib/active_record/dirty.rb +1 -1
  1127. data/vendor/rails/activerecord/lib/active_record/locale/en.yml +11 -11
  1128. data/vendor/rails/activerecord/lib/active_record/locking/optimistic.rb +1 -0
  1129. data/vendor/rails/activerecord/lib/active_record/migration.rb +1 -1
  1130. data/vendor/rails/activerecord/lib/active_record/named_scope.rb +15 -10
  1131. data/vendor/rails/activerecord/lib/active_record/serialization.rb +1 -1
  1132. data/vendor/rails/activerecord/lib/active_record/session_store.rb +9 -1
  1133. data/vendor/rails/activerecord/lib/active_record/validations.rb +12 -12
  1134. data/vendor/rails/activerecord/lib/active_record/version.rb +1 -1
  1135. data/vendor/rails/activerecord/test/cases/adapter_test.rb +7 -8
  1136. data/vendor/rails/activerecord/test/cases/associations/eager_load_nested_include_test.rb +7 -7
  1137. data/vendor/rails/activerecord/test/cases/associations/eager_load_nested_polymorphic_include.rb +19 -0
  1138. data/vendor/rails/activerecord/test/cases/associations/eager_test.rb +12 -0
  1139. data/vendor/rails/activerecord/test/cases/associations/has_and_belongs_to_many_associations_test.rb +5 -0
  1140. data/vendor/rails/activerecord/test/cases/associations/has_many_associations_test.rb +108 -4
  1141. data/vendor/rails/activerecord/test/cases/associations/has_many_through_associations_test.rb +14 -0
  1142. data/vendor/rails/activerecord/test/cases/associations_test.rb +10 -0
  1143. data/vendor/rails/activerecord/test/cases/base_test.rb +35 -75
  1144. data/vendor/rails/activerecord/test/cases/calculations_test.rb +13 -0
  1145. data/vendor/rails/activerecord/test/cases/connection_test_mysql.rb +1 -0
  1146. data/vendor/rails/activerecord/test/cases/counter_cache_test.rb +84 -0
  1147. data/vendor/rails/activerecord/test/cases/locking_test.rb +2 -1
  1148. data/vendor/rails/activerecord/test/cases/migration_test.rb +11 -0
  1149. data/vendor/rails/activerecord/test/cases/named_scope_test.rb +12 -1
  1150. data/vendor/rails/activerecord/test/cases/nested_attributes_test.rb +28 -1
  1151. data/vendor/rails/activerecord/test/cases/reflection_test.rb +5 -5
  1152. data/vendor/rails/activerecord/test/cases/sp_test_mysql.rb +16 -0
  1153. data/vendor/rails/activerecord/test/cases/transactions_test.rb +22 -1
  1154. data/vendor/rails/activerecord/test/cases/validations_i18n_test.rb +12 -12
  1155. data/vendor/rails/activerecord/test/cases/validations_test.rb +42 -30
  1156. data/vendor/rails/activerecord/test/fixtures/polymorphic_designs.yml +19 -0
  1157. data/vendor/rails/activerecord/test/fixtures/polymorphic_prices.yml +19 -0
  1158. data/vendor/rails/activerecord/test/fixtures/tees.yml +4 -0
  1159. data/vendor/rails/activerecord/test/fixtures/ties.yml +4 -0
  1160. data/vendor/rails/activerecord/test/models/author.rb +2 -0
  1161. data/vendor/rails/activerecord/test/models/company.rb +2 -0
  1162. data/vendor/rails/activerecord/test/models/event_author.rb +3 -0
  1163. data/vendor/rails/activerecord/test/models/pirate.rb +2 -2
  1164. data/vendor/rails/activerecord/test/models/polymorphic_design.rb +3 -0
  1165. data/vendor/rails/activerecord/test/models/polymorphic_price.rb +3 -0
  1166. data/vendor/rails/activerecord/test/models/post.rb +2 -0
  1167. data/vendor/rails/activerecord/test/models/tee.rb +4 -0
  1168. data/vendor/rails/activerecord/test/models/tie.rb +4 -0
  1169. data/vendor/rails/activerecord/test/schema/mysql_specific_schema.rb +7 -0
  1170. data/vendor/rails/activerecord/test/schema/schema.rb +16 -0
  1171. data/vendor/rails/activeresource/CHANGELOG +3 -4
  1172. data/vendor/rails/activeresource/MIT-LICENSE +20 -0
  1173. data/vendor/rails/activeresource/Rakefile +1 -1
  1174. data/vendor/rails/activeresource/lib/active_resource/http_mock.rb +104 -9
  1175. data/vendor/rails/activeresource/lib/active_resource/version.rb +1 -1
  1176. data/vendor/rails/activeresource/test/http_mock_test.rb +155 -0
  1177. data/vendor/rails/activesupport/CHANGELOG +16 -0
  1178. data/vendor/rails/activesupport/MIT-LICENSE +20 -0
  1179. data/vendor/rails/activesupport/Rakefile +175 -0
  1180. data/vendor/rails/activesupport/bin/generate_tables +147 -0
  1181. data/vendor/rails/activesupport/install.rb +30 -0
  1182. data/vendor/rails/activesupport/lib/active_support/basic_object.rb +7 -10
  1183. data/vendor/rails/activesupport/lib/active_support/buffered_logger.rb +2 -0
  1184. data/vendor/rails/activesupport/lib/active_support/core_ext/array/grouping.rb +1 -1
  1185. data/vendor/rails/activesupport/lib/active_support/core_ext/array/random_access.rb +24 -4
  1186. data/vendor/rails/activesupport/lib/active_support/core_ext/class.rb +1 -0
  1187. data/vendor/rails/activesupport/lib/active_support/core_ext/class/attribute.rb +67 -0
  1188. data/vendor/rails/activesupport/lib/active_support/core_ext/enumerable.rb +1 -1
  1189. data/vendor/rails/activesupport/lib/active_support/core_ext/kernel/singleton_class.rb +13 -0
  1190. data/vendor/rails/activesupport/lib/active_support/core_ext/module/remove_method.rb +6 -0
  1191. data/vendor/rails/activesupport/lib/active_support/core_ext/object/misc.rb +3 -0
  1192. data/vendor/rails/activesupport/lib/active_support/core_ext/range/blockless_step.rb +1 -1
  1193. data/vendor/rails/activesupport/lib/active_support/core_ext/string/output_safety.rb +0 -11
  1194. data/vendor/rails/activesupport/lib/active_support/dependencies.rb +38 -12
  1195. data/vendor/rails/activesupport/lib/active_support/deprecation.rb +7 -0
  1196. data/vendor/rails/activesupport/lib/active_support/json/backends/yajl.rb +1 -1
  1197. data/vendor/rails/activesupport/lib/active_support/locale/en.yml +4 -1
  1198. data/vendor/rails/activesupport/lib/active_support/memoizable.rb +2 -0
  1199. data/vendor/rails/activesupport/lib/active_support/ordered_hash.rb +6 -0
  1200. data/vendor/rails/activesupport/lib/active_support/testing/performance.rb +1 -1
  1201. data/vendor/rails/activesupport/lib/active_support/testing/setup_and_teardown.rb +2 -2
  1202. data/vendor/rails/activesupport/lib/active_support/values/time_zone.rb +5 -1
  1203. data/vendor/rails/activesupport/lib/active_support/vendor.rb +2 -2
  1204. data/vendor/rails/activesupport/lib/active_support/vendor/{i18n-0.3.7 → i18n-0.4.1}/i18n.rb +92 -105
  1205. data/vendor/rails/activesupport/lib/active_support/vendor/{i18n-0.3.7 → i18n-0.4.1}/i18n/backend.rb +5 -4
  1206. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.4.1/i18n/backend/active_record.rb +61 -0
  1207. data/vendor/rails/activesupport/lib/active_support/vendor/{i18n-0.3.7 → i18n-0.4.1}/i18n/backend/active_record/missing.rb +4 -6
  1208. data/vendor/rails/activesupport/lib/active_support/vendor/{i18n-0.3.7 → i18n-0.4.1}/i18n/backend/active_record/store_procs.rb +0 -0
  1209. data/vendor/rails/activesupport/lib/active_support/vendor/{i18n-0.3.7 → i18n-0.4.1}/i18n/backend/active_record/translation.rb +8 -3
  1210. data/vendor/rails/activesupport/lib/active_support/vendor/{i18n-0.3.7 → i18n-0.4.1}/i18n/backend/base.rb +55 -84
  1211. data/vendor/rails/activesupport/lib/active_support/vendor/{i18n-0.3.7 → i18n-0.4.1}/i18n/backend/cache.rb +1 -0
  1212. data/vendor/rails/activesupport/lib/active_support/vendor/{i18n-0.3.7 → i18n-0.4.1}/i18n/backend/cascade.rb +0 -1
  1213. data/vendor/rails/activesupport/lib/active_support/vendor/{i18n-0.3.7 → i18n-0.4.1}/i18n/backend/chain.rb +3 -1
  1214. data/vendor/rails/activesupport/lib/active_support/vendor/{i18n-0.3.7 → i18n-0.4.1}/i18n/backend/cldr.rb +0 -0
  1215. data/vendor/rails/activesupport/lib/active_support/vendor/{i18n-0.3.7 → i18n-0.4.1}/i18n/backend/fallbacks.rb +0 -0
  1216. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.4.1/i18n/backend/flatten.rb +113 -0
  1217. data/vendor/rails/activesupport/lib/active_support/vendor/{i18n-0.3.7 → i18n-0.4.1}/i18n/backend/gettext.rb +0 -0
  1218. data/vendor/rails/activesupport/lib/active_support/vendor/{i18n-0.3.7 → i18n-0.4.1}/i18n/backend/interpolation_compiler.rb +8 -4
  1219. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.4.1/i18n/backend/key_value.rb +102 -0
  1220. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.4.1/i18n/backend/memoize.rb +48 -0
  1221. data/vendor/rails/activesupport/lib/active_support/vendor/{i18n-0.3.7 → i18n-0.4.1}/i18n/backend/metadata.rb +5 -13
  1222. data/vendor/rails/activesupport/lib/active_support/vendor/{i18n-0.3.7 → i18n-0.4.1}/i18n/backend/pluralization.rb +0 -0
  1223. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.4.1/i18n/backend/simple.rb +87 -0
  1224. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.4.1/i18n/backend/transliterator.rb +98 -0
  1225. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.4.1/i18n/config.rb +84 -0
  1226. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.4.1/i18n/core_ext/hash.rb +28 -0
  1227. data/vendor/rails/activesupport/lib/active_support/vendor/{i18n-0.3.7 → i18n-0.4.1}/i18n/core_ext/string/interpolate.rb +3 -4
  1228. data/vendor/rails/activesupport/lib/active_support/vendor/{i18n-0.3.7 → i18n-0.4.1}/i18n/exceptions.rb +0 -0
  1229. data/vendor/rails/activesupport/lib/active_support/vendor/{i18n-0.3.7 → i18n-0.4.1}/i18n/gettext.rb +2 -0
  1230. data/vendor/rails/activesupport/lib/active_support/vendor/{i18n-0.3.7/i18n/helpers/gettext.rb → i18n-0.4.1/i18n/gettext/helpers.rb} +2 -2
  1231. data/vendor/rails/activesupport/lib/active_support/vendor/{i18n-0.3.7 → i18n-0.4.1}/i18n/gettext/po_parser.rb +7 -7
  1232. data/vendor/rails/activesupport/lib/active_support/vendor/{i18n-0.3.7 → i18n-0.4.1}/i18n/locale.rb +0 -0
  1233. data/vendor/rails/activesupport/lib/active_support/vendor/{i18n-0.3.7 → i18n-0.4.1}/i18n/locale/fallbacks.rb +0 -0
  1234. data/vendor/rails/activesupport/lib/active_support/vendor/{i18n-0.3.7 → i18n-0.4.1}/i18n/locale/tag.rb +0 -0
  1235. data/vendor/rails/activesupport/lib/active_support/vendor/{i18n-0.3.7 → i18n-0.4.1}/i18n/locale/tag/parents.rb +0 -0
  1236. data/vendor/rails/activesupport/lib/active_support/vendor/{i18n-0.3.7 → i18n-0.4.1}/i18n/locale/tag/rfc4646.rb +0 -0
  1237. data/vendor/rails/activesupport/lib/active_support/vendor/{i18n-0.3.7 → i18n-0.4.1}/i18n/locale/tag/simple.rb +0 -0
  1238. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.4.1/i18n/version.rb +3 -0
  1239. data/vendor/rails/activesupport/lib/active_support/version.rb +1 -1
  1240. data/vendor/rails/activesupport/lib/active_support/whiny_nil.rb +1 -1
  1241. data/vendor/rails/activesupport/test/abstract_unit.rb +37 -0
  1242. data/vendor/rails/activesupport/test/autoloading_fixtures/a/b.rb +2 -0
  1243. data/vendor/rails/activesupport/test/autoloading_fixtures/a/c/d.rb +2 -0
  1244. data/vendor/rails/activesupport/test/autoloading_fixtures/a/c/e/f.rb +2 -0
  1245. data/vendor/rails/activesupport/test/autoloading_fixtures/application.rb +1 -0
  1246. data/vendor/rails/activesupport/test/autoloading_fixtures/class_folder.rb +3 -0
  1247. data/vendor/rails/activesupport/test/autoloading_fixtures/class_folder/class_folder_subclass.rb +3 -0
  1248. data/vendor/rails/activesupport/test/autoloading_fixtures/class_folder/inline_class.rb +2 -0
  1249. data/vendor/rails/activesupport/test/autoloading_fixtures/class_folder/nested_class.rb +7 -0
  1250. data/vendor/rails/activesupport/test/autoloading_fixtures/conflict.rb +1 -0
  1251. data/vendor/rails/activesupport/test/autoloading_fixtures/counting_loader.rb +5 -0
  1252. data/vendor/rails/activesupport/test/autoloading_fixtures/cross_site_dependency.rb +2 -0
  1253. data/vendor/rails/activesupport/test/autoloading_fixtures/e.rb +2 -0
  1254. data/vendor/rails/activesupport/test/autoloading_fixtures/module_folder/inline_class.rb +2 -0
  1255. data/vendor/rails/activesupport/test/autoloading_fixtures/module_folder/nested_class.rb +4 -0
  1256. data/vendor/rails/activesupport/test/autoloading_fixtures/module_folder/nested_sibling.rb +2 -0
  1257. data/vendor/rails/activesupport/test/autoloading_fixtures/module_with_custom_const_missing/a/b.rb +1 -0
  1258. data/vendor/rails/activesupport/test/autoloading_fixtures/multiple_constant_file.rb +2 -0
  1259. data/vendor/rails/activesupport/test/autoloading_fixtures/raises_name_error.rb +3 -0
  1260. data/vendor/rails/activesupport/test/autoloading_fixtures/raises_no_method_error.rb +3 -0
  1261. data/vendor/rails/activesupport/test/buffered_logger_test.rb +146 -0
  1262. data/vendor/rails/activesupport/test/caching_test.rb +355 -0
  1263. data/vendor/rails/activesupport/test/callbacks_test.rb +188 -0
  1264. data/vendor/rails/activesupport/test/clean_backtrace_test.rb +47 -0
  1265. data/vendor/rails/activesupport/test/clean_logger_test.rb +57 -0
  1266. data/vendor/rails/activesupport/test/core_ext/array_ext_test.rb +394 -0
  1267. data/vendor/rails/activesupport/test/core_ext/base64_ext_test.rb +8 -0
  1268. data/vendor/rails/activesupport/test/core_ext/bigdecimal.rb +10 -0
  1269. data/vendor/rails/activesupport/test/core_ext/blank_test.rb +21 -0
  1270. data/vendor/rails/activesupport/test/core_ext/cgi_ext_test.rb +14 -0
  1271. data/vendor/rails/activesupport/test/core_ext/class/attribute_accessor_test.rb +38 -0
  1272. data/vendor/rails/activesupport/test/core_ext/class/class_inheritable_attributes_test.rb +224 -0
  1273. data/vendor/rails/activesupport/test/core_ext/class/delegating_attributes_test.rb +115 -0
  1274. data/vendor/rails/activesupport/test/core_ext/class_test.rb +46 -0
  1275. data/vendor/rails/activesupport/test/core_ext/date_ext_test.rb +286 -0
  1276. data/vendor/rails/activesupport/test/core_ext/date_time_ext_test.rb +363 -0
  1277. data/vendor/rails/activesupport/test/core_ext/duplicable_test.rb +22 -0
  1278. data/vendor/rails/activesupport/test/core_ext/duration_test.rb +121 -0
  1279. data/vendor/rails/activesupport/test/core_ext/enumerable_test.rb +102 -0
  1280. data/vendor/rails/activesupport/test/core_ext/exception_test.rb +68 -0
  1281. data/vendor/rails/activesupport/test/core_ext/file_test.rb +67 -0
  1282. data/vendor/rails/activesupport/test/core_ext/float_ext_test.rb +25 -0
  1283. data/vendor/rails/activesupport/test/core_ext/hash_ext_test.rb +1016 -0
  1284. data/vendor/rails/activesupport/test/core_ext/integer_ext_test.rb +37 -0
  1285. data/vendor/rails/activesupport/test/core_ext/kernel_test.rb +43 -0
  1286. data/vendor/rails/activesupport/test/core_ext/load_error_test.rb +16 -0
  1287. data/vendor/rails/activesupport/test/core_ext/module/attr_accessor_with_default_test.rb +30 -0
  1288. data/vendor/rails/activesupport/test/core_ext/module/attr_internal_test.rb +52 -0
  1289. data/vendor/rails/activesupport/test/core_ext/module/attribute_accessor_test.rb +39 -0
  1290. data/vendor/rails/activesupport/test/core_ext/module/attribute_aliasing_test.rb +58 -0
  1291. data/vendor/rails/activesupport/test/core_ext/module/model_naming_test.rb +27 -0
  1292. data/vendor/rails/activesupport/test/core_ext/module/synchronization_test.rb +86 -0
  1293. data/vendor/rails/activesupport/test/core_ext/module_test.rb +363 -0
  1294. data/vendor/rails/activesupport/test/core_ext/name_error_test.rb +20 -0
  1295. data/vendor/rails/activesupport/test/core_ext/numeric_ext_test.rb +168 -0
  1296. data/vendor/rails/activesupport/test/core_ext/object_and_class_ext_test.rb +294 -0
  1297. data/vendor/rails/activesupport/test/core_ext/object_ext_test.rb +8 -0
  1298. data/vendor/rails/activesupport/test/core_ext/pathname_test.rb +9 -0
  1299. data/vendor/rails/activesupport/test/core_ext/proc_test.rb +11 -0
  1300. data/vendor/rails/activesupport/test/core_ext/range_ext_test.rb +63 -0
  1301. data/vendor/rails/activesupport/test/core_ext/string_ext_test.rb +402 -0
  1302. data/vendor/rails/activesupport/test/core_ext/symbol_test.rb +9 -0
  1303. data/vendor/rails/activesupport/test/core_ext/time_ext_test.rb +771 -0
  1304. data/vendor/rails/activesupport/test/core_ext/time_with_zone_test.rb +851 -0
  1305. data/vendor/rails/activesupport/test/core_ext/uri_ext_test.rb +12 -0
  1306. data/vendor/rails/activesupport/test/dependencies/check_warnings.rb +2 -0
  1307. data/vendor/rails/activesupport/test/dependencies/conflict.rb +1 -0
  1308. data/vendor/rails/activesupport/test/dependencies/cross_site_depender.rb +3 -0
  1309. data/vendor/rails/activesupport/test/dependencies/mutual_one.rb +4 -0
  1310. data/vendor/rails/activesupport/test/dependencies/mutual_two.rb +4 -0
  1311. data/vendor/rails/activesupport/test/dependencies/raises_exception.rb +3 -0
  1312. data/vendor/rails/activesupport/test/dependencies/requires_nonexistent0.rb +1 -0
  1313. data/vendor/rails/activesupport/test/dependencies/requires_nonexistent1.rb +1 -0
  1314. data/vendor/rails/activesupport/test/dependencies/service_one.rb +5 -0
  1315. data/vendor/rails/activesupport/test/dependencies/service_two.rb +2 -0
  1316. data/vendor/rails/activesupport/test/dependencies_test.rb +789 -0
  1317. data/vendor/rails/activesupport/test/deprecation/proxy_wrappers_test.rb +22 -0
  1318. data/vendor/rails/activesupport/test/deprecation_test.rb +167 -0
  1319. data/vendor/rails/activesupport/test/empty_bool.rb +7 -0
  1320. data/vendor/rails/activesupport/test/flush_cache_on_private_memoization_test.rb +43 -0
  1321. data/vendor/rails/activesupport/test/gzip_test.rb +7 -0
  1322. data/vendor/rails/activesupport/test/i18n_test.rb +98 -0
  1323. data/vendor/rails/activesupport/test/inflector_test.rb +298 -0
  1324. data/vendor/rails/activesupport/test/inflector_test_cases.rb +262 -0
  1325. data/vendor/rails/activesupport/test/json/decoding_test.rb +79 -0
  1326. data/vendor/rails/activesupport/test/json/encoding_test.rb +162 -0
  1327. data/vendor/rails/activesupport/test/memoizable_test.rb +261 -0
  1328. data/vendor/rails/activesupport/test/message_encryptor_test.rb +55 -0
  1329. data/vendor/rails/activesupport/test/message_verifier_test.rb +31 -0
  1330. data/vendor/rails/activesupport/test/multibyte_chars_test.rb +606 -0
  1331. data/vendor/rails/activesupport/test/multibyte_conformance.rb +129 -0
  1332. data/vendor/rails/activesupport/test/multibyte_test_helpers.rb +19 -0
  1333. data/vendor/rails/activesupport/test/multibyte_unicode_database_test.rb +22 -0
  1334. data/vendor/rails/activesupport/test/multibyte_utils_test.rb +137 -0
  1335. data/vendor/rails/activesupport/test/option_merger_test.rb +85 -0
  1336. data/vendor/rails/activesupport/test/ordered_hash_test.rb +237 -0
  1337. data/vendor/rails/activesupport/test/ordered_options_test.rb +53 -0
  1338. data/vendor/rails/activesupport/test/rescuable_test.rb +75 -0
  1339. data/vendor/rails/activesupport/test/safe_buffer_test.rb +36 -0
  1340. data/vendor/rails/activesupport/test/secure_random_test.rb +19 -0
  1341. data/vendor/rails/activesupport/test/string_inquirer_test.rb +15 -0
  1342. data/vendor/rails/activesupport/test/test_case_test.rb +57 -0
  1343. data/vendor/rails/activesupport/test/test_test.rb +188 -0
  1344. data/vendor/rails/activesupport/test/time_zone_test.rb +285 -0
  1345. data/vendor/rails/activesupport/test/whiny_nil_test.rb +50 -0
  1346. data/vendor/rails/activesupport/test/xml_mini/jdom_engine_test.rb +153 -0
  1347. data/vendor/rails/activesupport/test/xml_mini/libxml_engine_test.rb +204 -0
  1348. data/vendor/rails/activesupport/test/xml_mini/libxmlsax_engine_test.rb +181 -0
  1349. data/vendor/rails/activesupport/test/xml_mini/nokogiri_engine_test.rb +204 -0
  1350. data/vendor/rails/activesupport/test/xml_mini/nokogirisax_engine_test.rb +217 -0
  1351. data/vendor/rails/activesupport/test/xml_mini/rexml_engine_test.rb +15 -0
  1352. data/vendor/rails/railties/CHANGELOG +7 -2
  1353. data/vendor/rails/railties/Rakefile +6 -7
  1354. data/vendor/rails/railties/builtin/rails_info/rails/info.rb +1 -1
  1355. data/vendor/rails/railties/environments/boot.rb +6 -2
  1356. data/vendor/rails/railties/environments/environment.rb +1 -1
  1357. data/vendor/rails/railties/guides/rails_guides.rb +13 -24
  1358. data/vendor/rails/railties/guides/rails_guides/generator.rb +169 -49
  1359. data/vendor/rails/railties/guides/rails_guides/indexer.rb +24 -11
  1360. data/vendor/rails/railties/guides/rails_guides/levenshtein.rb +31 -0
  1361. data/vendor/rails/railties/guides/source/action_mailer_basics.textile +29 -12
  1362. data/vendor/rails/railties/guides/source/{credits.erb.textile → credits.html.erb} +4 -4
  1363. data/vendor/rails/railties/guides/source/{index.erb.textile → index.html.erb} +13 -12
  1364. data/vendor/rails/railties/guides/source/plugins.textile +1 -1
  1365. data/vendor/rails/railties/guides/source/security.textile +1 -1
  1366. data/vendor/rails/railties/lib/initializer.rb +44 -20
  1367. data/vendor/rails/railties/lib/rails/gem_dependency.rb +4 -2
  1368. data/vendor/rails/railties/lib/rails/plugin.rb +1 -1
  1369. data/vendor/rails/railties/lib/rails/plugin/loader.rb +3 -3
  1370. data/vendor/rails/railties/lib/rails/vendor_gem_source_index.rb +2 -2
  1371. data/vendor/rails/railties/lib/rails/version.rb +1 -1
  1372. data/vendor/rails/railties/lib/rails_generator/generators/applications/app/scm/git.rb +18 -0
  1373. data/vendor/rails/railties/lib/rails_generator/generators/components/migration/migration_generator.rb +1 -1
  1374. data/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/test_helper.rb +2 -1
  1375. data/vendor/rails/railties/lib/tasks/databases.rake +9 -9
  1376. data/vendor/rails/railties/lib/tasks/tmp.rake +37 -0
  1377. data/vendor/rails/railties/test/abstract_unit.rb +27 -0
  1378. data/vendor/rails/railties/test/backtrace_cleaner_test.rb +61 -0
  1379. data/vendor/rails/railties/test/boot_test.rb +178 -0
  1380. data/vendor/rails/railties/test/console_app_test.rb +42 -0
  1381. data/vendor/rails/railties/test/fcgi_dispatcher_test.rb +266 -0
  1382. data/vendor/rails/railties/test/fixtures/about_yml_plugins/bad_about_yml/about.yml +1 -0
  1383. data/vendor/rails/railties/test/fixtures/about_yml_plugins/bad_about_yml/init.rb +1 -0
  1384. data/vendor/rails/railties/test/fixtures/about_yml_plugins/plugin_without_about_yml/init.rb +1 -0
  1385. data/vendor/rails/railties/test/fixtures/eager/zoo.rb +3 -0
  1386. data/vendor/rails/railties/test/fixtures/eager/zoo/reptile_house.rb +2 -0
  1387. data/vendor/rails/railties/test/fixtures/environment_with_constant.rb +1 -0
  1388. data/vendor/rails/railties/test/fixtures/lib/generators/missing_class/missing_class_generator.rb +0 -0
  1389. data/vendor/rails/railties/test/fixtures/lib/generators/working/working_generator.rb +2 -0
  1390. data/vendor/rails/railties/test/fixtures/metal/multiplemetals/app/metal/metal_a.rb +5 -0
  1391. data/vendor/rails/railties/test/fixtures/metal/multiplemetals/app/metal/metal_b.rb +5 -0
  1392. data/vendor/rails/railties/test/fixtures/metal/pluralmetal/app/metal/legacy_routes.rb +5 -0
  1393. data/vendor/rails/railties/test/fixtures/metal/singlemetal/app/metal/foo_metal.rb +5 -0
  1394. data/vendor/rails/railties/test/fixtures/metal/subfolders/app/metal/Folder/metal_a.rb +7 -0
  1395. data/vendor/rails/railties/test/fixtures/metal/subfolders/app/metal/Folder/metal_b.rb +7 -0
  1396. data/vendor/rails/railties/test/fixtures/plugins/alternate/a/generators/a_generator/a_generator.rb +4 -0
  1397. data/vendor/rails/railties/test/fixtures/plugins/default/gemlike/init.rb +1 -0
  1398. data/vendor/rails/railties/test/fixtures/plugins/default/gemlike/lib/gemlike.rb +2 -0
  1399. data/vendor/rails/railties/test/fixtures/plugins/default/gemlike/rails/init.rb +7 -0
  1400. data/vendor/rails/railties/test/fixtures/plugins/default/plugin_with_no_lib_dir/init.rb +0 -0
  1401. data/vendor/rails/railties/test/fixtures/plugins/default/stubby/about.yml +2 -0
  1402. data/vendor/rails/railties/test/fixtures/plugins/default/stubby/generators/stubby_generator/stubby_generator.rb +4 -0
  1403. data/vendor/rails/railties/test/fixtures/plugins/default/stubby/init.rb +7 -0
  1404. data/vendor/rails/railties/test/fixtures/plugins/default/stubby/lib/stubby_mixin.rb +2 -0
  1405. data/vendor/rails/railties/test/fixtures/plugins/engines/engine/app/controllers/engine_controller.rb +2 -0
  1406. data/vendor/rails/railties/test/fixtures/plugins/engines/engine/app/metal/engine_metal.rb +9 -0
  1407. data/vendor/rails/railties/test/fixtures/plugins/engines/engine/app/models/engine_model.rb +2 -0
  1408. data/vendor/rails/railties/test/fixtures/plugins/engines/engine/config/locales/en.yml +2 -0
  1409. data/vendor/rails/railties/test/fixtures/plugins/engines/engine/config/routes.rb +3 -0
  1410. data/vendor/rails/railties/test/fixtures/plugins/engines/engine/init.rb +3 -0
  1411. data/vendor/rails/railties/test/fixtures/public/foo/bar.html +1 -0
  1412. data/vendor/rails/railties/test/fixtures/public/foo/index.html +1 -0
  1413. data/vendor/rails/railties/test/fixtures/public/index.html +1 -0
  1414. data/vendor/rails/railties/test/gem_dependency_test.rb +227 -0
  1415. data/vendor/rails/railties/test/generator_lookup_test.rb +40 -0
  1416. data/vendor/rails/railties/test/generators/generated_attribute_test.rb +38 -0
  1417. data/vendor/rails/railties/test/generators/generator_test_helper.rb +322 -0
  1418. data/vendor/rails/railties/test/generators/rails_controller_generator_test.rb +44 -0
  1419. data/vendor/rails/railties/test/generators/rails_helper_generator_test.rb +36 -0
  1420. data/vendor/rails/railties/test/generators/rails_mailer_generator_test.rb +29 -0
  1421. data/vendor/rails/railties/test/generators/rails_model_generator_test.rb +96 -0
  1422. data/vendor/rails/railties/test/generators/rails_resource_generator_test.rb +29 -0
  1423. data/vendor/rails/railties/test/generators/rails_scaffold_generator_test.rb +151 -0
  1424. data/vendor/rails/railties/test/generators/rails_template_runner_test.rb +216 -0
  1425. data/vendor/rails/railties/test/initializer_test.rb +437 -0
  1426. data/vendor/rails/railties/test/metal_test.rb +72 -0
  1427. data/vendor/rails/railties/test/mocks/routes.rb +6 -0
  1428. data/vendor/rails/railties/test/plugin_loader_test.rb +172 -0
  1429. data/vendor/rails/railties/test/plugin_locator_test.rb +62 -0
  1430. data/vendor/rails/railties/test/plugin_test.rb +162 -0
  1431. data/vendor/rails/railties/test/plugin_test_helper.rb +29 -0
  1432. data/vendor/rails/railties/test/rack_static_test.rb +47 -0
  1433. data/vendor/rails/railties/test/rails_generator_test.rb +145 -0
  1434. data/vendor/rails/railties/test/rails_info_controller_test.rb +52 -0
  1435. data/vendor/rails/railties/test/rails_info_test.rb +99 -0
  1436. data/vendor/rails/railties/test/secret_key_generation_test.rb +38 -0
  1437. data/vendor/rails/railties/test/vendor/gems/dummy-gem-a-0.4.0/lib/dummy-gem-a.rb +1 -0
  1438. data/vendor/rails/railties/test/vendor/gems/dummy-gem-b-0.4.0/lib/dummy-gem-b.rb +1 -0
  1439. data/vendor/rails/railties/test/vendor/gems/dummy-gem-b-0.6.0/lib/dummy-gem-b.rb +1 -0
  1440. data/vendor/rails/railties/test/vendor/gems/dummy-gem-c-0.4.0/lib/dummy-gem-c.rb +1 -0
  1441. data/vendor/rails/railties/test/vendor/gems/dummy-gem-c-0.6.0/lib/dummy-gem-c.rb +1 -0
  1442. data/vendor/rails/railties/test/vendor/gems/dummy-gem-d-1.0.0/lib/dummy-gem-d.rb +1 -0
  1443. data/vendor/rails/railties/test/vendor/gems/dummy-gem-e-1.0.0/lib/dummy-gem-e.rb +1 -0
  1444. data/vendor/rails/railties/test/vendor/gems/dummy-gem-f-1.0.0/lib/dummy-gem-f.rb +1 -0
  1445. data/vendor/rails/railties/test/vendor/gems/dummy-gem-g-1.0.0/lib/dummy-gem-g.rb +1 -0
  1446. data/vendor/rails/railties/test/vendor/gems/dummy-gem-h-1.0.0/lib/dummy-gem-h.rb +1 -0
  1447. data/vendor/rails/railties/test/vendor/gems/dummy-gem-i-1.0.0/ext/dummy-gem-i/Makefile +0 -0
  1448. data/vendor/rails/railties/test/vendor/gems/dummy-gem-i-1.0.0/lib/dummy-gem-i.rb +1 -0
  1449. data/vendor/rails/railties/test/vendor/gems/dummy-gem-j-1.0.0/lib/dummy-gem-j.rb +1 -0
  1450. data/vendor/rails/railties/test/vendor/gems/dummy-gem-k-1.0.0/lib/dummy-gem-k.rb +1 -0
  1451. data/vendor/rails/railties/test/vendor/gems/dummy-gem-l-1.0.0-x86-mswin32/lib/dummy-gem-l.rb +1 -0
  1452. metadata +1156 -125
  1453. data/app/controllers/admin/export_controller.rb +0 -5
  1454. data/app/helpers/admin/abstract_model_helper.rb +0 -2
  1455. data/app/models/radiant/exporter.rb +0 -11
  1456. data/db/templates/roasters.yml +0 -1210
  1457. data/db/templates/simple-blog.yml +0 -197
  1458. data/db/templates/styled-blog.yml +0 -472
  1459. data/lib/radiant/legacy_routes.rb +0 -72
  1460. data/public/images/admin/buttons_background.png +0 -0
  1461. data/public/images/admin/login_shadow.png +0 -0
  1462. data/public/images/admin/navigation_background.gif +0 -0
  1463. data/public/images/admin/navigation_secondary_background.png +0 -0
  1464. data/public/images/admin/navigation_shadow.png +0 -0
  1465. data/public/images/admin/navigation_tabs.png +0 -0
  1466. data/public/images/admin/new_homepage.png +0 -0
  1467. data/public/images/admin/new_layout.png +0 -0
  1468. data/public/images/admin/new_snippet.png +0 -0
  1469. data/public/images/admin/new_user.png +0 -0
  1470. data/public/images/admin/shadow.png +0 -0
  1471. data/public/images/admin/shadow_grey.png +0 -0
  1472. data/public/images/admin/spacer.gif +0 -0
  1473. data/public/images/admin/vertical_tan_gradient.png +0 -0
  1474. data/public/images/admin/view_site.png +0 -0
  1475. data/public/stylesheets/sass/admin/modules/_grid.sass +0 -56
  1476. data/public/stylesheets/sass/admin/modules/_opacity.sass +0 -7
  1477. data/public/stylesheets/sass/admin/modules/_rounded.sass +0 -41
  1478. data/public/stylesheets/sass/admin/modules/_shadow.sass +0 -9
  1479. data/public/stylesheets/sass/admin/partials/_reset.sass +0 -36
  1480. data/rerun.txt +0 -1
  1481. data/spec/helpers/admin/abstract_model_helper_spec.rb +0 -4
  1482. data/spec/lib/radiant/legacy_routes_spec.rb +0 -14
  1483. data/spec/models/radiant/exporter_spec.rb +0 -25
  1484. data/vendor/extensions/archive/test/fixtures/pages.yml +0 -397
  1485. data/vendor/extensions/archive/test/functional/archive_extension_test.rb +0 -16
  1486. data/vendor/extensions/archive/test/helpers/archive_index_test_helper.rb +0 -37
  1487. data/vendor/extensions/archive/test/test_helper.rb +0 -26
  1488. data/vendor/extensions/archive/test/unit/archive_day_index_page_test.rb +0 -22
  1489. data/vendor/extensions/archive/test/unit/archive_month_index_page_test.rb +0 -22
  1490. data/vendor/extensions/archive/test/unit/archive_page_test.rb +0 -40
  1491. data/vendor/extensions/archive/test/unit/archive_year_index_page_test.rb +0 -22
  1492. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/only_first_quoted.html +0 -8
  1493. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/only_first_quoted.text +0 -4
  1494. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/filtered_html.html +0 -1
  1495. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/filtered_html.options +0 -1
  1496. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/filtered_html.text +0 -1
  1497. data/vendor/plugins/haml/test/sass/templates/bork.sass +0 -2
  1498. data/vendor/rails/activerecord/examples/performance.sql +0 -85
  1499. data/vendor/rails/activerecord/test/cases/encoding_test.rb +0 -6
  1500. data/vendor/rails/activerecord/test/fixtures/fixture_database.sqlite +0 -0
  1501. data/vendor/rails/activerecord/test/fixtures/fixture_database.sqlite3 +0 -0
  1502. data/vendor/rails/activerecord/test/fixtures/fixture_database_2.sqlite +0 -0
  1503. data/vendor/rails/activerecord/test/fixtures/fixture_database_2.sqlite3 +0 -0
  1504. data/vendor/rails/activeresource/test/debug.log +0 -80350
  1505. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/active_record.rb +0 -66
  1506. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/fast.rb +0 -69
  1507. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/helpers.rb +0 -68
  1508. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/links.rb +0 -34
  1509. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/simple.rb +0 -22
  1510. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/core_ext/hash/except.rb +0 -8
  1511. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/core_ext/hash/slice.rb +0 -8
  1512. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/core_ext/object/meta_class.rb +0 -5
  1513. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/helpers.rb +0 -5
  1514. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/version.rb +0 -3
@@ -1,23 +1,29 @@
1
1
  #!/usr/bin/env ruby
2
+ # -*- coding: utf-8 -*-
2
3
  require File.dirname(__FILE__) + '/../test_helper'
3
4
  require 'sass/engine'
4
5
  require 'stringio'
5
6
 
7
+ module Sass::Script::Functions::UserFunctions
8
+ def option(name)
9
+ Sass::Script::String.new(@options[name.value.to_sym].to_s)
10
+ end
11
+ end
12
+
6
13
  class SassEngineTest < Test::Unit::TestCase
7
14
  # A map of erroneous Sass documents to the error messages they should produce.
8
15
  # The error messages may be arrays;
9
16
  # if so, the second element should be the line number that should be reported for the error.
10
17
  # If this isn't provided, the tests will assume the line number should be the last line of the document.
11
18
  EXCEPTION_MAP = {
12
- "!a = 1 + " => 'Expected expression, was end of text.',
13
- "!a = 1 + 2 +" => 'Expected expression, was end of text.',
14
- "!a = 1 + 2 + %" => 'Expected expression, was mod token.',
15
- "!a = foo(\"bar\"" => 'Expected rparen token, was end of text.',
16
- "!a = 1 }" => 'Unexpected end_interpolation token.',
17
- "!a = 1 }foo\"" => 'Unexpected end_interpolation token.',
19
+ "$a: 1 + " => 'Invalid CSS after "1 +": expected expression (e.g. 1px, bold), was ""',
20
+ "$a: 1 + 2 +" => 'Invalid CSS after "1 + 2 +": expected expression (e.g. 1px, bold), was ""',
21
+ "$a: 1 + 2 + %" => 'Invalid CSS after "1 + 2 + ": expected expression (e.g. 1px, bold), was "%"',
22
+ "$a: foo(\"bar\"" => 'Invalid CSS after "foo("bar"": expected ")", was ""',
23
+ "$a: 1 }" => 'Invalid CSS after "1 ": expected expression (e.g. 1px, bold), was "}"',
24
+ "$a: 1 }foo\"" => 'Invalid CSS after "1 ": expected expression (e.g. 1px, bold), was "}foo""',
18
25
  ":" => 'Invalid property: ":".',
19
26
  ": a" => 'Invalid property: ": a".',
20
- ":= a" => 'Invalid property: ":= a".',
21
27
  "a\n :b" => <<MSG,
22
28
  Invalid property: ":b" (no value).
23
29
  If ":b" should be a selector, use "\\:b" instead.
@@ -25,36 +31,34 @@ MSG
25
31
  "a\n b:" => 'Invalid property: "b:" (no value).',
26
32
  "a\n :b: c" => 'Invalid property: ":b: c".',
27
33
  "a\n :b:c d" => 'Invalid property: ":b:c d".',
28
- "a\n :b=c d" => 'Invalid property: ":b=c d".',
29
- "a\n :b c;" => 'Invalid property: ":b c;" (no ";" required at end-of-line).',
30
- "a\n b: c;" => 'Invalid property: "b: c;" (no ";" required at end-of-line).',
31
- "a\n b : c" => 'Invalid property: "b : c".',
32
- "a\n b=c: d" => 'Invalid property: "b=c: d".',
34
+ "a\n :b c;" => 'Invalid CSS after "c": expected expression (e.g. 1px, bold), was ";"',
35
+ "a\n b: c;" => 'Invalid CSS after "c": expected expression (e.g. 1px, bold), was ";"',
36
+ ".foo ^bar\n a: b" => ['Invalid CSS after ".foo ": expected selector, was "^bar"', 1],
37
+ "a\n @extend .foo ^bar" => 'Invalid CSS after ".foo ": expected selector, was "^bar"',
38
+ "a: b" => 'Properties aren\'t allowed at the root of a document.',
33
39
  ":a b" => 'Properties aren\'t allowed at the root of a document.',
34
- "a:" => 'Properties aren\'t allowed at the root of a document.',
35
- ":a" => <<MSG,
36
- Properties aren't allowed at the root of a document.
37
- If ":a" should be a selector, use "\\:a" instead.
38
- MSG
39
40
  "!" => 'Invalid variable: "!".',
40
- "!a" => 'Invalid variable: "!a".',
41
+ "$a" => 'Invalid variable: "$a".',
41
42
  "! a" => 'Invalid variable: "! a".',
42
- "!a b" => 'Invalid variable: "!a b".',
43
- "!a = 1b + 2c" => "Incompatible units: 'c' and 'b'.",
44
- "!a = 1b < 2c" => "Incompatible units: 'c' and 'b'.",
45
- "!a = 1b > 2c" => "Incompatible units: 'c' and 'b'.",
46
- "!a = 1b <= 2c" => "Incompatible units: 'c' and 'b'.",
47
- "!a = 1b >= 2c" => "Incompatible units: 'c' and 'b'.",
48
- "a\n :b= 1b * 2c" => "2b*c isn't a valid CSS value.",
49
- "a\n :b= 1b % 2c" => "Cannot modulo by a number with units: 2c.",
50
- "!a = 2px + #ccc" => "Cannot add a number with units (2px) to a color (#cccccc).",
51
- "!a = #ccc + 2px" => "Cannot add a number with units (2px) to a color (#cccccc).",
43
+ "$a b" => 'Invalid variable: "$a b".',
44
+ "$a: 1b + 2c" => "Incompatible units: 'c' and 'b'.",
45
+ "$a: 1b < 2c" => "Incompatible units: 'c' and 'b'.",
46
+ "$a: 1b > 2c" => "Incompatible units: 'c' and 'b'.",
47
+ "$a: 1b <= 2c" => "Incompatible units: 'c' and 'b'.",
48
+ "$a: 1b >= 2c" => "Incompatible units: 'c' and 'b'.",
49
+ "a\n b: 1b * 2c" => "2b*c isn't a valid CSS value.",
50
+ "a\n b: 1b % 2c" => "Cannot modulo by a number with units: 2c.",
51
+ "$a: 2px + #ccc" => "Cannot add a number with units (2px) to a color (#cccccc).",
52
+ "$a: #ccc + 2px" => "Cannot add a number with units (2px) to a color (#cccccc).",
52
53
  "& a\n :b c" => ["Base-level rules cannot contain the parent-selector-referencing character '&'.", 1],
53
54
  "a\n :b\n c" => "Illegal nesting: Only properties may be nested beneath properties.",
54
55
  "a,\n :b c" => ["Rules can\'t end in commas.", 1],
55
56
  "a," => "Rules can\'t end in commas.",
56
- "a,\n!b = 1" => ["Rules can\'t end in commas.", 1],
57
- "!a = b\n :c d\n" => "Illegal nesting: Nothing may be nested beneath variable declarations.",
57
+ "a,\n$b: 1" => ["Rules can\'t end in commas.", 1],
58
+ "$a: b\n :c d\n" => "Illegal nesting: Nothing may be nested beneath variable declarations.",
59
+ "@import foo.sass" => "File to import not found or unreadable: foo.sass.",
60
+ "a,\n$b: 1" => ["Rules can\'t end in commas.", 1],
61
+ "$a: b\n :c d\n" => "Illegal nesting: Nothing may be nested beneath variable declarations.",
58
62
  "@import foo.sass" => <<MSG,
59
63
  File to import not found or unreadable: foo.sass.
60
64
  Load paths:
@@ -64,8 +68,10 @@ MSG
64
68
  "@import templates/basic\n foo" => "Illegal nesting: Nothing may be nested beneath import directives.",
65
69
  "foo\n @import templates/basic" => "Import directives may only be used at the root of a document.",
66
70
  "foo\n @import #{File.dirname(__FILE__)}/templates/basic" => "Import directives may only be used at the root of a document.",
67
- %Q{!foo = "bar" "baz" !} => %Q{Syntax error in '"bar" "baz" !' at character 20.},
71
+ '$foo: "bar" "baz" !' => %Q{Invalid CSS after ""bar" "baz" ": expected expression (e.g. 1px, bold), was "!"},
68
72
  "=foo\n :color red\n.bar\n +bang" => "Undefined mixin 'bang'.",
73
+ "=foo\n :color red\n.bar\n +bang_bop" => "Undefined mixin 'bang_bop'.",
74
+ "=foo\n :color red\n.bar\n +bang-bop" => "Undefined mixin 'bang-bop'.",
69
75
  ".bar\n =foo\n :color red\n" => ["Mixins may only be defined at the root of a document.", 2],
70
76
  "=foo\n :color red\n.bar\n +foo\n :color red" => "Illegal nesting: Nothing may be nested beneath mixin directives.",
71
77
  " a\n b: c" => ["Indenting at the beginning of the document is illegal.", 1],
@@ -78,29 +84,35 @@ MSG
78
84
  "a\n b: c\na\n d: e" => ["The line was indented 2 levels deeper than the previous line.", 4],
79
85
  "a\n b: c\n a\n d: e" => ["The line was indented 3 levels deeper than the previous line.", 4],
80
86
  "a\n \tb: c" => ["Indentation can't use both tabs and spaces.", 2],
81
- "=a(" => 'Expected rparen token, was end of text.',
82
- "=a(b)" => 'Expected rparen token, was ident token.',
83
- "=a(,)" => "Expected rparen token, was comma token.",
84
- "=a(!)" => "Syntax error in '(!)' at character 4.",
85
- "=a(!foo bar)" => "Expected rparen token, was ident token.",
87
+ "=a(" => 'Invalid CSS after "(": expected variable (e.g. $foo), was ""',
88
+ "=a(b)" => 'Invalid CSS after "(": expected variable (e.g. $foo), was "b)"',
89
+ "=a(,)" => 'Invalid CSS after "(": expected variable (e.g. $foo), was ",)"',
90
+ "=a($)" => 'Invalid CSS after "(": expected variable (e.g. $foo), was "$)"',
91
+ "=a($foo bar)" => 'Invalid CSS after "($foo ": expected ")", was "bar)"',
86
92
  "=foo\n bar: baz\n+foo" => ["Properties aren't allowed at the root of a document.", 2],
87
- "a-\#{!b\n c: d" => ["Expected end_interpolation token, was end of text.", 1],
88
- "=a(!b = 1, !c)" => "Required argument !c must come before any optional arguments.",
89
- "=a(!b = 1)\n :a= !b\ndiv\n +a(1,2)" => "Mixin a takes 1 argument but 2 were passed.",
90
- "=a(!b)\n :a= !b\ndiv\n +a" => "Mixin a is missing parameter !b.",
93
+ "a-\#{$b\n c: d" => ['Invalid CSS after "a-#{$b": expected "}", was ""', 1],
94
+ "=a($b = 1, $c)" => "Required argument $c must come before any optional arguments.",
95
+ "=a($b = 1)\n a: $b\ndiv\n +a(1,2)" => "Mixin a takes 1 argument but 2 were passed.",
96
+ "=a($b)\n a: $b\ndiv\n +a" => "Mixin a is missing parameter $b.",
91
97
  "@else\n a\n b: c" => ["@else must come after @if.", 1],
92
98
  "@if false\n@else foo" => "Invalid else directive '@else foo': expected 'if <expr>'.",
93
99
  "@if false\n@else if " => "Invalid else directive '@else if': expected 'if <expr>'.",
94
- "a\n !b = 12\nc\n d = !b" => 'Undefined variable: "!b".',
95
- "=foo\n !b = 12\nc\n +foo\n d = !b" => 'Undefined variable: "!b".',
96
- '@for !a from "foo" to 1' => '"foo" is not an integer.',
97
- '@for !a from 1 to "2"' => '"2" is not an integer.',
98
- '@for !a from 1 to "foo"' => '"foo" is not an integer.',
99
- '@for !a from 1 to 1.232323' => '1.232 is not an integer.',
100
- '@for !a from 1px to 3em' => "Incompatible units: 'em' and 'px'.",
100
+ "a\n !b: 12\nc\n d: !b" => 'Undefined variable: "$b".',
101
+ "a\n $b: 12\nc\n d: $b" => 'Undefined variable: "$b".',
102
+ "=foo\n $b: 12\nc\n +foo\n d: $b" => 'Undefined variable: "$b".',
103
+ "c\n d: $b-foo" => 'Undefined variable: "$b-foo".',
104
+ "c\n d: $b_foo" => 'Undefined variable: "$b_foo".',
105
+ '@for $a from "foo" to 1' => '"foo" is not an integer.',
106
+ '@for $a from 1 to "2"' => '"2" is not an integer.',
107
+ '@for $a from 1 to "foo"' => '"foo" is not an integer.',
108
+ '@for $a from 1 to 1.232323' => '1.232 is not an integer.',
109
+ '@for $a from 1px to 3em' => "Incompatible units: 'em' and 'px'.",
101
110
  '@if' => "Invalid if directive '@if': expected expression.",
102
111
  '@while' => "Invalid while directive '@while': expected expression.",
103
112
  '@debug' => "Invalid debug directive '@debug': expected expression.",
113
+ %Q{@debug "a message"\n "nested message"} => "Illegal nesting: Nothing may be nested beneath debug directives.",
114
+ '@warn' => "Invalid warn directive '@warn': expected expression.",
115
+ %Q{@warn "a message"\n "nested message"} => "Illegal nesting: Nothing may be nested beneath warn directives.",
104
116
  "/* foo\n bar\n baz" => "Inconsistent indentation: previous line was indented by 4 spaces, but this line was indented by 2 spaces.",
105
117
 
106
118
  # Regression tests
@@ -194,21 +206,297 @@ SASS
194
206
  end
195
207
 
196
208
  def test_imported_exception
197
- [nil, 2].each do |i|
209
+ [1, 2, 3, 4].each do |i|
198
210
  begin
199
211
  Sass::Engine.new("@import bork#{i}", :load_paths => [File.dirname(__FILE__) + '/templates/']).render
200
212
  rescue Sass::SyntaxError => err
201
213
  assert_equal(2, err.sass_line)
202
- assert_match(/bork#{i}\.sass$/, err.sass_filename)
214
+ assert_match(/(\/|^)bork#{i}\.sass$/, err.sass_filename)
215
+
216
+ assert_hash_has(err.sass_backtrace.first,
217
+ :filename => err.sass_filename, :line => err.sass_line)
218
+
219
+ assert_nil(err.sass_backtrace[1][:filename])
220
+ assert_equal(1, err.sass_backtrace[1][:line])
221
+
222
+ assert_match(/(\/|^)bork#{i}\.sass:2$/, err.backtrace.first)
223
+ assert_equal("(sass):1", err.backtrace[1])
224
+ else
225
+ assert(false, "Exception not raised for imported template: bork#{i}")
226
+ end
227
+ end
228
+ end
229
+
230
+ def test_double_imported_exception
231
+ [1, 2, 3, 4].each do |i|
232
+ begin
233
+ Sass::Engine.new("@import nested_bork#{i}", :load_paths => [File.dirname(__FILE__) + '/templates/']).render
234
+ rescue Sass::SyntaxError => err
235
+ assert_equal(2, err.sass_line)
236
+ assert_match(/(\/|^)bork#{i}\.sass$/, err.sass_filename)
237
+
238
+ assert_hash_has(err.sass_backtrace.first,
239
+ :filename => err.sass_filename, :line => err.sass_line)
240
+
241
+ assert_match(/(\/|^)nested_bork#{i}\.sass$/, err.sass_backtrace[1][:filename])
242
+ assert_equal(2, err.sass_backtrace[1][:line])
243
+
244
+ assert_nil(err.sass_backtrace[2][:filename])
245
+ assert_equal(1, err.sass_backtrace[2][:line])
246
+
247
+ assert_match(/(\/|^)bork#{i}\.sass:2$/, err.backtrace.first)
248
+ assert_match(/(\/|^)nested_bork#{i}\.sass:2$/, err.backtrace[1])
249
+ assert_equal("(sass):1", err.backtrace[2])
203
250
  else
204
251
  assert(false, "Exception not raised for imported template: bork#{i}")
205
252
  end
206
253
  end
207
254
  end
208
255
 
256
+ def test_mixin_exception
257
+ render(<<SASS)
258
+ =error-mixin($a)
259
+ color: $a * 1em * 1px
260
+
261
+ =outer-mixin($a)
262
+ +error-mixin($a)
263
+
264
+ .error
265
+ +outer-mixin(12)
266
+ SASS
267
+ assert(false, "Exception not raised")
268
+ rescue Sass::SyntaxError => err
269
+ assert_equal(2, err.sass_line)
270
+ assert_equal(filename_for_test, err.sass_filename)
271
+ assert_equal("error-mixin", err.sass_mixin)
272
+
273
+ assert_hash_has(err.sass_backtrace.first, :line => err.sass_line,
274
+ :filename => err.sass_filename, :mixin => err.sass_mixin)
275
+ assert_hash_has(err.sass_backtrace[1], :line => 5,
276
+ :filename => filename_for_test, :mixin => "outer-mixin")
277
+ assert_hash_has(err.sass_backtrace[2], :line => 8,
278
+ :filename => filename_for_test, :mixin => nil)
279
+
280
+ assert_equal("#{filename_for_test}:2:in `error-mixin'", err.backtrace.first)
281
+ assert_equal("#{filename_for_test}:5:in `outer-mixin'", err.backtrace[1])
282
+ assert_equal("#{filename_for_test}:8", err.backtrace[2])
283
+ end
284
+
285
+ def test_mixin_callsite_exception
286
+ render(<<SASS)
287
+ =one-arg-mixin($a)
288
+ color: $a
289
+
290
+ =outer-mixin($a)
291
+ +one-arg-mixin($a, 12)
292
+
293
+ .error
294
+ +outer-mixin(12)
295
+ SASS
296
+ assert(false, "Exception not raised")
297
+ rescue Sass::SyntaxError => err
298
+ assert_hash_has(err.sass_backtrace.first, :line => 5,
299
+ :filename => filename_for_test, :mixin => "one-arg-mixin")
300
+ assert_hash_has(err.sass_backtrace[1], :line => 5,
301
+ :filename => filename_for_test, :mixin => "outer-mixin")
302
+ assert_hash_has(err.sass_backtrace[2], :line => 8,
303
+ :filename => filename_for_test, :mixin => nil)
304
+ end
305
+
306
+ def test_mixin_exception_cssize
307
+ render(<<SASS)
308
+ =parent-ref-mixin
309
+ & foo
310
+ a: b
311
+
312
+ =outer-mixin
313
+ +parent-ref-mixin
314
+
315
+ +outer-mixin
316
+ SASS
317
+ assert(false, "Exception not raised")
318
+ rescue Sass::SyntaxError => err
319
+ assert_hash_has(err.sass_backtrace.first, :line => 2,
320
+ :filename => filename_for_test, :mixin => "parent-ref-mixin")
321
+ assert_hash_has(err.sass_backtrace[1], :line => 6,
322
+ :filename => filename_for_test, :mixin => "outer-mixin")
323
+ assert_hash_has(err.sass_backtrace[2], :line => 8,
324
+ :filename => filename_for_test, :mixin => nil)
325
+ end
326
+
327
+ def test_mixin_and_import_exception
328
+ Sass::Engine.new("@import nested_mixin_bork", :load_paths => [File.dirname(__FILE__) + '/templates/']).render
329
+ assert(false, "Exception not raised")
330
+ rescue Sass::SyntaxError => err
331
+ assert_match(/(\/|^)nested_mixin_bork\.sass$/, err.sass_backtrace.first[:filename])
332
+ assert_hash_has(err.sass_backtrace.first, :mixin => "error-mixin", :line => 4)
333
+
334
+ assert_match(/(\/|^)mixin_bork\.sass$/, err.sass_backtrace[1][:filename])
335
+ assert_hash_has(err.sass_backtrace[1], :mixin => "outer-mixin", :line => 2)
336
+
337
+ assert_match(/(\/|^)mixin_bork\.sass$/, err.sass_backtrace[2][:filename])
338
+ assert_hash_has(err.sass_backtrace[2], :mixin => nil, :line => 5)
339
+
340
+ assert_match(/(\/|^)nested_mixin_bork\.sass$/, err.sass_backtrace[3][:filename])
341
+ assert_hash_has(err.sass_backtrace[3], :mixin => nil, :line => 6)
342
+
343
+ assert_hash_has(err.sass_backtrace[4], :filename => nil, :mixin => nil, :line => 1)
344
+ end
345
+
346
+ def test_basic_mixin_loop_exception
347
+ render <<SASS
348
+ @mixin foo
349
+ @include foo
350
+ @include foo
351
+ SASS
352
+ assert(false, "Exception not raised")
353
+ rescue Sass::SyntaxError => err
354
+ assert_equal("An @include loop has been found: foo includes itself", err.message)
355
+ assert_hash_has(err.sass_backtrace[0], :mixin => "foo", :line => 2)
356
+ end
357
+
358
+ def test_double_mixin_loop_exception
359
+ render <<SASS
360
+ @mixin foo
361
+ @include bar
362
+ @mixin bar
363
+ @include foo
364
+ @include foo
365
+ SASS
366
+ assert(false, "Exception not raised")
367
+ rescue Sass::SyntaxError => err
368
+ assert_equal(<<MESSAGE.rstrip, err.message)
369
+ An @include loop has been found:
370
+ foo includes bar
371
+ bar includes foo
372
+ MESSAGE
373
+ assert_hash_has(err.sass_backtrace[0], :mixin => "bar", :line => 4)
374
+ assert_hash_has(err.sass_backtrace[1], :mixin => "foo", :line => 2)
375
+ end
376
+
377
+ def test_deep_mixin_loop_exception
378
+ render <<SASS
379
+ @mixin foo
380
+ @include bar
381
+
382
+ @mixin bar
383
+ @include baz
384
+
385
+ @mixin baz
386
+ @include foo
387
+
388
+ @include foo
389
+ SASS
390
+ assert(false, "Exception not raised")
391
+ rescue Sass::SyntaxError => err
392
+ assert_equal(<<MESSAGE.rstrip, err.message)
393
+ An @include loop has been found:
394
+ foo includes bar
395
+ bar includes baz
396
+ baz includes foo
397
+ MESSAGE
398
+ assert_hash_has(err.sass_backtrace[0], :mixin => "baz", :line => 8)
399
+ assert_hash_has(err.sass_backtrace[1], :mixin => "bar", :line => 5)
400
+ assert_hash_has(err.sass_backtrace[2], :mixin => "foo", :line => 2)
401
+ end
402
+
403
+ def test_exception_css_with_offset
404
+ opts = {:full_exception => true, :line => 362}
405
+ render(("a\n b: c\n" * 10) + "d\n e:\n" + ("f\n g: h\n" * 10), opts)
406
+ rescue Sass::SyntaxError => e
407
+ assert_equal(<<CSS, Sass::SyntaxError.exception_to_css(e, opts).split("\n")[0..15].join("\n"))
408
+ /*
409
+ Syntax error: Invalid property: "e:" (no value).
410
+ on line 383 of test_exception_css_with_offset_inline.sass
411
+
412
+ 378: a
413
+ 379: b: c
414
+ 380: a
415
+ 381: b: c
416
+ 382: d
417
+ 383: e:
418
+ 384: f
419
+ 385: g: h
420
+ 386: f
421
+ 387: g: h
422
+ 388: f
423
+ CSS
424
+ else
425
+ assert(false, "Exception not raised for test_exception_css_with_offset")
426
+ end
427
+
428
+ def test_exception_css_with_mixins
429
+ opts = {:full_exception => true}
430
+ render(<<SASS, opts)
431
+ =error-mixin($a)
432
+ color: $a * 1em * 1px
433
+
434
+ =outer-mixin($a)
435
+ +error-mixin($a)
436
+
437
+ .error
438
+ +outer-mixin(12)
439
+ SASS
440
+ rescue Sass::SyntaxError => e
441
+ assert_equal(<<CSS, Sass::SyntaxError.exception_to_css(e, opts).split("\n")[0..13].join("\n"))
442
+ /*
443
+ Syntax error: 12em*px isn't a valid CSS value.
444
+ on line 2 of test_exception_css_with_mixins_inline.sass, in `error-mixin'
445
+ from line 5 of test_exception_css_with_mixins_inline.sass, in `outer-mixin'
446
+ from line 8 of test_exception_css_with_mixins_inline.sass
447
+
448
+ 1: =error-mixin($a)
449
+ 2: color: $a * 1em * 1px
450
+ 3:
451
+ 4: =outer-mixin($a)
452
+ 5: +error-mixin($a)
453
+ 6:
454
+ 7: .error
455
+ CSS
456
+ else
457
+ assert(false, "Exception not raised")
458
+ end
459
+
460
+ def test_cssize_exception_css
461
+ opts = {:full_exception => true}
462
+ render(<<SASS, opts)
463
+ .filler
464
+ stuff: "stuff!"
465
+
466
+ a: b
467
+
468
+ .more.filler
469
+ a: b
470
+ SASS
471
+ rescue Sass::SyntaxError => e
472
+ assert_equal(<<CSS, Sass::SyntaxError.exception_to_css(e, opts).split("\n")[0..11].join("\n"))
473
+ /*
474
+ Syntax error: Properties aren't allowed at the root of a document.
475
+ on line 4 of test_cssize_exception_css_inline.sass
476
+
477
+ 1: .filler
478
+ 2: stuff: "stuff!"
479
+ 3:
480
+ 4: a: b
481
+ 5:
482
+ 6: .more.filler
483
+ 7: a: b
484
+ CSS
485
+ else
486
+ assert(false, "Exception not raised")
487
+ end
488
+
209
489
  def test_css_import
210
- assert_equal("@import url(./fonts.css) screen;\n", render("@import url(./fonts.css) screen"))
211
- assert_equal("@import \"./fonts.css\" screen;\n", render("@import \"./fonts.css\" screen"))
490
+ assert_equal("@import url(./fonts.css);\n", render("@import \"./fonts.css\""))
491
+ end
492
+
493
+ def test_http_import
494
+ assert_equal("@import url(http://fonts.googleapis.com/css?family=Droid+Sans);\n",
495
+ render("@import \"http://fonts.googleapis.com/css?family=Droid+Sans\""))
496
+ end
497
+
498
+ def test_url_import
499
+ assert_equal("@import url(fonts.sass);\n", render("@import url(fonts.sass)"))
212
500
  end
213
501
 
214
502
  def test_sass_import
@@ -219,7 +507,7 @@ SASS
219
507
 
220
508
  def test_nonexistent_extensionless_import
221
509
  assert_warning(<<WARN) do
222
- WARNING: nonexistent.sass not found. Using nonexistent.css instead.
510
+ WARNING: Neither nonexistent.sass nor .scss found. Using nonexistent.css instead.
223
511
  This behavior is deprecated and will be removed in a future version.
224
512
  If you really need nonexistent.css, import it explicitly.
225
513
  WARN
@@ -241,18 +529,24 @@ WARN
241
529
  end
242
530
 
243
531
  def test_default_function
244
- assert_equal("foo {\n bar: url(foo.png); }\n", render(%Q{foo\n bar = url("foo.png")\n}));
245
- assert_equal("foo {\n bar: url(); }\n", render("foo\n bar = url()\n"));
532
+ assert_equal(<<CSS, render(<<SASS))
533
+ foo {
534
+ bar: url("foo.png"); }
535
+ CSS
536
+ foo
537
+ bar: url("foo.png")
538
+ SASS
539
+ assert_equal("foo {\n bar: url(); }\n", render("foo\n bar: url()\n"));
246
540
  end
247
541
 
248
542
  def test_string_minus
249
- assert_equal("foo {\n bar: baz-boom-bat; }\n", render(%Q{foo\n bar = "baz"-"boom"-"bat"}))
250
- assert_equal("foo {\n bar: -baz-boom; }\n", render(%Q{foo\n bar = -"baz"-"boom"}))
543
+ assert_equal("foo {\n bar: baz-boom-bat; }\n", render(%Q{foo\n bar: baz-boom-bat}))
544
+ assert_equal("foo {\n bar: -baz-boom; }\n", render(%Q{foo\n bar: -baz-boom}))
251
545
  end
252
546
 
253
547
  def test_string_div
254
- assert_equal("foo {\n bar: baz/boom/bat; }\n", render(%Q{foo\n bar = "baz"/"boom"/"bat"}))
255
- assert_equal("foo {\n bar: /baz/boom; }\n", render(%Q{foo\n bar = /"baz"/"boom"}))
548
+ assert_equal("foo {\n bar: baz/boom/bat; }\n", render(%Q{foo\n bar: baz/boom/bat}))
549
+ assert_equal("foo {\n bar: /baz/boom; }\n", render(%Q{foo\n bar: /baz/boom}))
256
550
  end
257
551
 
258
552
  def test_basic_multiline_selector
@@ -366,6 +660,40 @@ END
366
660
  assert_equal("@a{b:c;#d{e:f}g:h}\n", render(to_render, :style => :compressed))
367
661
  end
368
662
 
663
+ def test_property_hacks
664
+ assert_equal(<<CSS, render(<<SASS))
665
+ foo {
666
+ _name: val;
667
+ *name: val;
668
+ #name: val;
669
+ .name: val;
670
+ name/**/: val;
671
+ name/*\\**/: val;
672
+ name: val; }
673
+ CSS
674
+ foo
675
+ _name: val
676
+ *name: val
677
+ #name: val
678
+ .name: val
679
+ name/**/: val
680
+ name/*\\**/: val
681
+ name: val
682
+ SASS
683
+ end
684
+
685
+ def test_properties_with_space_after_colon
686
+ assert_equal <<CSS, render(<<SASS)
687
+ foo {
688
+ bar: baz;
689
+ bizz: bap; }
690
+ CSS
691
+ foo
692
+ bar : baz
693
+ bizz : bap
694
+ SASS
695
+ end
696
+
369
697
  def test_line_annotations
370
698
  assert_equal(<<CSS, render(<<SASS, :line_comments => true, :style => :compact))
371
699
  /* line 2, test_line_annotations_inline.sass */
@@ -414,6 +742,85 @@ SASS
414
742
  renders_correctly "line_numbers", :line_comments => true, :load_paths => [File.dirname(__FILE__) + "/templates"]
415
743
  end
416
744
 
745
+ def test_debug_info
746
+ esc_file_name = Sass::SCSS::RX.escape_ident(Haml::Util.scope("test_debug_info_inline.sass"))
747
+
748
+ assert_equal(<<CSS, render(<<SASS, :debug_info => true, :style => :compact))
749
+ @media -sass-debug-info{filename{font-family:file\\:\\/\\/#{esc_file_name}}line{font-family:\\000032}}
750
+ foo bar { foo: bar; }
751
+ @media -sass-debug-info{filename{font-family:file\\:\\/\\/#{esc_file_name}}line{font-family:\\000035}}
752
+ foo baz { blip: blop; }
753
+
754
+ @media -sass-debug-info{filename{font-family:file\\:\\/\\/#{esc_file_name}}line{font-family:\\000039}}
755
+ floodle { flop: blop; }
756
+
757
+ @media -sass-debug-info{filename{font-family:file\\:\\/\\/#{esc_file_name}}line{font-family:\\0000318}}
758
+ bup { mix: on; }
759
+ @media -sass-debug-info{filename{font-family:file\\:\\/\\/#{esc_file_name}}line{font-family:\\0000315}}
760
+ bup mixin { moop: mup; }
761
+
762
+ @media -sass-debug-info{filename{font-family:file\\:\\/\\/#{esc_file_name}}line{font-family:\\0000322}}
763
+ bip hop, skip hop { a: b; }
764
+ CSS
765
+ foo
766
+ bar
767
+ foo: bar
768
+
769
+ baz
770
+ blip: blop
771
+
772
+
773
+ floodle
774
+
775
+ flop: blop
776
+
777
+ =mxn
778
+ mix: on
779
+ mixin
780
+ moop: mup
781
+
782
+ bup
783
+ +mxn
784
+
785
+ bip, skip
786
+ hop
787
+ a: b
788
+ SASS
789
+ end
790
+
791
+ def test_debug_info_without_filename
792
+ assert_equal(<<CSS, Sass::Engine.new(<<SASS, :debug_info => true).render)
793
+ @media -sass-debug-info{filename{font-family:}line{font-family:\\000031}}
794
+ foo {
795
+ a: b; }
796
+ CSS
797
+ foo
798
+ a: b
799
+ SASS
800
+ end
801
+
802
+ def test_debug_info_with_compressed
803
+ assert_equal(<<CSS, render(<<SASS, :debug_info => true, :style => :compressed))
804
+ foo{a:b}
805
+ CSS
806
+ foo
807
+ a: b
808
+ SASS
809
+ end
810
+
811
+ def test_debug_info_with_line_annotations
812
+ esc_file_name = Sass::SCSS::RX.escape_ident(Haml::Util.scope("test_debug_info_with_line_annotations_inline.sass"))
813
+
814
+ assert_equal(<<CSS, render(<<SASS, :debug_info => true, :line_comments => true))
815
+ @media -sass-debug-info{filename{font-family:file\\:\\/\\/#{esc_file_name}}line{font-family:\\000031}}
816
+ foo {
817
+ a: b; }
818
+ CSS
819
+ foo
820
+ a: b
821
+ SASS
822
+ end
823
+
417
824
  def test_empty_first_line
418
825
  assert_equal("#a {\n b: c; }\n", render("#a\n\n b: c"))
419
826
  end
@@ -427,15 +834,124 @@ SASS
427
834
  assert_equal("foo {\n a: b;\n c: d;\n e: f; }\n", render("foo\r a: b\r\n c: d\n\r e: f"))
428
835
  end
429
836
 
430
- def test_or_eq
431
- assert_equal("foo {\n a: b; }\n", render(%Q{!foo = "b"\n!foo ||= "c"\nfoo\n a = !foo}))
432
- assert_equal("foo {\n a: b; }\n", render(%Q{!foo ||= "b"\nfoo\n a = !foo}))
837
+ def test_property_with_content_and_nested_props
838
+ assert_equal(<<CSS, render(<<SASS))
839
+ foo {
840
+ a: b;
841
+ a-c: d;
842
+ a-c-e: f; }
843
+ CSS
844
+ foo
845
+ a: b
846
+ c: d
847
+ e: f
848
+ SASS
849
+
850
+ assert_equal(<<CSS, render(<<SASS))
851
+ foo {
852
+ a: b;
853
+ a-c-e: f; }
854
+ CSS
855
+ foo
856
+ a: b
857
+ c:
858
+ e: f
859
+ SASS
860
+ end
861
+
862
+ def test_equals_warning_for_properties
863
+ assert_warning(<<WARN) {assert_equal(<<CSS, render(<<SASS))}
864
+ DEPRECATION WARNING:
865
+ On line 3, character 3 of 'test_equals_warning_for_properties_inline.sass'
866
+ Setting properties with = has been deprecated and will be removed in version 3.2.
867
+ Use "a: $var" instead.
868
+
869
+ You can use `sass-convert --in-place --from sass2 file.sass' to convert files automatically.
870
+ WARN
871
+ foo {
872
+ a: 2px 3px; }
873
+ CSS
874
+ $var: 2px 3px
875
+ foo
876
+ a = $var
877
+ SASS
878
+ end
879
+
880
+ def test_equals_warning_for_dynamic_properties
881
+ assert_warning(<<WARN) {assert_equal(<<CSS, render(<<SASS))}
882
+ DEPRECATION WARNING:
883
+ On line 4, character 3 of 'test_equals_warning_for_dynamic_properties_inline.sass'
884
+ Setting properties with = has been deprecated and will be removed in version 3.2.
885
+ Use "a-\#{$i}: $var" instead.
886
+
887
+ You can use `sass-convert --in-place --from sass2 file.sass' to convert files automatically.
888
+ WARN
889
+ foo {
890
+ a-12: 2px 3px; }
891
+ CSS
892
+ $var: 2px 3px
893
+ $i: 12
894
+ foo
895
+ a-\#{$i} = $var
896
+ SASS
897
+ end
898
+
899
+ def test_equals_warning_for_property_with_string
900
+ assert_warning(<<WARN) {assert_equal(<<CSS, render(<<SASS))}
901
+ DEPRECATION WARNING:
902
+ On line 2, character 3 of 'test_equals_warning_for_property_with_string_inline.sass'
903
+ Setting properties with = has been deprecated and will be removed in version 3.2.
904
+ Use "a: foo" instead.
905
+
906
+ You can use `sass-convert --in-place --from sass2 file.sass' to convert files automatically.
907
+ WARN
908
+ foo {
909
+ a: foo; }
910
+ CSS
911
+ foo
912
+ a = "foo"
913
+ SASS
914
+ end
915
+
916
+ def test_equals_warning_for_property_with_division
917
+ assert_warning(<<WARN) {assert_equal(<<CSS, render(<<SASS))}
918
+ DEPRECATION WARNING:
919
+ On line 2, character 3 of 'test_equals_warning_for_property_with_division_inline.sass'
920
+ Setting properties with = has been deprecated and will be removed in version 3.2.
921
+ Use "a: (1px / 2px)" instead.
922
+
923
+ You can use `sass-convert --in-place --from sass2 file.sass' to convert files automatically.
924
+ WARN
925
+ foo {
926
+ a: 0.5; }
927
+ CSS
928
+ foo
929
+ a = 1px/2px
930
+ SASS
931
+ end
932
+
933
+ def test_guarded_assign
934
+ assert_equal("foo {\n a: b; }\n", render(%Q{$foo: b\n$foo: c !default\nfoo\n a: $foo}))
935
+ assert_equal("foo {\n a: b; }\n", render(%Q{$foo: b !default\nfoo\n a: $foo}))
433
936
  end
434
937
 
435
938
  def test_mixins
436
939
  renders_correctly "mixins", { :style => :expanded }
437
940
  end
438
941
 
942
+ def test_directive_style_mixins
943
+ assert_equal <<CSS, render(<<SASS)
944
+ bar {
945
+ prop: baz; }
946
+ CSS
947
+ @mixin foo($arg)
948
+ prop: $arg
949
+
950
+ bar
951
+ @include foo(baz)
952
+ SASS
953
+ end
954
+
439
955
  def test_mixins_dont_interfere_with_sibling_combinator
440
956
  assert_equal("foo + bar {\n a: b; }\nfoo + baz {\n c: d; }\n",
441
957
  render("foo\n +\n bar\n a: b\n baz\n c: d"))
@@ -443,33 +959,33 @@ SASS
443
959
 
444
960
  def test_mixin_args
445
961
  assert_equal("blat {\n baz: hi; }\n", render(<<SASS))
446
- =foo(!bar)
447
- baz = !bar
962
+ =foo($bar)
963
+ baz: $bar
448
964
  blat
449
- +foo(\"hi\")
965
+ +foo(hi)
450
966
  SASS
451
967
  assert_equal("blat {\n baz: 3; }\n", render(<<SASS))
452
- =foo(!a, !b)
453
- baz = !a + !b
968
+ =foo($a, $b)
969
+ baz: $a + $b
454
970
  blat
455
971
  +foo(1, 2)
456
972
  SASS
457
973
  assert_equal("blat {\n baz: 4;\n baz: 3;\n baz: 5;\n bang: 3; }\n", render(<<SASS))
458
- =foo(!c = (6 + 4) / 2)
459
- baz = !c
460
- !c = 3
974
+ =foo($c: (6 + 4) / 2)
975
+ baz: $c
976
+ $c: 3
461
977
  blat
462
- +foo(!c + 1)
463
- +foo((!c + 3)/2)
978
+ +foo($c + 1)
979
+ +foo(($c + 3)/2)
464
980
  +foo
465
- bang = !c
981
+ bang: $c
466
982
  SASS
467
983
  end
468
984
 
469
985
  def test_default_values_for_mixin_arguments
470
986
  assert_equal("white {\n color: white; }\n\nblack {\n color: black; }\n", render(<<SASS))
471
- =foo(!a = #FFF)
472
- :color= !a
987
+ =foo($a: #FFF)
988
+ :color $a
473
989
  white
474
990
  +foo
475
991
  black
@@ -491,11 +1007,11 @@ three {
491
1007
  padding: 2px;
492
1008
  margin: 3px; }
493
1009
  CSS
494
- !a = 5px
495
- =foo(!a, !b = 1px, !c = 3px + !b)
496
- :color= !a
497
- :padding= !b
498
- :margin= !c
1010
+ $a: 5px
1011
+ =foo($a, $b: 1px, $c: 3px + $b)
1012
+ :color $a
1013
+ :padding $b
1014
+ :margin $c
499
1015
  one
500
1016
  +foo(#fff)
501
1017
  two
@@ -505,23 +1021,87 @@ three
505
1021
  SASS
506
1022
  end
507
1023
 
1024
+ def test_hyphen_underscore_insensitive_mixins
1025
+ assert_equal(<<CSS, render(<<SASS))
1026
+ a {
1027
+ b: 12;
1028
+ c: foo; }
1029
+ CSS
1030
+ =mixin-hyphen
1031
+ b: 12
1032
+
1033
+ =mixin_under
1034
+ c: foo
1035
+
1036
+ a
1037
+ +mixin_hyphen
1038
+ +mixin-under
1039
+ SASS
1040
+ end
1041
+
1042
+ def test_equals_warning_for_mixin_args
1043
+ assert_warning(<<WARN) {assert_equal(<<CSS, render(<<SASS))}
1044
+ DEPRECATION WARNING:
1045
+ On line 1, character 10 of 'test_equals_warning_for_mixin_args_inline.sass'
1046
+ Setting mixin argument defaults with = has been deprecated and will be removed in version 3.2.
1047
+ Use "$arg: 1px" instead.
1048
+
1049
+ You can use `sass-convert --in-place --from sass2 file.sass' to convert files automatically.
1050
+ WARN
1051
+ bar {
1052
+ a: 1px; }
1053
+ CSS
1054
+ =foo($arg = 1px)
1055
+ a: $arg
1056
+
1057
+ bar
1058
+ +foo
1059
+ SASS
1060
+ end
1061
+
1062
+ def test_css_identifier_mixin
1063
+ assert_equal(<<CSS, render(<<SASS))
1064
+ a {
1065
+ foo: 12; }
1066
+ CSS
1067
+ =\\{foo\\(12\\)($a)
1068
+ foo: $a
1069
+
1070
+ a
1071
+ +\\{foo\\(12\\)(12)
1072
+ SASS
1073
+ end
1074
+
508
1075
  def test_interpolation
509
1076
  assert_equal("a-1 {\n b-2-3: c-3; }\n", render(<<SASS))
510
- !a = 1
511
- !b = 2
512
- !c = 3
513
- a-\#{!a}
514
- b-\#{!b}-\#{!c}: c-\#{!a + !b}
1077
+ $a: 1
1078
+ $b: 2
1079
+ $c: 3
1080
+ a-\#{$a}
1081
+ b-\#{$b}-\#{$c}: c-\#{$a + $b}
1082
+ SASS
1083
+ end
1084
+
1085
+ def test_complex_property_interpolation
1086
+ assert_equal(<<CSS, render(<<SASS))
1087
+ a-1 {
1088
+ b-2 3-fizzap18: c-3; }
1089
+ CSS
1090
+ $a: 1
1091
+ $b: 2
1092
+ $c: 3
1093
+ a-\#{$a}
1094
+ b-\#{$b $c}-\#{fizzap + ($c + 15)}: c-\#{$a + $b}
515
1095
  SASS
516
1096
  end
517
1097
 
518
1098
  def test_if_directive
519
1099
  assert_equal("a {\n b: 1; }\n", render(<<SASS))
520
- !var = true
1100
+ $var: true
521
1101
  a
522
- @if !var
1102
+ @if $var
523
1103
  b: 1
524
- @if not !var
1104
+ @if not $var
525
1105
  b: 2
526
1106
  SASS
527
1107
  end
@@ -529,16 +1109,16 @@ SASS
529
1109
  def test_for
530
1110
  assert_equal(<<CSS, render(<<SASS))
531
1111
  a-0 {
532
- 2i: 0; }
1112
+ two-i: 0; }
533
1113
 
534
1114
  a-1 {
535
- 2i: 2; }
1115
+ two-i: 2; }
536
1116
 
537
1117
  a-2 {
538
- 2i: 4; }
1118
+ two-i: 4; }
539
1119
 
540
1120
  a-3 {
541
- 2i: 6; }
1121
+ two-i: 6; }
542
1122
 
543
1123
  b-1 {
544
1124
  j-1: 0; }
@@ -552,14 +1132,38 @@ b-3 {
552
1132
  b-4 {
553
1133
  j-1: 3; }
554
1134
  CSS
555
- !a = 3
556
- @for !i from 0 to !a + 1
557
- a-\#{!i}
558
- 2i = 2 * !i
1135
+ $a: 3
1136
+ @for $i from 0 to $a + 1
1137
+ a-\#{$i}
1138
+ two-i: 2 * $i
1139
+
1140
+ @for $j from 1 through 4
1141
+ b-\#{$j}
1142
+ j-1: $j - 1
1143
+ SASS
1144
+ end
1145
+
1146
+ def test_for_with_bang_var
1147
+ assert_warning(<<WARN) {assert_equal(<<CSS, render(<<SASS))}
1148
+ DEPRECATION WARNING:
1149
+ On line 1, character 6 of 'test_for_with_bang_var_inline.sass'
1150
+ Variables with ! have been deprecated and will be removed in version 3.2.
1151
+ Use "$bar" instead.
1152
+
1153
+ You can use `sass-convert --in-place --from sass2 file.sass' to convert files automatically.
1154
+ WARN
1155
+ a-0 {
1156
+ b: c; }
1157
+
1158
+ a-1 {
1159
+ b: c; }
559
1160
 
560
- @for !j from 1 through 4
561
- b-\#{!j}
562
- j-1 = !j - 1
1161
+ a-2 {
1162
+ b: c; }
1163
+ CSS
1164
+ @for !bar from 0 to 3
1165
+ a-\#{$bar}
1166
+ b: c
563
1167
  SASS
564
1168
  end
565
1169
 
@@ -580,11 +1184,11 @@ a-2 {
580
1184
  a-1 {
581
1185
  blooble: gloop; }
582
1186
  CSS
583
- !a = 5
584
- @while !a != 0
585
- a-\#{!a}
1187
+ $a: 5
1188
+ @while $a != 0
1189
+ a-\#{$a}
586
1190
  blooble: gloop
587
- !a = !a - 1
1191
+ $a: $a - 1
588
1192
  SASS
589
1193
  end
590
1194
 
@@ -634,15 +1238,87 @@ a {
634
1238
  b: 1;
635
1239
  c: 2; }
636
1240
  CSS
637
- !a = 1
1241
+ $a: 1
638
1242
  a
639
- b = !a
640
- !a = 2
641
- c = !a
1243
+ b: $a
1244
+ $a: 2
1245
+ c: $a
642
1246
  SASS
643
1247
  end
644
1248
 
645
- def test_variable_scope
1249
+ def test_bang_variables
1250
+ assert_warning(<<WARN) {assert_equal(<<CSS, render(<<SASS))}
1251
+ DEPRECATION WARNING:
1252
+ On line 1, character 1 of 'test_bang_variables_inline.sass'
1253
+ Variables with ! have been deprecated and will be removed in version 3.2.
1254
+ Use "$bang-var" instead.
1255
+
1256
+ You can use `sass-convert --in-place --from sass2 file.sass' to convert files automatically.
1257
+ WARN
1258
+ foo {
1259
+ a: 1px; }
1260
+ CSS
1261
+ !bang-var: 1px
1262
+ foo
1263
+ a: $bang-var
1264
+ SASS
1265
+
1266
+ assert_warning(<<WARN) {assert_equal(<<CSS, render(<<SASS))}
1267
+ DEPRECATION WARNING:
1268
+ On line 3, character 6 of 'test_bang_variables_inline.sass'
1269
+ Variables with ! have been deprecated and will be removed in version 3.2.
1270
+ Use "$dollar-var" instead.
1271
+
1272
+ You can use `sass-convert --in-place --from sass2 file.sass' to convert files automatically.
1273
+ WARN
1274
+ foo {
1275
+ a: 1px; }
1276
+ CSS
1277
+ $dollar-var: 1px
1278
+ foo
1279
+ a: !dollar-var
1280
+ SASS
1281
+ end
1282
+
1283
+ def test_equals_warning_for_variables
1284
+ assert_warning(<<WARN) {assert_equal(<<CSS, render(<<SASS))}
1285
+ DEPRECATION WARNING:
1286
+ On line 2, character 1 of 'test_equals_warning_for_variables_inline.sass'
1287
+ Setting variables with = has been deprecated and will be removed in version 3.2.
1288
+ Use "$equals-var: 2px 3px" instead.
1289
+
1290
+ You can use `sass-convert --in-place --from sass2 file.sass' to convert files automatically.
1291
+ WARN
1292
+ foo {
1293
+ a: 2px 3px; }
1294
+ CSS
1295
+
1296
+ $equals-var = 2px 3px
1297
+ foo
1298
+ a: $equals-var
1299
+ SASS
1300
+ end
1301
+
1302
+ def test_equals_warning_for_guarded_variables
1303
+ assert_warning(<<WARN) {assert_equal(<<CSS, render(<<SASS))}
1304
+ DEPRECATION WARNING:
1305
+ On line 2, character 1 of 'test_equals_warning_for_guarded_variables_inline.sass'
1306
+ Setting variable defaults with ||= has been deprecated and will be removed in version 3.2.
1307
+ Use "$equals-var: 2px 3px !default" instead.
1308
+
1309
+ You can use `sass-convert --in-place --from sass2 file.sass' to convert files automatically.
1310
+ WARN
1311
+ foo {
1312
+ a: 2px 3px; }
1313
+ CSS
1314
+
1315
+ $equals-var ||= 2px 3px
1316
+ foo
1317
+ a: $equals-var
1318
+ SASS
1319
+ end
1320
+
1321
+ def test_variable_scope
646
1322
  assert_equal(<<CSS, render(<<SASS))
647
1323
  a {
648
1324
  b-1: c;
@@ -652,23 +1328,69 @@ a {
652
1328
  b {
653
1329
  d: 17; }
654
1330
  CSS
655
- !i = 12
1331
+ $i: 12
656
1332
  a
657
- @for !i from 1 through 2
658
- b-\#{!i}: c
659
- d = !i
1333
+ @for $i from 1 through 2
1334
+ b-\#{$i}: c
1335
+ d: $i
660
1336
 
661
1337
  =foo
662
- !i = 17
1338
+ $i: 17
663
1339
 
664
1340
  b
665
1341
  +foo
666
- d = !i
1342
+ d: $i
1343
+ SASS
1344
+ end
1345
+
1346
+ def test_hyphen_underscore_insensitive_variables
1347
+ assert_equal(<<CSS, render(<<SASS))
1348
+ a {
1349
+ b: c; }
1350
+
1351
+ d {
1352
+ e: 13;
1353
+ f: foobar; }
1354
+ CSS
1355
+ $var-hyphen: 12
1356
+ $var_under: foo
1357
+
1358
+ a
1359
+ $var_hyphen: 1 + $var_hyphen
1360
+ $var-under: $var-under + bar
1361
+ b: c
1362
+
1363
+ d
1364
+ e: $var-hyphen
1365
+ f: $var_under
1366
+ SASS
1367
+ end
1368
+
1369
+ def test_css_identifier_variable
1370
+ assert_equal(<<CSS, render(<<SASS))
1371
+ a {
1372
+ b: 12; }
1373
+ CSS
1374
+ $\\{foo\\(12\\): 12
1375
+
1376
+ a
1377
+ b: $\\{foo\\(12\\)
1378
+ SASS
1379
+ end
1380
+
1381
+ def test_important
1382
+ assert_equal(<<CSS, render(<<SASS))
1383
+ a {
1384
+ b: 12px !important; }
1385
+ CSS
1386
+ $foo: 12px
1387
+ a
1388
+ b: $foo !important
667
1389
  SASS
668
1390
  end
669
1391
 
670
1392
  def test_argument_error
671
- assert_raise(Sass::SyntaxError) { render("a\n b = hsl(1)") }
1393
+ assert_raise(Sass::SyntaxError) { render("a\n b: hsl(1)") }
672
1394
  end
673
1395
 
674
1396
  def test_comments_at_the_top_of_a_document
@@ -697,6 +1419,30 @@ foo {
697
1419
  CSS
698
1420
  end
699
1421
 
1422
+ def test_loud_comments_with_starred_lines
1423
+ assert_equal(<<CSS, render(<<SASS))
1424
+ /* This is a comment that
1425
+ * continues to the second line.
1426
+ * And even to the third! */
1427
+ CSS
1428
+ /* This is a comment that
1429
+ * continues to the second line.
1430
+ * And even to the third!
1431
+ SASS
1432
+ end
1433
+
1434
+ def test_loud_comments_with_no_space_after_starred_lines
1435
+ assert_equal(<<CSS, render(<<SASS))
1436
+ /*bip bop
1437
+ *beep boop
1438
+ *bap blimp */
1439
+ CSS
1440
+ /*bip bop
1441
+ *beep boop
1442
+ *bap blimp
1443
+ SASS
1444
+ end
1445
+
700
1446
  def test_comment_indentation_at_beginning_of_doc
701
1447
  assert_equal <<CSS, render(<<SASS)
702
1448
  /* foo
@@ -727,9 +1473,35 @@ foo
727
1473
  SASS
728
1474
  end
729
1475
 
1476
+ def test_loud_comment_with_close
1477
+ assert_equal <<CSS, render(<<SASS)
1478
+ foo {
1479
+ /* foo
1480
+ * bar */ }
1481
+ CSS
1482
+ foo
1483
+ /* foo
1484
+ bar */
1485
+ SASS
1486
+ end
1487
+
1488
+ def test_loud_comment_with_separate_line_close
1489
+ assert_equal <<CSS, render(<<SASS)
1490
+ foo {
1491
+ /* foo
1492
+ * bar
1493
+ */ }
1494
+ CSS
1495
+ foo
1496
+ /* foo
1497
+ * bar
1498
+ */
1499
+ SASS
1500
+ end
1501
+
730
1502
  def test_attribute_selector_with_spaces
731
1503
  assert_equal(<<CSS, render(<<SASS))
732
- a b[foo = bar] {
1504
+ a b[foo=bar] {
733
1505
  c: d; }
734
1506
  CSS
735
1507
  a
@@ -774,25 +1546,7 @@ SASS
774
1546
  def test_empty_selector_warning
775
1547
  assert_warning(<<END) {render("foo bar")}
776
1548
  WARNING on line 1 of test_empty_selector_warning_inline.sass:
777
- Selector "foo bar" doesn't have any properties and will not be rendered.
778
- END
779
-
780
- assert_warning(<<END) {render(<<SASS)}
781
- WARNING on line 3 of test_empty_selector_warning_inline.sass:
782
- Selector
783
- foo, bar, baz,
784
- bang, bip, bop
785
- doesn't have any properties and will not be rendered.
786
- END
787
-
788
-
789
- foo, bar, baz,
790
- bang, bip, bop
791
- SASS
792
-
793
- assert_warning(<<END) {render("foo bar", :filename => nil)}
794
- WARNING on line 1:
795
- Selector "foo bar" doesn't have any properties and will not be rendered.
1549
+ This selector doesn't have any properties and will not be rendered.
796
1550
  END
797
1551
  end
798
1552
 
@@ -827,6 +1581,356 @@ foo
827
1581
  SASS
828
1582
  end
829
1583
 
1584
+ def test_interpolation_in_raw_functions
1585
+ assert_equal(<<CSS, render(<<SASS))
1586
+ foo {
1587
+ filter: progid:Microsoft.foo.bar.Baz(flip=foobar, bang=#00ff00cc); }
1588
+ CSS
1589
+ foo
1590
+ filter: progid:Microsoft.foo.bar.Baz(flip=\#{foo + bar}, bang=#00ff00cc)
1591
+ SASS
1592
+ end
1593
+
1594
+ # SassScript string behavior
1595
+
1596
+ def test_plus_preserves_quotedness
1597
+ assert_equal(<<CSS, render(<<SASS))
1598
+ foo {
1599
+ a: "foo1";
1600
+ b: "1foo";
1601
+ c: foo1;
1602
+ d: 1foo;
1603
+ e: "foobar";
1604
+ f: foobar; }
1605
+ CSS
1606
+ foo
1607
+ a: "foo" + 1
1608
+ b: 1 + "foo"
1609
+ c: foo + 1
1610
+ d: 1 + foo
1611
+ e: "foo" + bar
1612
+ f: foo + "bar"
1613
+ SASS
1614
+ end
1615
+
1616
+ def test_colon_properties_preserve_quotedness
1617
+ assert_equal(<<CSS, render(<<SASS))
1618
+ foo {
1619
+ a: "foo";
1620
+ b: bar;
1621
+ c: "foo" bar;
1622
+ d: foo, "bar"; }
1623
+ CSS
1624
+ foo
1625
+ a: "foo"
1626
+ b: bar
1627
+ c: "foo" bar
1628
+ d: foo, "bar"
1629
+ SASS
1630
+ end
1631
+
1632
+ def test_colon_variables_preserve_quotedness
1633
+ assert_equal(<<CSS, render(<<SASS))
1634
+ foo {
1635
+ a: "foo";
1636
+ b: bar; }
1637
+ CSS
1638
+ $a: "foo"
1639
+ $b: bar
1640
+
1641
+ foo
1642
+ a: $a
1643
+ b: $b
1644
+ SASS
1645
+ end
1646
+
1647
+ def test_colon_args_preserve_quotedness
1648
+ assert_equal(<<CSS, render(<<SASS))
1649
+ foo {
1650
+ a: "foo";
1651
+ b: bar;
1652
+ c: "foo" bar;
1653
+ d: foo, "bar"; }
1654
+ CSS
1655
+ =foo($a: "foo", $b: bar, $c: "foo" bar, $d: (foo, "bar"))
1656
+ foo
1657
+ a: $a
1658
+ b: $b
1659
+ c: $c
1660
+ d: $d
1661
+
1662
+ +foo
1663
+ SASS
1664
+ end
1665
+
1666
+ def test_interpolation_unquotes_strings
1667
+ assert_equal(<<CSS, render(<<SASS))
1668
+ .foo-bar {
1669
+ a: b; }
1670
+ CSS
1671
+ .foo-\#{"bar"}
1672
+ a: b
1673
+ SASS
1674
+
1675
+ assert_equal(<<CSS, render(<<SASS))
1676
+ .foo {
1677
+ a: b c; }
1678
+ CSS
1679
+ .foo
1680
+ a: b \#{"c"}
1681
+ SASS
1682
+ end
1683
+
1684
+ def test_interpolation_unquotes_strings_in_vars
1685
+ assert_equal(<<CSS, render(<<SASS))
1686
+ .foo-bar {
1687
+ a: b; }
1688
+ CSS
1689
+ $var: "bar"
1690
+
1691
+ .foo-\#{$var}
1692
+ a: b
1693
+ SASS
1694
+ end
1695
+
1696
+ def test_interpolation_doesnt_deep_unquote_strings
1697
+ assert_equal(<<CSS, render(<<SASS))
1698
+ .foo- "bar" "baz" {
1699
+ a: b; }
1700
+ CSS
1701
+ .foo-\#{"bar" "baz"}
1702
+ a: b
1703
+ SASS
1704
+ end
1705
+
1706
+ # Deprecated equals behavior
1707
+
1708
+ def test_equals_properties_unquote_strings
1709
+ silence_warnings do
1710
+ assert_equal(<<CSS, render(<<SASS))
1711
+ foo {
1712
+ a: foo;
1713
+ b: bar;
1714
+ c: foo bar;
1715
+ d: foo, bar baz;
1716
+ e: foo bar, bar; }
1717
+ CSS
1718
+ foo
1719
+ a= "foo"
1720
+ b= bar
1721
+ c= "foo" bar
1722
+ d= foo, "bar baz"
1723
+ e= "foo bar", bar
1724
+ SASS
1725
+ end
1726
+ end
1727
+
1728
+ def test_equals_properties_unquote_value
1729
+ silence_warnings do
1730
+ assert_equal(<<CSS, render(<<SASS))
1731
+ foo {
1732
+ a: foo; }
1733
+ CSS
1734
+ $var: "foo"
1735
+
1736
+ foo
1737
+ a= $var
1738
+ SASS
1739
+ end
1740
+ end
1741
+
1742
+ def test_equals_properties_deep_unquote_vars
1743
+ silence_warnings do
1744
+ assert_equal(<<CSS, render(<<SASS))
1745
+ foo {
1746
+ a: foo bar;
1747
+ b: bar foo; }
1748
+ CSS
1749
+ $var: "foo"
1750
+
1751
+ foo
1752
+ a= $var "bar"
1753
+ b= "bar" $var
1754
+ SASS
1755
+ end
1756
+ end
1757
+
1758
+ def test_equals_vars_unquote_strings
1759
+ silence_warnings do
1760
+ assert_equal(<<CSS, render(<<SASS))
1761
+ foo {
1762
+ a: foo;
1763
+ b: bar;
1764
+ c: foo bar;
1765
+ d: foo, bar; }
1766
+ CSS
1767
+ $a = "foo"
1768
+ $b = bar
1769
+ $c = "foo" bar
1770
+ $d = foo, "bar"
1771
+
1772
+ foo
1773
+ a: $a
1774
+ b: $b
1775
+ c: $c
1776
+ d: $d
1777
+ SASS
1778
+ end
1779
+ end
1780
+
1781
+ def test_equals_vars_unquote_value
1782
+ silence_warnings do
1783
+ assert_equal(<<CSS, render(<<SASS))
1784
+ foo {
1785
+ a: foo; }
1786
+ CSS
1787
+ $var1: "foo"
1788
+ $var2 = $var1
1789
+
1790
+ foo
1791
+ a: $var2
1792
+ SASS
1793
+ end
1794
+ end
1795
+
1796
+ def test_equals_vars_deep_unquote_vars
1797
+ silence_warnings do
1798
+ assert_equal(<<CSS, render(<<SASS))
1799
+ foo {
1800
+ a: foo bar;
1801
+ b: bar foo; }
1802
+ CSS
1803
+ $var: "foo"
1804
+ $a = $var "bar"
1805
+ $b = "bar" $var
1806
+
1807
+ foo
1808
+ a: $a
1809
+ b: $b
1810
+ SASS
1811
+ end
1812
+ end
1813
+
1814
+ def test_equals_args_unquote_strings
1815
+ silence_warnings do
1816
+ assert_equal(<<CSS, render(<<SASS))
1817
+ foo {
1818
+ a: foo;
1819
+ b: bar;
1820
+ c: foo bar;
1821
+ d: foo, bar; }
1822
+ CSS
1823
+ =foo($a = "foo", $b = bar, $c = "foo" bar, $d = (foo, "bar"))
1824
+ foo
1825
+ a: $a
1826
+ b: $b
1827
+ c: $c
1828
+ d: $d
1829
+
1830
+ +foo
1831
+ SASS
1832
+ end
1833
+ end
1834
+
1835
+ def test_equals_args_unquote_value
1836
+ silence_warnings do
1837
+ assert_equal(<<CSS, render(<<SASS))
1838
+ foo {
1839
+ a: foo; }
1840
+ CSS
1841
+ $var1: "foo"
1842
+
1843
+ =foo($var2 = $var1)
1844
+ foo
1845
+ a: $var2
1846
+
1847
+ +foo
1848
+ SASS
1849
+ end
1850
+ end
1851
+
1852
+ def test_equals_args_deep_unquote_vars
1853
+ silence_warnings do
1854
+ assert_equal(<<CSS, render(<<SASS))
1855
+ foo {
1856
+ a: foo bar;
1857
+ b: bar foo; }
1858
+ CSS
1859
+ $var: "foo"
1860
+ =foo($a = $var "bar", $b = "bar" $var)
1861
+ foo
1862
+ a: $a
1863
+ b: $b
1864
+
1865
+ +foo
1866
+ SASS
1867
+ end
1868
+ end
1869
+
1870
+ def test_equals_properties_force_division
1871
+ silence_warnings do
1872
+ assert_equal(<<CSS, render(<<SASS))
1873
+ foo {
1874
+ a: 0.5; }
1875
+ CSS
1876
+ foo
1877
+ a = 1px/2px
1878
+ SASS
1879
+ end
1880
+ end
1881
+
1882
+ def test_warn_directive
1883
+ expected_warning = <<EXPECTATION
1884
+ WARNING: this is a warning
1885
+ on line 4 of test_warn_directive_inline.sass
1886
+
1887
+ WARNING: this is a mixin warning
1888
+ on line 2 of test_warn_directive_inline.sass, in `foo'
1889
+ from line 7 of test_warn_directive_inline.sass
1890
+ EXPECTATION
1891
+ assert_warning expected_warning do
1892
+ assert_equal <<CSS, render(<<SASS)
1893
+ bar {
1894
+ c: d; }
1895
+ CSS
1896
+ =foo
1897
+ @warn "this is a mixin warning"
1898
+
1899
+ @warn "this is a warning"
1900
+ bar
1901
+ c: d
1902
+ +foo
1903
+ SASS
1904
+ end
1905
+ end
1906
+
1907
+ def test_warn_directive_when_quiet
1908
+ assert_warning "" do
1909
+ assert_equal <<CSS, render(<<SASS, :quiet => true)
1910
+ CSS
1911
+ @warn "this is a warning"
1912
+ SASS
1913
+ end
1914
+ end
1915
+
1916
+ def test_warn_with_imports
1917
+ expected_warning = <<WARN
1918
+ WARNING: In the main file
1919
+ on line 1 of #{File.dirname(__FILE__)}/templates/warn.sass
1920
+
1921
+ WARNING: Imported
1922
+ on line 1 of #{File.dirname(__FILE__)}/templates/warn_imported.sass
1923
+ from line 2 of #{File.dirname(__FILE__)}/templates/warn.sass
1924
+
1925
+ WARNING: In an imported mixin
1926
+ on line 4 of #{File.dirname(__FILE__)}/templates/warn_imported.sass, in `emits-a-warning'
1927
+ from line 3 of #{File.dirname(__FILE__)}/templates/warn.sass
1928
+ WARN
1929
+ assert_warning expected_warning do
1930
+ renders_correctly "warn", :style => :compact, :load_paths => [File.dirname(__FILE__) + "/templates"]
1931
+ end
1932
+ end
1933
+
830
1934
  # Regression tests
831
1935
 
832
1936
  def test_parens_in_mixins
@@ -835,9 +1939,9 @@ SASS
835
1939
  color: #01ff7f;
836
1940
  background-color: #000102; }
837
1941
  CSS
838
- =foo(!c1, !c2 = rgb(0, 1, 2))
839
- color = !c1
840
- background-color = !c2
1942
+ =foo($c1, $c2: rgb(0, 1, 2))
1943
+ color: $c1
1944
+ background-color: $c2
841
1945
 
842
1946
  .foo
843
1947
  +foo(rgb(1,255,127))
@@ -862,7 +1966,7 @@ SOURCE
862
1966
  RESULT
863
1967
  .box
864
1968
  :border
865
- /*:color black
1969
+ /* :color black
866
1970
  :style solid
867
1971
  SOURCE
868
1972
 
@@ -942,8 +2046,191 @@ a
942
2046
  SASS
943
2047
  end
944
2048
 
2049
+ def test_options_available_in_environment
2050
+ assert_equal(<<CSS, render(<<SASS))
2051
+ a {
2052
+ b: nested; }
2053
+ CSS
2054
+ a
2055
+ b: option("style")
2056
+ SASS
2057
+ end
2058
+
2059
+ def test_mixin_no_arg_error
2060
+ assert_raise_message(Sass::SyntaxError, 'Invalid CSS after "($bar,": expected variable (e.g. $foo), was ")"') do
2061
+ render(<<SASS)
2062
+ =foo($bar,)
2063
+ bip: bap
2064
+ SASS
2065
+ end
2066
+ end
2067
+
2068
+ def test_import_with_commas_in_url
2069
+ assert_equal <<CSS, render(<<SASS)
2070
+ @import url(foo.css?bar,baz);
2071
+ CSS
2072
+ @import url(foo.css?bar,baz)
2073
+ SASS
2074
+ end
2075
+
2076
+ def test_function_output_with_comma
2077
+ assert_equal <<CSS, render(<<SASS)
2078
+ foo {
2079
+ a: b(c), d(e); }
2080
+ CSS
2081
+ foo
2082
+ a: b(c), d(e)
2083
+ SASS
2084
+ end
2085
+
2086
+ def test_interpolation_with_comma
2087
+ assert_equal <<CSS, render(<<SASS)
2088
+ foo {
2089
+ a: foo, bar; }
2090
+ CSS
2091
+ $foo: foo
2092
+ foo
2093
+ a: \#{$foo}, bar
2094
+ SASS
2095
+ end
2096
+
2097
+ def test_string_interpolation_with_comma
2098
+ assert_equal <<CSS, render(<<SASS)
2099
+ foo {
2100
+ a: "bip foo bap", bar; }
2101
+ CSS
2102
+ $foo: foo
2103
+ foo
2104
+ a: "bip \#{$foo} bap", bar
2105
+ SASS
2106
+ end
2107
+
2108
+ # Encodings
2109
+
2110
+ unless Haml::Util.ruby1_8?
2111
+ def test_encoding_error
2112
+ render("foo\nbar\nb\xFEaz".force_encoding("utf-8"))
2113
+ assert(false, "Expected exception")
2114
+ rescue Sass::SyntaxError => e
2115
+ assert_equal(3, e.sass_line)
2116
+ assert_equal('Invalid UTF-8 character "\xFE"', e.message)
2117
+ end
2118
+
2119
+ def test_ascii_incompatible_encoding_error
2120
+ template = "foo\nbar\nb_z".encode("utf-16le")
2121
+ template[9] = "\xFE".force_encoding("utf-16le")
2122
+ render(template)
2123
+ assert(false, "Expected exception")
2124
+ rescue Sass::SyntaxError => e
2125
+ assert_equal(3, e.sass_line)
2126
+ assert_equal('Invalid UTF-16LE character "\xFE"', e.message)
2127
+ end
2128
+
2129
+ def test_same_charset_as_encoding
2130
+ assert_renders_encoded(<<CSS, <<SASS)
2131
+ @charset "UTF-8";
2132
+ fóó {
2133
+ a: b; }
2134
+ CSS
2135
+ @charset "utf-8"
2136
+ fóó
2137
+ a: b
2138
+ SASS
2139
+ end
2140
+
2141
+ def test_different_charset_than_encoding
2142
+ assert_renders_encoded(<<CSS.force_encoding("IBM866"), <<SASS)
2143
+ @charset "IBM866";
2144
+ fóó {
2145
+ a: b; }
2146
+ CSS
2147
+ @charset "ibm866"
2148
+ fóó
2149
+ a: b
2150
+ SASS
2151
+ end
2152
+
2153
+ def test_different_encoding_than_system
2154
+ assert_renders_encoded(<<CSS.encode("IBM866"), <<SASS.encode("IBM866"))
2155
+ @charset "IBM866";
2156
+ тАЬ {
2157
+ a: b; }
2158
+ CSS
2159
+ тАЬ
2160
+ a: b
2161
+ SASS
2162
+ end
2163
+
2164
+ def test_multibyte_charset
2165
+ assert_renders_encoded(<<CSS.encode("UTF-16LE"), <<SASS.encode("UTF-16LE").force_encoding("UTF-8"))
2166
+ @charset "UTF-16LE";
2167
+ fóó {
2168
+ a: b; }
2169
+ CSS
2170
+ @charset "utf-16le"
2171
+ fóó
2172
+ a: b
2173
+ SASS
2174
+ end
2175
+
2176
+ def test_multibyte_charset_without_endian_specifier
2177
+ assert_renders_encoded(<<CSS.encode("UTF-32BE"), <<SASS.encode("UTF-32BE").force_encoding("UTF-8"))
2178
+ @charset "UTF-32BE";
2179
+ fóó {
2180
+ a: b; }
2181
+ CSS
2182
+ @charset "utf-32"
2183
+ fóó
2184
+ a: b
2185
+ SASS
2186
+ end
2187
+
2188
+ def test_utf8_bom
2189
+ assert_renders_encoded(<<CSS, <<SASS.force_encoding("BINARY"))
2190
+ @charset "UTF-8";
2191
+ fóó {
2192
+ a: b; }
2193
+ CSS
2194
+ \uFEFFfóó
2195
+ a: b
2196
+ SASS
2197
+ end
2198
+
2199
+ def test_utf16le_bom
2200
+ assert_renders_encoded(<<CSS.encode("UTF-16LE"), <<SASS.encode("UTF-16LE").force_encoding("BINARY"))
2201
+ @charset "UTF-16LE";
2202
+ fóó {
2203
+ a: b; }
2204
+ CSS
2205
+ \uFEFFfóó
2206
+ a: b
2207
+ SASS
2208
+ end
2209
+
2210
+ def test_utf32be_bom
2211
+ assert_renders_encoded(<<CSS.encode("UTF-32BE"), <<SASS.encode("UTF-32BE").force_encoding("BINARY"))
2212
+ @charset "UTF-32BE";
2213
+ fóó {
2214
+ a: b; }
2215
+ CSS
2216
+ \uFEFFfóó
2217
+ a: b
2218
+ SASS
2219
+ end
2220
+ end
2221
+
945
2222
  private
946
-
2223
+
2224
+ def assert_hash_has(hash, expected)
2225
+ expected.each {|k, v| assert_equal(v, hash[k])}
2226
+ end
2227
+
2228
+ def assert_renders_encoded(css, sass)
2229
+ result = render(sass)
2230
+ assert_equal css.encoding, result.encoding
2231
+ assert_equal css, result
2232
+ end
2233
+
947
2234
  def render(sass, options = {})
948
2235
  munge_filename options
949
2236
  Sass::Engine.new(sass, options).render
@@ -973,3 +2260,4 @@ SASS
973
2260
  Sass::Files.send(:sassc_filename, sassc_path, Sass::Engine::DEFAULT_OPTIONS)
974
2261
  end
975
2262
  end
2263
+