radiant 1.0.0.rc1 → 1.0.0.rc2

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

Potentially problematic release.


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

Files changed (623) hide show
  1. data/app/controllers/admin/resource_controller.rb +1 -0
  2. data/app/controllers/application_controller.rb +1 -1
  3. data/app/models/deprecated_tags.rb +5 -48
  4. data/app/models/user_action_observer.rb +8 -2
  5. data/app/views/layouts/application.html.haml +1 -1
  6. data/config/boot.rb +2 -2
  7. data/config/environment.rb +5 -3
  8. data/config/initializers/compass.rb +5 -0
  9. data/config/locales/en.yml +2 -2
  10. data/features/step_definitions/admin/pages_management_steps.rb +6 -1
  11. data/features/support/paths.rb +13 -0
  12. data/lib/generators/extension/templates/cucumber_env.rb +5 -1
  13. data/lib/generators/extension/templates/cucumber_paths.rb +20 -12
  14. data/lib/generators/extension/templates/gemspec.rb +10 -5
  15. data/lib/generators/instance/templates/instance_environment.rb +4 -2
  16. data/lib/radiant.rb +1 -1
  17. data/lib/radiant/gem_dependency_fix.rb +1 -1
  18. data/lib/radiant/taggable.rb +42 -3
  19. data/lib/tasks/framework.rake +6 -6
  20. data/{vendor/plugins/haml/test/sass/results/warn.css → log/.keep} +0 -0
  21. data/radiant.gemspec +3 -2
  22. data/script/console +2 -2
  23. data/spec/controllers/admin/pages_controller_spec.rb +1 -1
  24. data/spec/lib/radiant/taggable_spec.rb +53 -0
  25. data/vendor/extensions/archive/Rakefile +3 -3
  26. data/vendor/extensions/archive/features/support/env.rb +5 -1
  27. data/vendor/extensions/archive/features/support/paths.rb +20 -12
  28. data/vendor/extensions/archive/radiant-archive-extension.gemspec +10 -5
  29. data/vendor/extensions/archive/tmp/cache/meta/0e/da69d02186242cdfda62e46044566f2bc50f3a +0 -0
  30. data/vendor/extensions/{assets → clipped}/LICENSE +0 -0
  31. data/vendor/extensions/{assets → clipped}/README.md +21 -21
  32. data/vendor/extensions/{assets → clipped}/Rakefile +29 -31
  33. data/vendor/extensions/{assets → clipped}/app/controllers/admin/assets_controller.rb +16 -11
  34. data/vendor/extensions/clipped/app/controllers/admin/page_attachments_controller.rb +18 -0
  35. data/vendor/extensions/clipped/app/helpers/admin/assets_helper.rb +16 -0
  36. data/vendor/extensions/{assets → clipped}/app/models/asset.rb +12 -9
  37. data/vendor/extensions/{assets → clipped}/app/models/asset_tags.rb +36 -53
  38. data/vendor/extensions/{assets → clipped}/app/models/asset_type.rb +1 -7
  39. data/vendor/extensions/{assets → clipped}/app/models/old_page_attachment.rb +0 -0
  40. data/vendor/extensions/clipped/app/models/page_attachment.rb +21 -0
  41. data/vendor/extensions/{assets → clipped}/app/views/admin/assets/_asset.html.haml +2 -2
  42. data/vendor/extensions/{assets → clipped}/app/views/admin/assets/_asset_table.html.haml +4 -4
  43. data/vendor/extensions/clipped/app/views/admin/assets/_errors.html.haml +3 -0
  44. data/vendor/extensions/{assets → clipped}/app/views/admin/assets/_form.html.haml +2 -2
  45. data/vendor/extensions/{assets → clipped}/app/views/admin/assets/_page_assets.html.haml +1 -1
  46. data/vendor/extensions/{assets → clipped}/app/views/admin/assets/_search.html.haml +0 -0
  47. data/vendor/extensions/{assets → clipped}/app/views/admin/assets/_search_results.html.haml +1 -1
  48. data/vendor/extensions/{assets → clipped}/app/views/admin/assets/edit.html.haml +7 -8
  49. data/vendor/extensions/{assets → clipped}/app/views/admin/assets/index.html.haml +3 -2
  50. data/vendor/extensions/{assets → clipped}/app/views/admin/assets/new.html.haml +2 -2
  51. data/vendor/extensions/clipped/app/views/admin/assets/refresh.html.haml +14 -0
  52. data/vendor/extensions/{assets → clipped}/app/views/admin/assets/remove.html.haml +3 -3
  53. data/vendor/extensions/{assets → clipped}/app/views/admin/configuration/_edit.html.haml +1 -1
  54. data/vendor/extensions/{assets → clipped}/app/views/admin/configuration/_show.html.haml +1 -1
  55. data/vendor/extensions/clipped/app/views/admin/page_attachments/_attachment.html.haml +25 -0
  56. data/vendor/extensions/{assets → clipped}/app/views/admin/page_parts/_page_part.html.haml +3 -2
  57. data/vendor/extensions/{assets → clipped}/app/views/admin/pages/_asset_popups.html.haml +7 -7
  58. data/vendor/extensions/clipped/app/views/admin/pages/_assets.html.haml +11 -0
  59. data/vendor/extensions/{assets → clipped}/app/views/admin/removed/_assets_bucket.html.haml +1 -1
  60. data/vendor/extensions/{assets → clipped}/app/views/admin/removed/_assets_container.html.haml +9 -9
  61. data/vendor/extensions/{assets → clipped}/app/views/admin/removed/_bucket.html.haml +1 -1
  62. data/vendor/extensions/{assets → clipped}/app/views/admin/removed/_bucket_asset.html.haml +2 -2
  63. data/vendor/extensions/clipped/app/views/admin/removed/_show_bucket_link.html.haml +4 -0
  64. data/vendor/extensions/{assets → clipped}/app/views/admin/removed/_upload_to_page.html.haml +2 -2
  65. data/vendor/extensions/{assets → clipped}/app/views/admin/removed/bucket/_iframe.html.haml +0 -0
  66. data/vendor/extensions/{assets → clipped}/artwork/icons.png +0 -0
  67. data/vendor/extensions/{assets/assets_extension.rb → clipped/clipped_extension.rb} +10 -10
  68. data/vendor/extensions/{assets → clipped}/config/initializers/interpolation.rb +0 -0
  69. data/vendor/extensions/clipped/config/initializers/processors.rb +12 -0
  70. data/vendor/extensions/{assets → clipped}/config/initializers/radiant_config.rb +5 -4
  71. data/vendor/extensions/{assets → clipped}/config/locales/en.yml +6 -3
  72. data/vendor/extensions/{assets → clipped}/config/locales/nl.yml +1 -1
  73. data/vendor/extensions/{assets → clipped}/config/routes.rb +2 -2
  74. data/vendor/extensions/clipped/cucumber.yml +1 -0
  75. data/vendor/extensions/{assets → clipped}/db/migrate/001_create_assets.rb +0 -0
  76. data/vendor/extensions/{assets → clipped}/db/migrate/002_create_paperclip_attributes.rb +0 -0
  77. data/vendor/extensions/{assets → clipped}/db/migrate/003_create_user_observer.rb +0 -0
  78. data/vendor/extensions/{assets → clipped}/db/migrate/004_create_page_attachments.rb +0 -0
  79. data/vendor/extensions/{assets → clipped}/db/migrate/005_rename_users.rb +0 -0
  80. data/vendor/extensions/{assets → clipped}/db/migrate/20090316132151_disable_file_types.rb +0 -0
  81. data/vendor/extensions/{assets → clipped}/db/migrate/20110513205050_asset_uuid.rb +0 -0
  82. data/vendor/extensions/clipped/features/support/env.rb +11 -0
  83. data/vendor/extensions/clipped/features/support/paths.rb +22 -0
  84. data/vendor/extensions/{assets/lib/assets_admin_ui.rb → clipped/lib/clipped_admin_ui.rb} +1 -1
  85. data/vendor/extensions/{assets → clipped}/lib/page_asset_associations.rb +1 -1
  86. data/vendor/extensions/{assets → clipped}/lib/paperclip/frame_grab.rb +0 -0
  87. data/vendor/extensions/clipped/lib/radiant-clipped-extension.rb +2 -0
  88. data/vendor/extensions/clipped/lib/radiant-clipped-extension/version.rb +3 -0
  89. data/vendor/extensions/{assets/lib/tasks/assets_extension_tasks.rake → clipped/lib/tasks/clipped_extension_tasks.rake} +22 -16
  90. data/vendor/extensions/{assets → clipped}/lib/tasks/paperclip_tasks.rake +0 -0
  91. data/{public → vendor/extensions/clipped/public}/flash/ZeroClipboard.swf +0 -0
  92. data/{public → vendor/extensions/clipped/public}/images/admin/assets/add.png +0 -0
  93. data/{public → vendor/extensions/clipped/public}/images/admin/assets/archive_icon.png +0 -0
  94. data/{public → vendor/extensions/clipped/public}/images/admin/assets/audio_icon.png +0 -0
  95. data/{public → vendor/extensions/clipped/public}/images/admin/assets/audio_thumbnail.png +0 -0
  96. data/{public → vendor/extensions/clipped/public}/images/admin/assets/c_icon.png +0 -0
  97. data/{public → vendor/extensions/clipped/public}/images/admin/assets/copy.png +0 -0
  98. data/{public → vendor/extensions/clipped/public}/images/admin/assets/css_icon.png +0 -0
  99. data/{public → vendor/extensions/clipped/public}/images/admin/assets/database_icon.png +0 -0
  100. data/{public → vendor/extensions/clipped/public}/images/admin/assets/delete.png +0 -0
  101. data/{public → vendor/extensions/clipped/public}/images/admin/assets/document_icon.png +0 -0
  102. data/{public → vendor/extensions/clipped/public}/images/admin/assets/document_thumbnail.png +0 -0
  103. data/{public → vendor/extensions/clipped/public}/images/admin/assets/flash_icon.png +0 -0
  104. data/{public → vendor/extensions/clipped/public}/images/admin/assets/flash_thumbnail.png +0 -0
  105. data/{public → vendor/extensions/clipped/public}/images/admin/assets/font_icon.png +0 -0
  106. data/{public → vendor/extensions/clipped/public}/images/admin/assets/gzip_icon.png +0 -0
  107. data/{public → vendor/extensions/clipped/public}/images/admin/assets/html_icon.png +0 -0
  108. data/{public → vendor/extensions/clipped/public}/images/admin/assets/image_icon.png +0 -0
  109. data/{public → vendor/extensions/clipped/public}/images/admin/assets/image_thumbnail.png +0 -0
  110. data/{public → vendor/extensions/clipped/public}/images/admin/assets/java_icon.png +0 -0
  111. data/{public → vendor/extensions/clipped/public}/images/admin/assets/page_edit.png +0 -0
  112. data/{public → vendor/extensions/clipped/public}/images/admin/assets/perl_icon.png +0 -0
  113. data/{public → vendor/extensions/clipped/public}/images/admin/assets/php_icon.png +0 -0
  114. data/{public → vendor/extensions/clipped/public}/images/admin/assets/presentation_icon.png +0 -0
  115. data/{public → vendor/extensions/clipped/public}/images/admin/assets/python_icon.png +0 -0
  116. data/{public → vendor/extensions/clipped/public}/images/admin/assets/reorder_assets.png +0 -0
  117. data/{public → vendor/extensions/clipped/public}/images/admin/assets/ruby_icon.png +0 -0
  118. data/{public → vendor/extensions/clipped/public}/images/admin/assets/script_icon.png +0 -0
  119. data/{public → vendor/extensions/clipped/public}/images/admin/assets/spreadsheet_icon.png +0 -0
  120. data/{public → vendor/extensions/clipped/public}/images/admin/assets/tar_icon.png +0 -0
  121. data/{public → vendor/extensions/clipped/public}/images/admin/assets/unknown_icon.png +0 -0
  122. data/{public → vendor/extensions/clipped/public}/images/admin/assets/unknown_thumbnail.png +0 -0
  123. data/{public → vendor/extensions/clipped/public}/images/admin/assets/video_icon.png +0 -0
  124. data/{public → vendor/extensions/clipped/public}/images/admin/assets/video_thumbnail.png +0 -0
  125. data/{public → vendor/extensions/clipped/public}/images/admin/assets/xml_icon.png +0 -0
  126. data/{public → vendor/extensions/clipped/public}/images/admin/assets/zip_icon.png +0 -0
  127. data/vendor/extensions/{assets → clipped}/public/javascripts/admin/assets.js +66 -8
  128. data/vendor/extensions/{assets → clipped}/public/stylesheets/sass/admin/assets.sass +12 -6
  129. data/vendor/extensions/clipped/radiant-clipped-extension.gemspec +33 -0
  130. data/vendor/extensions/{assets → clipped}/spec/controllers/admin/assets_controller_spec.rb +0 -0
  131. data/vendor/extensions/clipped/spec/controllers/admin/page_attachments_controller_spec.rb +50 -0
  132. data/vendor/extensions/{assets → clipped}/spec/datasets/assets_dataset.rb +2 -1
  133. data/vendor/extensions/{assets/spec/lib/tag_deprecation_spec.rb → clipped/spec/lib/asset_tags_spec.rb} +3 -15
  134. data/vendor/extensions/{assets → clipped}/spec/models/asset_spec.rb +3 -2
  135. data/vendor/extensions/{assets → clipped}/spec/models/asset_type_spec.rb +0 -0
  136. data/vendor/extensions/{assets → clipped}/spec/spec.opts +0 -0
  137. data/vendor/extensions/{assets → clipped}/spec/spec_helper.rb +0 -0
  138. data/vendor/extensions/{assets → clipped}/wireframes/edit-page-assets-2.bmml +0 -0
  139. data/vendor/extensions/{assets → clipped}/wireframes/edit-page-assets-2.png +0 -0
  140. data/vendor/extensions/{assets → clipped}/wireframes/edit-page-assets-3.bmml +0 -0
  141. data/vendor/extensions/{assets → clipped}/wireframes/edit-page-assets-3.png +0 -0
  142. data/vendor/extensions/{assets → clipped}/wireframes/edit-page-assets.bmml +0 -0
  143. data/vendor/extensions/{assets → clipped}/wireframes/edit-page-assets.png +0 -0
  144. data/vendor/extensions/{assets → clipped}/wireframes/edit-page.bmml +0 -0
  145. data/vendor/extensions/{assets → clipped}/wireframes/edit-page.png +0 -0
  146. data/vendor/extensions/sheets/Rakefile +30 -18
  147. data/vendor/extensions/sheets/app/controllers/admin/sheet_resource_controller.rb +1 -1
  148. data/vendor/extensions/sheets/app/models/sheet.rb +4 -0
  149. data/vendor/extensions/sheets/app/views/admin/scripts/index.html.haml +9 -5
  150. data/vendor/extensions/sheets/app/views/admin/styles/index.html.haml +1 -1
  151. data/vendor/extensions/sheets/config/locales/en.yml +3 -1
  152. data/vendor/extensions/sheets/features/admin/managing_javascripts.feature +65 -0
  153. data/vendor/extensions/sheets/features/admin/managing_stylesheets.feature +65 -0
  154. data/vendor/extensions/sheets/features/support/env.rb +2 -7
  155. data/vendor/extensions/sheets/features/support/paths.rb +9 -12
  156. data/vendor/extensions/sheets/lib/radiant-sheets-extension/version.rb +1 -1
  157. data/vendor/extensions/sheets/radiant-sheets-extension.gemspec +9 -4
  158. data/vendor/extensions/sheets/spec/datasets/javascripts_dataset.rb +3 -1
  159. data/vendor/extensions/sheets/spec/datasets/stylesheets_dataset.rb +3 -1
  160. data/vendor/extensions/sheets/spec/lib/javascript_tags_spec.rb +4 -4
  161. data/vendor/extensions/sheets/spec/lib/stylesheet_tags_spec.rb +4 -4
  162. metadata +189 -599
  163. data/Gemfile +0 -3
  164. data/lib/generators/extension/templates/cucumber_datasets_loader.rb +0 -3
  165. data/public/assets/1/2375_1115822414591_1197894784_30347214_1109_n.jpg +0 -0
  166. data/public/assets/1/2375_1115822414591_1197894784_30347214_1109_n_icon.png +0 -0
  167. data/public/assets/1/2375_1115822414591_1197894784_30347214_1109_n_normal.jpg +0 -0
  168. data/public/assets/1/2375_1115822414591_1197894784_30347214_1109_n_thumbnail.png +0 -0
  169. data/public/images/roasters/banner.jpg +0 -0
  170. data/public/images/roasters/closelabel.gif +0 -0
  171. data/public/images/roasters/comment.png +0 -0
  172. data/public/images/roasters/gallery1.jpg +0 -0
  173. data/public/images/roasters/gallery2.jpg +0 -0
  174. data/public/images/roasters/gallery3.jpg +0 -0
  175. data/public/images/roasters/gallery4.jpg +0 -0
  176. data/public/images/roasters/gift.gif +0 -0
  177. data/public/images/roasters/green.gif +0 -0
  178. data/public/images/roasters/nav-background.gif +0 -0
  179. data/public/images/roasters/nav-divider.gif +0 -0
  180. data/public/images/roasters/nextlabel.gif +0 -0
  181. data/public/images/roasters/open.gif +0 -0
  182. data/public/images/roasters/preview-1.jpg +0 -0
  183. data/public/images/roasters/preview.jpg +0 -0
  184. data/public/images/roasters/prevlabel.gif +0 -0
  185. data/public/images/roasters/prize.gif +0 -0
  186. data/public/images/roasters/recycle.gif +0 -0
  187. data/public/images/roasters/rss.gif +0 -0
  188. data/public/images/roasters/thumb-grinder.jpg +0 -0
  189. data/public/images/roasters/thumb-grower.jpg +0 -0
  190. data/public/images/roasters/thumb-roaster.jpg +0 -0
  191. data/public/images/roasters/truck.gif +0 -0
  192. data/vendor/extensions/assets/HELP_admin.markdown +0 -69
  193. data/vendor/extensions/assets/VERSION +0 -1
  194. data/vendor/extensions/assets/app/controllers/admin/page_attachments_controller.rb +0 -45
  195. data/vendor/extensions/assets/app/helpers/admin/assets_helper.rb +0 -11
  196. data/vendor/extensions/assets/app/models/page_attachment.rb +0 -14
  197. data/vendor/extensions/assets/app/views/admin/assets/_errors.html.haml +0 -3
  198. data/vendor/extensions/assets/app/views/admin/page_attachments/_attachment.html.haml +0 -22
  199. data/vendor/extensions/assets/app/views/admin/page_attachments/_new_attachment.html.haml +0 -18
  200. data/vendor/extensions/assets/app/views/admin/pages/_assets.html.haml +0 -13
  201. data/vendor/extensions/assets/app/views/admin/removed/_show_bucket_link.html.haml +0 -4
  202. data/vendor/extensions/assets/lib/tag_deprecation.rb +0 -73
  203. data/vendor/extensions/assets/public/flash/ZeroClipboard.swf +0 -0
  204. data/vendor/extensions/assets/public/images/admin/assets/add.png +0 -0
  205. data/vendor/extensions/assets/public/images/admin/assets/archive_icon.png +0 -0
  206. data/vendor/extensions/assets/public/images/admin/assets/audio_icon.png +0 -0
  207. data/vendor/extensions/assets/public/images/admin/assets/audio_thumbnail.png +0 -0
  208. data/vendor/extensions/assets/public/images/admin/assets/c_icon.png +0 -0
  209. data/vendor/extensions/assets/public/images/admin/assets/copy.png +0 -0
  210. data/vendor/extensions/assets/public/images/admin/assets/css_icon.png +0 -0
  211. data/vendor/extensions/assets/public/images/admin/assets/database_icon.png +0 -0
  212. data/vendor/extensions/assets/public/images/admin/assets/delete.png +0 -0
  213. data/vendor/extensions/assets/public/images/admin/assets/document_icon.png +0 -0
  214. data/vendor/extensions/assets/public/images/admin/assets/document_thumbnail.png +0 -0
  215. data/vendor/extensions/assets/public/images/admin/assets/flash_icon.png +0 -0
  216. data/vendor/extensions/assets/public/images/admin/assets/flash_thumbnail.png +0 -0
  217. data/vendor/extensions/assets/public/images/admin/assets/font_icon.png +0 -0
  218. data/vendor/extensions/assets/public/images/admin/assets/gzip_icon.png +0 -0
  219. data/vendor/extensions/assets/public/images/admin/assets/html_icon.png +0 -0
  220. data/vendor/extensions/assets/public/images/admin/assets/image_icon.png +0 -0
  221. data/vendor/extensions/assets/public/images/admin/assets/image_thumbnail.png +0 -0
  222. data/vendor/extensions/assets/public/images/admin/assets/java_icon.png +0 -0
  223. data/vendor/extensions/assets/public/images/admin/assets/page_edit.png +0 -0
  224. data/vendor/extensions/assets/public/images/admin/assets/perl_icon.png +0 -0
  225. data/vendor/extensions/assets/public/images/admin/assets/php_icon.png +0 -0
  226. data/vendor/extensions/assets/public/images/admin/assets/presentation_icon.png +0 -0
  227. data/vendor/extensions/assets/public/images/admin/assets/python_icon.png +0 -0
  228. data/vendor/extensions/assets/public/images/admin/assets/reorder_assets.png +0 -0
  229. data/vendor/extensions/assets/public/images/admin/assets/ruby_icon.png +0 -0
  230. data/vendor/extensions/assets/public/images/admin/assets/script_icon.png +0 -0
  231. data/vendor/extensions/assets/public/images/admin/assets/spreadsheet_icon.png +0 -0
  232. data/vendor/extensions/assets/public/images/admin/assets/tar_icon.png +0 -0
  233. data/vendor/extensions/assets/public/images/admin/assets/unknown_icon.png +0 -0
  234. data/vendor/extensions/assets/public/images/admin/assets/unknown_thumbnail.png +0 -0
  235. data/vendor/extensions/assets/public/images/admin/assets/video_icon.png +0 -0
  236. data/vendor/extensions/assets/public/images/admin/assets/video_thumbnail.png +0 -0
  237. data/vendor/extensions/assets/public/images/admin/assets/xml_icon.png +0 -0
  238. data/vendor/extensions/assets/public/images/admin/assets/zip_icon.png +0 -0
  239. data/vendor/extensions/assets/spec/controllers/admin/page_attachment_controller_spec.rb +0 -51
  240. data/vendor/extensions/assets/spec/lib/asset_tags_spec.rb +0 -9
  241. data/vendor/plugins/haml/CONTRIBUTING +0 -4
  242. data/vendor/plugins/haml/MIT-LICENSE +0 -20
  243. data/vendor/plugins/haml/README.md +0 -298
  244. data/vendor/plugins/haml/Rakefile +0 -436
  245. data/vendor/plugins/haml/TODO +0 -53
  246. data/vendor/plugins/haml/VERSION +0 -1
  247. data/vendor/plugins/haml/VERSION_NAME +0 -1
  248. data/vendor/plugins/haml/bin/css2sass +0 -13
  249. data/vendor/plugins/haml/bin/haml +0 -9
  250. data/vendor/plugins/haml/bin/html2haml +0 -7
  251. data/vendor/plugins/haml/bin/sass +0 -8
  252. data/vendor/plugins/haml/bin/sass-convert +0 -7
  253. data/vendor/plugins/haml/doc-src/FAQ.md +0 -187
  254. data/vendor/plugins/haml/doc-src/HAML_CHANGELOG.md +0 -1091
  255. data/vendor/plugins/haml/doc-src/HAML_REFERENCE.md +0 -1344
  256. data/vendor/plugins/haml/doc-src/INDENTED_SYNTAX.md +0 -210
  257. data/vendor/plugins/haml/doc-src/SASS_CHANGELOG.md +0 -1914
  258. data/vendor/plugins/haml/doc-src/SASS_REFERENCE.md +0 -1680
  259. data/vendor/plugins/haml/doc-src/SCSS_FOR_SASS_USERS.md +0 -155
  260. data/vendor/plugins/haml/ext/extconf.rb +0 -10
  261. data/vendor/plugins/haml/extra/haml-mode.el +0 -753
  262. data/vendor/plugins/haml/extra/sass-mode.el +0 -207
  263. data/vendor/plugins/haml/extra/update_watch.rb +0 -13
  264. data/vendor/plugins/haml/haml.gemspec +0 -35
  265. data/vendor/plugins/haml/init.rb +0 -18
  266. data/vendor/plugins/haml/init.rbc +0 -404
  267. data/vendor/plugins/haml/lib/haml.rb +0 -44
  268. data/vendor/plugins/haml/lib/haml.rbc +0 -569
  269. data/vendor/plugins/haml/lib/haml/buffer.rb +0 -320
  270. data/vendor/plugins/haml/lib/haml/buffer.rbc +0 -4048
  271. data/vendor/plugins/haml/lib/haml/engine.rb +0 -308
  272. data/vendor/plugins/haml/lib/haml/engine.rbc +0 -3852
  273. data/vendor/plugins/haml/lib/haml/error.rb +0 -22
  274. data/vendor/plugins/haml/lib/haml/error.rbc +0 -339
  275. data/vendor/plugins/haml/lib/haml/exec.rb +0 -862
  276. data/vendor/plugins/haml/lib/haml/filters.rb +0 -371
  277. data/vendor/plugins/haml/lib/haml/filters.rbc +0 -5617
  278. data/vendor/plugins/haml/lib/haml/helpers.rb +0 -605
  279. data/vendor/plugins/haml/lib/haml/helpers.rbc +0 -7086
  280. data/vendor/plugins/haml/lib/haml/helpers/action_view_extensions.rb +0 -57
  281. data/vendor/plugins/haml/lib/haml/helpers/action_view_extensions.rbc +0 -522
  282. data/vendor/plugins/haml/lib/haml/helpers/action_view_mods.rb +0 -244
  283. data/vendor/plugins/haml/lib/haml/helpers/action_view_mods.rbc +0 -5515
  284. data/vendor/plugins/haml/lib/haml/helpers/xss_mods.rb +0 -165
  285. data/vendor/plugins/haml/lib/haml/html.rb +0 -428
  286. data/vendor/plugins/haml/lib/haml/html/erb.rb +0 -141
  287. data/vendor/plugins/haml/lib/haml/precompiler.rb +0 -1104
  288. data/vendor/plugins/haml/lib/haml/precompiler.rbc +0 -22247
  289. data/vendor/plugins/haml/lib/haml/railtie.rb +0 -21
  290. data/vendor/plugins/haml/lib/haml/railtie.rbc +0 -409
  291. data/vendor/plugins/haml/lib/haml/root.rb +0 -7
  292. data/vendor/plugins/haml/lib/haml/root.rbc +0 -160
  293. data/vendor/plugins/haml/lib/haml/shared.rb +0 -78
  294. data/vendor/plugins/haml/lib/haml/shared.rbc +0 -1137
  295. data/vendor/plugins/haml/lib/haml/template.rb +0 -97
  296. data/vendor/plugins/haml/lib/haml/template.rbc +0 -1838
  297. data/vendor/plugins/haml/lib/haml/template/options.rb +0 -16
  298. data/vendor/plugins/haml/lib/haml/template/options.rbc +0 -235
  299. data/vendor/plugins/haml/lib/haml/template/patch.rb +0 -58
  300. data/vendor/plugins/haml/lib/haml/template/plugin.rb +0 -122
  301. data/vendor/plugins/haml/lib/haml/template/plugin.rbc +0 -2720
  302. data/vendor/plugins/haml/lib/haml/util.rb +0 -809
  303. data/vendor/plugins/haml/lib/haml/util.rbc +0 -12059
  304. data/vendor/plugins/haml/lib/haml/util/subset_map.rb +0 -101
  305. data/vendor/plugins/haml/lib/haml/util/subset_map.rbc +0 -1316
  306. data/vendor/plugins/haml/lib/haml/version.rb +0 -102
  307. data/vendor/plugins/haml/lib/haml/version.rbc +0 -1671
  308. data/vendor/plugins/haml/lib/sass.rb +0 -29
  309. data/vendor/plugins/haml/lib/sass.rbc +0 -492
  310. data/vendor/plugins/haml/lib/sass/callbacks.rb +0 -52
  311. data/vendor/plugins/haml/lib/sass/callbacks.rbc +0 -388
  312. data/vendor/plugins/haml/lib/sass/css.rb +0 -294
  313. data/vendor/plugins/haml/lib/sass/engine.rb +0 -720
  314. data/vendor/plugins/haml/lib/sass/engine.rbc +0 -17020
  315. data/vendor/plugins/haml/lib/sass/environment.rb +0 -143
  316. data/vendor/plugins/haml/lib/sass/environment.rbc +0 -1751
  317. data/vendor/plugins/haml/lib/sass/error.rb +0 -198
  318. data/vendor/plugins/haml/lib/sass/error.rbc +0 -2801
  319. data/vendor/plugins/haml/lib/sass/files.rb +0 -160
  320. data/vendor/plugins/haml/lib/sass/files.rbc +0 -3118
  321. data/vendor/plugins/haml/lib/sass/less.rb +0 -382
  322. data/vendor/plugins/haml/lib/sass/plugin.rb +0 -276
  323. data/vendor/plugins/haml/lib/sass/plugin.rbc +0 -4356
  324. data/vendor/plugins/haml/lib/sass/plugin/configuration.rb +0 -221
  325. data/vendor/plugins/haml/lib/sass/plugin/configuration.rbc +0 -1343
  326. data/vendor/plugins/haml/lib/sass/plugin/generic.rb +0 -15
  327. data/vendor/plugins/haml/lib/sass/plugin/merb.rb +0 -37
  328. data/vendor/plugins/haml/lib/sass/plugin/rack.rb +0 -47
  329. data/vendor/plugins/haml/lib/sass/plugin/rack.rbc +0 -446
  330. data/vendor/plugins/haml/lib/sass/plugin/rails.rb +0 -32
  331. data/vendor/plugins/haml/lib/sass/plugin/rails.rbc +0 -879
  332. data/vendor/plugins/haml/lib/sass/plugin/staleness_checker.rb +0 -123
  333. data/vendor/plugins/haml/lib/sass/plugin/staleness_checker.rbc +0 -2019
  334. data/vendor/plugins/haml/lib/sass/repl.rb +0 -58
  335. data/vendor/plugins/haml/lib/sass/script.rb +0 -63
  336. data/vendor/plugins/haml/lib/sass/script.rbc +0 -1188
  337. data/vendor/plugins/haml/lib/sass/script/bool.rb +0 -18
  338. data/vendor/plugins/haml/lib/sass/script/bool.rbc +0 -366
  339. data/vendor/plugins/haml/lib/sass/script/color.rb +0 -491
  340. data/vendor/plugins/haml/lib/sass/script/color.rbc +0 -8148
  341. data/vendor/plugins/haml/lib/sass/script/css_lexer.rb +0 -29
  342. data/vendor/plugins/haml/lib/sass/script/css_lexer.rbc +0 -809
  343. data/vendor/plugins/haml/lib/sass/script/css_parser.rb +0 -31
  344. data/vendor/plugins/haml/lib/sass/script/css_parser.rbc +0 -628
  345. data/vendor/plugins/haml/lib/sass/script/funcall.rb +0 -77
  346. data/vendor/plugins/haml/lib/sass/script/funcall.rbc +0 -1805
  347. data/vendor/plugins/haml/lib/sass/script/functions.rb +0 -861
  348. data/vendor/plugins/haml/lib/sass/script/functions.rbc +0 -8418
  349. data/vendor/plugins/haml/lib/sass/script/interpolation.rb +0 -70
  350. data/vendor/plugins/haml/lib/sass/script/interpolation.rbc +0 -1225
  351. data/vendor/plugins/haml/lib/sass/script/lexer.rb +0 -337
  352. data/vendor/plugins/haml/lib/sass/script/lexer.rbc +0 -7231
  353. data/vendor/plugins/haml/lib/sass/script/literal.rb +0 -236
  354. data/vendor/plugins/haml/lib/sass/script/literal.rbc +0 -3365
  355. data/vendor/plugins/haml/lib/sass/script/node.rb +0 -112
  356. data/vendor/plugins/haml/lib/sass/script/node.rbc +0 -1418
  357. data/vendor/plugins/haml/lib/sass/script/number.rb +0 -423
  358. data/vendor/plugins/haml/lib/sass/script/number.rbc +0 -6024
  359. data/vendor/plugins/haml/lib/sass/script/operation.rb +0 -95
  360. data/vendor/plugins/haml/lib/sass/script/operation.rbc +0 -1856
  361. data/vendor/plugins/haml/lib/sass/script/parser.rb +0 -401
  362. data/vendor/plugins/haml/lib/sass/script/parser.rbc +0 -8418
  363. data/vendor/plugins/haml/lib/sass/script/string.rb +0 -67
  364. data/vendor/plugins/haml/lib/sass/script/string.rbc +0 -1357
  365. data/vendor/plugins/haml/lib/sass/script/string_interpolation.rb +0 -93
  366. data/vendor/plugins/haml/lib/sass/script/string_interpolation.rbc +0 -1643
  367. data/vendor/plugins/haml/lib/sass/script/unary_operation.rb +0 -57
  368. data/vendor/plugins/haml/lib/sass/script/unary_operation.rbc +0 -1144
  369. data/vendor/plugins/haml/lib/sass/script/variable.rb +0 -48
  370. data/vendor/plugins/haml/lib/sass/script/variable.rbc +0 -844
  371. data/vendor/plugins/haml/lib/sass/scss.rb +0 -17
  372. data/vendor/plugins/haml/lib/sass/scss.rbc +0 -242
  373. data/vendor/plugins/haml/lib/sass/scss/css_parser.rb +0 -46
  374. data/vendor/plugins/haml/lib/sass/scss/css_parser.rbc +0 -1106
  375. data/vendor/plugins/haml/lib/sass/scss/parser.rb +0 -846
  376. data/vendor/plugins/haml/lib/sass/scss/parser.rbc +0 -19348
  377. data/vendor/plugins/haml/lib/sass/scss/rx.rb +0 -126
  378. data/vendor/plugins/haml/lib/sass/scss/rx.rbc +0 -2849
  379. data/vendor/plugins/haml/lib/sass/scss/sass_parser.rb +0 -11
  380. data/vendor/plugins/haml/lib/sass/scss/sass_parser.rbc +0 -287
  381. data/vendor/plugins/haml/lib/sass/scss/script_lexer.rb +0 -15
  382. data/vendor/plugins/haml/lib/sass/scss/script_lexer.rbc +0 -439
  383. data/vendor/plugins/haml/lib/sass/scss/script_parser.rb +0 -25
  384. data/vendor/plugins/haml/lib/sass/scss/script_parser.rbc +0 -482
  385. data/vendor/plugins/haml/lib/sass/scss/static_parser.rb +0 -40
  386. data/vendor/plugins/haml/lib/sass/scss/static_parser.rbc +0 -971
  387. data/vendor/plugins/haml/lib/sass/selector.rb +0 -361
  388. data/vendor/plugins/haml/lib/sass/selector.rbc +0 -4193
  389. data/vendor/plugins/haml/lib/sass/selector/abstract_sequence.rb +0 -62
  390. data/vendor/plugins/haml/lib/sass/selector/abstract_sequence.rbc +0 -798
  391. data/vendor/plugins/haml/lib/sass/selector/comma_sequence.rb +0 -82
  392. data/vendor/plugins/haml/lib/sass/selector/comma_sequence.rbc +0 -1814
  393. data/vendor/plugins/haml/lib/sass/selector/sequence.rb +0 -237
  394. data/vendor/plugins/haml/lib/sass/selector/sequence.rbc +0 -4928
  395. data/vendor/plugins/haml/lib/sass/selector/simple.rb +0 -113
  396. data/vendor/plugins/haml/lib/sass/selector/simple.rbc +0 -1553
  397. data/vendor/plugins/haml/lib/sass/selector/simple_sequence.rb +0 -136
  398. data/vendor/plugins/haml/lib/sass/selector/simple_sequence.rbc +0 -2346
  399. data/vendor/plugins/haml/lib/sass/tree/charset_node.rb +0 -37
  400. data/vendor/plugins/haml/lib/sass/tree/charset_node.rbc +0 -606
  401. data/vendor/plugins/haml/lib/sass/tree/comment_node.rb +0 -128
  402. data/vendor/plugins/haml/lib/sass/tree/comment_node.rbc +0 -2397
  403. data/vendor/plugins/haml/lib/sass/tree/debug_node.rb +0 -36
  404. data/vendor/plugins/haml/lib/sass/tree/debug_node.rbc +0 -740
  405. data/vendor/plugins/haml/lib/sass/tree/directive_node.rb +0 -75
  406. data/vendor/plugins/haml/lib/sass/tree/directive_node.rbc +0 -1302
  407. data/vendor/plugins/haml/lib/sass/tree/extend_node.rb +0 -65
  408. data/vendor/plugins/haml/lib/sass/tree/extend_node.rbc +0 -1276
  409. data/vendor/plugins/haml/lib/sass/tree/for_node.rb +0 -67
  410. data/vendor/plugins/haml/lib/sass/tree/for_node.rbc +0 -1145
  411. data/vendor/plugins/haml/lib/sass/tree/if_node.rb +0 -81
  412. data/vendor/plugins/haml/lib/sass/tree/if_node.rbc +0 -1119
  413. data/vendor/plugins/haml/lib/sass/tree/import_node.rb +0 -102
  414. data/vendor/plugins/haml/lib/sass/tree/import_node.rbc +0 -2242
  415. data/vendor/plugins/haml/lib/sass/tree/mixin_def_node.rb +0 -60
  416. data/vendor/plugins/haml/lib/sass/tree/mixin_def_node.rbc +0 -1001
  417. data/vendor/plugins/haml/lib/sass/tree/mixin_node.rb +0 -123
  418. data/vendor/plugins/haml/lib/sass/tree/mixin_node.rbc +0 -3355
  419. data/vendor/plugins/haml/lib/sass/tree/node.rb +0 -465
  420. data/vendor/plugins/haml/lib/sass/tree/node.rbc +0 -5533
  421. data/vendor/plugins/haml/lib/sass/tree/prop_node.rb +0 -220
  422. data/vendor/plugins/haml/lib/sass/tree/prop_node.rbc +0 -3949
  423. data/vendor/plugins/haml/lib/sass/tree/root_node.rb +0 -157
  424. data/vendor/plugins/haml/lib/sass/tree/root_node.rbc +0 -3112
  425. data/vendor/plugins/haml/lib/sass/tree/rule_node.rb +0 -273
  426. data/vendor/plugins/haml/lib/sass/tree/rule_node.rbc +0 -5636
  427. data/vendor/plugins/haml/lib/sass/tree/variable_node.rb +0 -39
  428. data/vendor/plugins/haml/lib/sass/tree/variable_node.rbc +0 -845
  429. data/vendor/plugins/haml/lib/sass/tree/warn_node.rb +0 -42
  430. data/vendor/plugins/haml/lib/sass/tree/warn_node.rbc +0 -1043
  431. data/vendor/plugins/haml/lib/sass/tree/while_node.rb +0 -48
  432. data/vendor/plugins/haml/lib/sass/tree/while_node.rbc +0 -722
  433. data/vendor/plugins/haml/rails/init.rb +0 -1
  434. data/vendor/plugins/haml/test/benchmark.rb +0 -99
  435. data/vendor/plugins/haml/test/haml/engine_test.rb +0 -1805
  436. data/vendor/plugins/haml/test/haml/erb/_av_partial_1.erb +0 -12
  437. data/vendor/plugins/haml/test/haml/erb/_av_partial_2.erb +0 -8
  438. data/vendor/plugins/haml/test/haml/erb/action_view.erb +0 -62
  439. data/vendor/plugins/haml/test/haml/erb/standard.erb +0 -54
  440. data/vendor/plugins/haml/test/haml/helper_test.rb +0 -450
  441. data/vendor/plugins/haml/test/haml/html2haml/erb_tests.rb +0 -426
  442. data/vendor/plugins/haml/test/haml/html2haml_test.rb +0 -336
  443. data/vendor/plugins/haml/test/haml/markaby/standard.mab +0 -52
  444. data/vendor/plugins/haml/test/haml/mocks/article.rb +0 -6
  445. data/vendor/plugins/haml/test/haml/results/content_for_layout.xhtml +0 -12
  446. data/vendor/plugins/haml/test/haml/results/eval_suppressed.xhtml +0 -9
  447. data/vendor/plugins/haml/test/haml/results/filters.xhtml +0 -62
  448. data/vendor/plugins/haml/test/haml/results/helpers.xhtml +0 -70
  449. data/vendor/plugins/haml/test/haml/results/helpful.xhtml +0 -10
  450. data/vendor/plugins/haml/test/haml/results/just_stuff.xhtml +0 -70
  451. data/vendor/plugins/haml/test/haml/results/list.xhtml +0 -12
  452. data/vendor/plugins/haml/test/haml/results/nuke_inner_whitespace.xhtml +0 -40
  453. data/vendor/plugins/haml/test/haml/results/nuke_outer_whitespace.xhtml +0 -148
  454. data/vendor/plugins/haml/test/haml/results/original_engine.xhtml +0 -20
  455. data/vendor/plugins/haml/test/haml/results/partial_layout.xhtml +0 -5
  456. data/vendor/plugins/haml/test/haml/results/partials.xhtml +0 -21
  457. data/vendor/plugins/haml/test/haml/results/render_layout.xhtml +0 -3
  458. data/vendor/plugins/haml/test/haml/results/silent_script.xhtml +0 -74
  459. data/vendor/plugins/haml/test/haml/results/standard.xhtml +0 -162
  460. data/vendor/plugins/haml/test/haml/results/tag_parsing.xhtml +0 -23
  461. data/vendor/plugins/haml/test/haml/results/very_basic.xhtml +0 -5
  462. data/vendor/plugins/haml/test/haml/results/whitespace_handling.xhtml +0 -89
  463. data/vendor/plugins/haml/test/haml/spec/LICENSE +0 -14
  464. data/vendor/plugins/haml/test/haml/spec/README.md +0 -106
  465. data/vendor/plugins/haml/test/haml/spec/lua_haml_spec.lua +0 -38
  466. data/vendor/plugins/haml/test/haml/spec/perl_haml_test.pl +0 -81
  467. data/vendor/plugins/haml/test/haml/spec/ruby_haml_test.rb +0 -19
  468. data/vendor/plugins/haml/test/haml/spec/tests.json +0 -603
  469. data/vendor/plugins/haml/test/haml/spec_test.rb +0 -44
  470. data/vendor/plugins/haml/test/haml/template_test.rb +0 -417
  471. data/vendor/plugins/haml/test/haml/templates/_av_partial_1.haml +0 -9
  472. data/vendor/plugins/haml/test/haml/templates/_av_partial_1_ugly.haml +0 -9
  473. data/vendor/plugins/haml/test/haml/templates/_av_partial_2.haml +0 -5
  474. data/vendor/plugins/haml/test/haml/templates/_av_partial_2_ugly.haml +0 -5
  475. data/vendor/plugins/haml/test/haml/templates/_layout.erb +0 -3
  476. data/vendor/plugins/haml/test/haml/templates/_layout_for_partial.haml +0 -3
  477. data/vendor/plugins/haml/test/haml/templates/_partial.haml +0 -8
  478. data/vendor/plugins/haml/test/haml/templates/_text_area.haml +0 -3
  479. data/vendor/plugins/haml/test/haml/templates/action_view.haml +0 -47
  480. data/vendor/plugins/haml/test/haml/templates/action_view_ugly.haml +0 -47
  481. data/vendor/plugins/haml/test/haml/templates/breakage.haml +0 -8
  482. data/vendor/plugins/haml/test/haml/templates/content_for_layout.haml +0 -8
  483. data/vendor/plugins/haml/test/haml/templates/eval_suppressed.haml +0 -11
  484. data/vendor/plugins/haml/test/haml/templates/filters.haml +0 -66
  485. data/vendor/plugins/haml/test/haml/templates/helpers.haml +0 -55
  486. data/vendor/plugins/haml/test/haml/templates/helpful.haml +0 -11
  487. data/vendor/plugins/haml/test/haml/templates/just_stuff.haml +0 -85
  488. data/vendor/plugins/haml/test/haml/templates/list.haml +0 -12
  489. data/vendor/plugins/haml/test/haml/templates/nuke_inner_whitespace.haml +0 -32
  490. data/vendor/plugins/haml/test/haml/templates/nuke_outer_whitespace.haml +0 -144
  491. data/vendor/plugins/haml/test/haml/templates/original_engine.haml +0 -17
  492. data/vendor/plugins/haml/test/haml/templates/partial_layout.haml +0 -7
  493. data/vendor/plugins/haml/test/haml/templates/partialize.haml +0 -1
  494. data/vendor/plugins/haml/test/haml/templates/partials.haml +0 -12
  495. data/vendor/plugins/haml/test/haml/templates/render_layout.haml +0 -2
  496. data/vendor/plugins/haml/test/haml/templates/silent_script.haml +0 -40
  497. data/vendor/plugins/haml/test/haml/templates/standard.haml +0 -42
  498. data/vendor/plugins/haml/test/haml/templates/standard_ugly.haml +0 -42
  499. data/vendor/plugins/haml/test/haml/templates/tag_parsing.haml +0 -21
  500. data/vendor/plugins/haml/test/haml/templates/very_basic.haml +0 -4
  501. data/vendor/plugins/haml/test/haml/templates/whitespace_handling.haml +0 -87
  502. data/vendor/plugins/haml/test/haml/util/subset_map_test.rb +0 -91
  503. data/vendor/plugins/haml/test/haml/util_test.rb +0 -268
  504. data/vendor/plugins/haml/test/linked_rails.rb +0 -42
  505. data/vendor/plugins/haml/test/sass/callbacks_test.rb +0 -61
  506. data/vendor/plugins/haml/test/sass/conversion_test.rb +0 -1218
  507. data/vendor/plugins/haml/test/sass/css2sass_test.rb +0 -364
  508. data/vendor/plugins/haml/test/sass/data/hsl-rgb.txt +0 -319
  509. data/vendor/plugins/haml/test/sass/engine_test.rb +0 -2263
  510. data/vendor/plugins/haml/test/sass/extend_test.rb +0 -1348
  511. data/vendor/plugins/haml/test/sass/functions_test.rb +0 -556
  512. data/vendor/plugins/haml/test/sass/less_conversion_test.rb +0 -653
  513. data/vendor/plugins/haml/test/sass/more_results/more1.css +0 -9
  514. data/vendor/plugins/haml/test/sass/more_results/more1_with_line_comments.css +0 -26
  515. data/vendor/plugins/haml/test/sass/more_results/more_import.css +0 -29
  516. data/vendor/plugins/haml/test/sass/more_templates/_more_partial.sass +0 -2
  517. data/vendor/plugins/haml/test/sass/more_templates/more1.sass +0 -23
  518. data/vendor/plugins/haml/test/sass/more_templates/more_import.sass +0 -11
  519. data/vendor/plugins/haml/test/sass/plugin_test.rb +0 -433
  520. data/vendor/plugins/haml/test/sass/results/alt.css +0 -4
  521. data/vendor/plugins/haml/test/sass/results/basic.css +0 -9
  522. data/vendor/plugins/haml/test/sass/results/compact.css +0 -5
  523. data/vendor/plugins/haml/test/sass/results/complex.css +0 -86
  524. data/vendor/plugins/haml/test/sass/results/compressed.css +0 -1
  525. data/vendor/plugins/haml/test/sass/results/expanded.css +0 -19
  526. data/vendor/plugins/haml/test/sass/results/import.css +0 -31
  527. data/vendor/plugins/haml/test/sass/results/import_charset.css +0 -4
  528. data/vendor/plugins/haml/test/sass/results/import_charset_1_8.css +0 -4
  529. data/vendor/plugins/haml/test/sass/results/import_charset_ibm866.css +0 -4
  530. data/vendor/plugins/haml/test/sass/results/line_numbers.css +0 -49
  531. data/vendor/plugins/haml/test/sass/results/mixins.css +0 -95
  532. data/vendor/plugins/haml/test/sass/results/multiline.css +0 -24
  533. data/vendor/plugins/haml/test/sass/results/nested.css +0 -22
  534. data/vendor/plugins/haml/test/sass/results/options.css +0 -1
  535. data/vendor/plugins/haml/test/sass/results/parent_ref.css +0 -13
  536. data/vendor/plugins/haml/test/sass/results/script.css +0 -16
  537. data/vendor/plugins/haml/test/sass/results/scss_import.css +0 -31
  538. data/vendor/plugins/haml/test/sass/results/scss_importee.css +0 -2
  539. data/vendor/plugins/haml/test/sass/results/subdir/nested_subdir/nested_subdir.css +0 -1
  540. data/vendor/plugins/haml/test/sass/results/subdir/subdir.css +0 -3
  541. data/vendor/plugins/haml/test/sass/results/units.css +0 -11
  542. data/vendor/plugins/haml/test/sass/results/warn_imported.css +0 -0
  543. data/vendor/plugins/haml/test/sass/script_conversion_test.rb +0 -314
  544. data/vendor/plugins/haml/test/sass/script_test.rb +0 -470
  545. data/vendor/plugins/haml/test/sass/scss/css_test.rb +0 -916
  546. data/vendor/plugins/haml/test/sass/scss/rx_test.rb +0 -156
  547. data/vendor/plugins/haml/test/sass/scss/scss_test.rb +0 -1088
  548. data/vendor/plugins/haml/test/sass/scss/test_helper.rb +0 -37
  549. data/vendor/plugins/haml/test/sass/templates/_imported_charset_ibm866.sass +0 -4
  550. data/vendor/plugins/haml/test/sass/templates/_imported_charset_utf8.sass +0 -4
  551. data/vendor/plugins/haml/test/sass/templates/_partial.sass +0 -2
  552. data/vendor/plugins/haml/test/sass/templates/alt.sass +0 -16
  553. data/vendor/plugins/haml/test/sass/templates/basic.sass +0 -23
  554. data/vendor/plugins/haml/test/sass/templates/bork1.sass +0 -2
  555. data/vendor/plugins/haml/test/sass/templates/bork2.sass +0 -2
  556. data/vendor/plugins/haml/test/sass/templates/bork3.sass +0 -2
  557. data/vendor/plugins/haml/test/sass/templates/bork4.sass +0 -2
  558. data/vendor/plugins/haml/test/sass/templates/compact.sass +0 -17
  559. data/vendor/plugins/haml/test/sass/templates/complex.sass +0 -305
  560. data/vendor/plugins/haml/test/sass/templates/compressed.sass +0 -15
  561. data/vendor/plugins/haml/test/sass/templates/expanded.sass +0 -17
  562. data/vendor/plugins/haml/test/sass/templates/import.sass +0 -12
  563. data/vendor/plugins/haml/test/sass/templates/import_charset.sass +0 -7
  564. data/vendor/plugins/haml/test/sass/templates/import_charset_1_8.sass +0 -4
  565. data/vendor/plugins/haml/test/sass/templates/import_charset_ibm866.sass +0 -9
  566. data/vendor/plugins/haml/test/sass/templates/importee.less +0 -2
  567. data/vendor/plugins/haml/test/sass/templates/importee.sass +0 -19
  568. data/vendor/plugins/haml/test/sass/templates/line_numbers.sass +0 -13
  569. data/vendor/plugins/haml/test/sass/templates/mixin_bork.sass +0 -5
  570. data/vendor/plugins/haml/test/sass/templates/mixins.sass +0 -76
  571. data/vendor/plugins/haml/test/sass/templates/multiline.sass +0 -20
  572. data/vendor/plugins/haml/test/sass/templates/nested.sass +0 -25
  573. data/vendor/plugins/haml/test/sass/templates/nested_bork1.sass +0 -2
  574. data/vendor/plugins/haml/test/sass/templates/nested_bork2.sass +0 -2
  575. data/vendor/plugins/haml/test/sass/templates/nested_bork3.sass +0 -2
  576. data/vendor/plugins/haml/test/sass/templates/nested_bork4.sass +0 -2
  577. data/vendor/plugins/haml/test/sass/templates/nested_mixin_bork.sass +0 -6
  578. data/vendor/plugins/haml/test/sass/templates/options.sass +0 -2
  579. data/vendor/plugins/haml/test/sass/templates/parent_ref.sass +0 -25
  580. data/vendor/plugins/haml/test/sass/templates/script.sass +0 -101
  581. data/vendor/plugins/haml/test/sass/templates/scss_import.scss +0 -11
  582. data/vendor/plugins/haml/test/sass/templates/scss_importee.scss +0 -1
  583. data/vendor/plugins/haml/test/sass/templates/subdir/nested_subdir/_nested_partial.sass +0 -2
  584. data/vendor/plugins/haml/test/sass/templates/subdir/nested_subdir/nested_subdir.sass +0 -3
  585. data/vendor/plugins/haml/test/sass/templates/subdir/subdir.sass +0 -6
  586. data/vendor/plugins/haml/test/sass/templates/units.sass +0 -11
  587. data/vendor/plugins/haml/test/sass/templates/warn.sass +0 -3
  588. data/vendor/plugins/haml/test/sass/templates/warn_imported.sass +0 -4
  589. data/vendor/plugins/haml/test/test_helper.rb +0 -98
  590. data/vendor/plugins/haml/vendor/fssm/LICENSE +0 -20
  591. data/vendor/plugins/haml/vendor/fssm/README.markdown +0 -55
  592. data/vendor/plugins/haml/vendor/fssm/Rakefile +0 -59
  593. data/vendor/plugins/haml/vendor/fssm/VERSION.yml +0 -5
  594. data/vendor/plugins/haml/vendor/fssm/example.rb +0 -9
  595. data/vendor/plugins/haml/vendor/fssm/fssm.gemspec +0 -77
  596. data/vendor/plugins/haml/vendor/fssm/lib/fssm.rb +0 -33
  597. data/vendor/plugins/haml/vendor/fssm/lib/fssm/backends/fsevents.rb +0 -36
  598. data/vendor/plugins/haml/vendor/fssm/lib/fssm/backends/inotify.rb +0 -26
  599. data/vendor/plugins/haml/vendor/fssm/lib/fssm/backends/polling.rb +0 -25
  600. data/vendor/plugins/haml/vendor/fssm/lib/fssm/backends/rubycocoa/fsevents.rb +0 -131
  601. data/vendor/plugins/haml/vendor/fssm/lib/fssm/monitor.rb +0 -26
  602. data/vendor/plugins/haml/vendor/fssm/lib/fssm/path.rb +0 -91
  603. data/vendor/plugins/haml/vendor/fssm/lib/fssm/pathname.rb +0 -502
  604. data/vendor/plugins/haml/vendor/fssm/lib/fssm/state/directory.rb +0 -57
  605. data/vendor/plugins/haml/vendor/fssm/lib/fssm/state/file.rb +0 -24
  606. data/vendor/plugins/haml/vendor/fssm/lib/fssm/support.rb +0 -63
  607. data/vendor/plugins/haml/vendor/fssm/lib/fssm/tree.rb +0 -176
  608. data/vendor/plugins/haml/vendor/fssm/profile/prof-cache.rb +0 -40
  609. data/vendor/plugins/haml/vendor/fssm/profile/prof-fssm-pathname.html +0 -1231
  610. data/vendor/plugins/haml/vendor/fssm/profile/prof-pathname.rb +0 -68
  611. data/vendor/plugins/haml/vendor/fssm/profile/prof-plain-pathname.html +0 -988
  612. data/vendor/plugins/haml/vendor/fssm/profile/prof.html +0 -2379
  613. data/vendor/plugins/haml/vendor/fssm/spec/path_spec.rb +0 -75
  614. data/vendor/plugins/haml/vendor/fssm/spec/root/duck/quack.txt +0 -0
  615. data/vendor/plugins/haml/vendor/fssm/spec/root/file.css +0 -0
  616. data/vendor/plugins/haml/vendor/fssm/spec/root/file.rb +0 -0
  617. data/vendor/plugins/haml/vendor/fssm/spec/root/file.yml +0 -0
  618. data/vendor/plugins/haml/vendor/fssm/spec/root/moo/cow.txt +0 -0
  619. data/vendor/plugins/haml/vendor/fssm/spec/spec_helper.rb +0 -14
  620. data/vendor/plugins/haml/yard/callbacks.rb +0 -29
  621. data/vendor/plugins/haml/yard/default/fulldoc/html/css/common.sass +0 -26
  622. data/vendor/plugins/haml/yard/default/layout/html/footer.erb +0 -12
  623. data/vendor/plugins/haml/yard/inherited_hash.rb +0 -41
@@ -1,846 +0,0 @@
1
- require 'strscan'
2
- require 'set'
3
-
4
- module Sass
5
- module SCSS
6
- # The parser for SCSS.
7
- # It parses a string of code into a tree of {Sass::Tree::Node}s.
8
- class Parser
9
- # @param str [String, StringScanner] The source document to parse.
10
- # Note that `Parser` *won't* raise a nice error message if this isn't properly parsed;
11
- # for that, you should use the higher-level {Sass::Engine} or {Sass::CSS}.
12
- # @param line [Fixnum] The line on which the source string appeared,
13
- # if it's part of another document
14
- def initialize(str, line = 1)
15
- @template = str
16
- @line = line
17
- @strs = []
18
- end
19
-
20
- # Parses an SCSS document.
21
- #
22
- # @return [Sass::Tree::RootNode] The root node of the document tree
23
- # @raise [Sass::SyntaxError] if there's a syntax error in the document
24
- def parse
25
- init_scanner!
26
- root = stylesheet
27
- expected("selector or at-rule") unless @scanner.eos?
28
- root
29
- end
30
-
31
- # Parses an identifier with interpolation.
32
- # Note that this won't assert that the identifier takes up the entire input string;
33
- # it's meant to be used with `StringScanner`s as part of other parsers.
34
- #
35
- # @return [Array<String, Sass::Script::Node>, nil]
36
- # The interpolated identifier, or nil if none could be parsed
37
- def parse_interp_ident
38
- init_scanner!
39
- interp_ident
40
- end
41
-
42
- private
43
-
44
- include Sass::SCSS::RX
45
-
46
- def init_scanner!
47
- @scanner =
48
- if @template.is_a?(StringScanner)
49
- @template
50
- else
51
- StringScanner.new(@template.gsub("\r", ""))
52
- end
53
- end
54
-
55
- def stylesheet
56
- node = node(Sass::Tree::RootNode.new(@scanner.string))
57
- block_contents(node, :stylesheet) {s(node)}
58
- end
59
-
60
- def s(node)
61
- while tok(S) || tok(CDC) || tok(CDO) || (c = tok(SINGLE_LINE_COMMENT)) || (c = tok(COMMENT))
62
- next unless c
63
- process_comment c, node
64
- c = nil
65
- end
66
- true
67
- end
68
-
69
- def ss
70
- nil while tok(S) || tok(SINGLE_LINE_COMMENT) || tok(COMMENT)
71
- true
72
- end
73
-
74
- def ss_comments(node)
75
- while tok(S) || (c = tok(SINGLE_LINE_COMMENT)) || (c = tok(COMMENT))
76
- next unless c
77
- process_comment c, node
78
- c = nil
79
- end
80
-
81
- true
82
- end
83
-
84
- def whitespace
85
- return unless tok(S) || tok(SINGLE_LINE_COMMENT) || tok(COMMENT)
86
- ss
87
- end
88
-
89
- def process_comment(text, node)
90
- single_line = text =~ /^\/\//
91
- pre_str = single_line ? "" : @scanner.
92
- string[0...@scanner.pos].
93
- reverse[/.*?\*\/(.*?)($|\Z)/, 1].
94
- reverse.gsub(/[^\s]/, ' ')
95
- text = text.sub(/^\s*\/\//, '/*').gsub(/^\s*\/\//, ' *') + ' */' if single_line
96
- comment = Sass::Tree::CommentNode.new(pre_str + text, single_line)
97
- comment.line = @line - text.count("\n")
98
- node << comment
99
- end
100
-
101
- DIRECTIVES = Set[:mixin, :include, :debug, :warn, :for, :while, :if, :extend, :import,
102
- :media, :charset]
103
-
104
- def directive
105
- return unless tok(/@/)
106
- name = tok!(IDENT)
107
- ss
108
-
109
- if dir = special_directive(name)
110
- return dir
111
- end
112
-
113
- # Most at-rules take expressions (e.g. @import),
114
- # but some (e.g. @page) take selector-like arguments
115
- val = str {break unless expr}
116
- val ||= CssParser.new(@scanner, @line).parse_selector_string
117
- node = node(Sass::Tree::DirectiveNode.new("@#{name} #{val}".strip))
118
-
119
- if tok(/\{/)
120
- node.has_children = true
121
- block_contents(node, :directive)
122
- tok!(/\}/)
123
- end
124
-
125
- node
126
- end
127
-
128
- def special_directive(name)
129
- sym = name.gsub('-', '_').to_sym
130
- DIRECTIVES.include?(sym) && send("#{sym}_directive")
131
- end
132
-
133
- def mixin_directive
134
- name = tok! IDENT
135
- args = sass_script(:parse_mixin_definition_arglist)
136
- ss
137
- block(node(Sass::Tree::MixinDefNode.new(name, args)), :directive)
138
- end
139
-
140
- def include_directive
141
- name = tok! IDENT
142
- args = sass_script(:parse_mixin_include_arglist)
143
- ss
144
- node(Sass::Tree::MixinNode.new(name, args))
145
- end
146
-
147
- def debug_directive
148
- node(Sass::Tree::DebugNode.new(sass_script(:parse)))
149
- end
150
-
151
- def warn_directive
152
- node(Sass::Tree::WarnNode.new(sass_script(:parse)))
153
- end
154
-
155
- def for_directive
156
- tok!(/\$/)
157
- var = tok! IDENT
158
- ss
159
-
160
- tok!(/from/)
161
- from = sass_script(:parse_until, Set["to", "through"])
162
- ss
163
-
164
- @expected = '"to" or "through"'
165
- exclusive = (tok(/to/) || tok!(/through/)) == 'to'
166
- to = sass_script(:parse)
167
- ss
168
-
169
- block(node(Sass::Tree::ForNode.new(var, from, to, exclusive)), :directive)
170
- end
171
-
172
- def while_directive
173
- expr = sass_script(:parse)
174
- ss
175
- block(node(Sass::Tree::WhileNode.new(expr)), :directive)
176
- end
177
-
178
- def if_directive
179
- expr = sass_script(:parse)
180
- ss
181
- node = block(node(Sass::Tree::IfNode.new(expr)), :directive)
182
- pos = @scanner.pos
183
- ss
184
-
185
- else_block(node) ||
186
- begin
187
- # Backtrack in case there are any comments we want to parse
188
- @scanner.pos = pos
189
- node
190
- end
191
- end
192
-
193
- def else_block(node)
194
- return unless tok(/@else/)
195
- ss
196
- else_node = block(
197
- Sass::Tree::IfNode.new((sass_script(:parse) if tok(/if/))),
198
- :directive)
199
- node.add_else(else_node)
200
- pos = @scanner.pos
201
- ss
202
-
203
- else_block(node) ||
204
- begin
205
- # Backtrack in case there are any comments we want to parse
206
- @scanner.pos = pos
207
- node
208
- end
209
- end
210
-
211
- def extend_directive
212
- node(Sass::Tree::ExtendNode.new(expr!(:selector)))
213
- end
214
-
215
- def import_directive
216
- values = []
217
-
218
- loop do
219
- values << expr!(:import_arg)
220
- break if use_css_import? || !tok(/,\s*/)
221
- end
222
-
223
- return values
224
- end
225
-
226
- def import_arg
227
- return unless arg = tok(STRING) || (uri = tok!(URI))
228
- path = @scanner[1] || @scanner[2] || @scanner[3]
229
- ss
230
-
231
- media = str {media_query_list}.strip
232
-
233
- if uri || path =~ /^http:\/\// || !media.strip.empty? || use_css_import?
234
- return node(Sass::Tree::DirectiveNode.new("@import #{arg} #{media}".strip))
235
- end
236
-
237
- node(Sass::Tree::ImportNode.new(path.strip))
238
- end
239
-
240
- def use_css_import?; false; end
241
-
242
- def media_directive
243
- val = str {media_query_list}.strip
244
- block(node(Sass::Tree::DirectiveNode.new("@media #{val}")), :directive)
245
- end
246
-
247
- # http://www.w3.org/TR/css3-mediaqueries/#syntax
248
- def media_query_list
249
- return unless media_query
250
-
251
- ss
252
- while tok(/,/)
253
- ss; expr!(:media_query); ss
254
- end
255
-
256
- true
257
- end
258
-
259
- def media_query
260
- if tok(/only|not/i)
261
- ss
262
- @expected = "media type (e.g. print, screen)"
263
- tok!(IDENT)
264
- ss
265
- elsif !tok(IDENT) && !media_expr
266
- return
267
- end
268
-
269
- ss
270
- while tok(/and/i)
271
- ss; expr!(:media_expr); ss
272
- end
273
-
274
- true
275
- end
276
-
277
- def media_expr
278
- return unless tok(/\(/)
279
- ss
280
- @expected = "media feature (e.g. min-device-width, color)"
281
- tok!(IDENT)
282
- ss
283
-
284
- if tok(/:/)
285
- ss; expr!(:expr)
286
- end
287
- tok!(/\)/)
288
- ss
289
-
290
- true
291
- end
292
-
293
- def charset_directive
294
- tok! STRING
295
- name = @scanner[1] || @scanner[2]
296
- ss
297
- node(Sass::Tree::CharsetNode.new(name))
298
- end
299
-
300
- def variable
301
- return unless tok(/\$/)
302
- name = tok!(IDENT)
303
- ss; tok!(/:/); ss
304
-
305
- expr = sass_script(:parse)
306
- guarded = tok(DEFAULT)
307
- node(Sass::Tree::VariableNode.new(name, expr, guarded))
308
- end
309
-
310
- def operator
311
- # Many of these operators (all except / and ,)
312
- # are disallowed by the CSS spec,
313
- # but they're included here for compatibility
314
- # with some proprietary MS properties
315
- str {ss if tok(/[\/,:.=]/)}
316
- end
317
-
318
- def unary_operator
319
- tok(/[+-]/)
320
- end
321
-
322
- def ruleset
323
- return unless rules = selector_sequence
324
- block(node(Sass::Tree::RuleNode.new(rules.flatten.compact)), :ruleset)
325
- end
326
-
327
- def block(node, context)
328
- node.has_children = true
329
- tok!(/\{/)
330
- block_contents(node, context)
331
- tok!(/\}/)
332
- node
333
- end
334
-
335
- # A block may contain declarations and/or rulesets
336
- def block_contents(node, context)
337
- block_given? ? yield : ss_comments(node)
338
- node << (child = block_child(context))
339
- while tok(/;/) || has_children?(child)
340
- block_given? ? yield : ss_comments(node)
341
- node << (child = block_child(context))
342
- end
343
- node
344
- end
345
-
346
- def block_child(context)
347
- return variable || directive || ruleset if context == :stylesheet
348
- variable || directive || declaration_or_ruleset
349
- end
350
-
351
- def has_children?(child_or_array)
352
- return false unless child_or_array
353
- return child_or_array.last.has_children if child_or_array.is_a?(Array)
354
- return child_or_array.has_children
355
- end
356
-
357
- # This is a nasty hack, and the only place in the parser
358
- # that requires backtracking.
359
- # The reason is that we can't figure out if certain strings
360
- # are declarations or rulesets with fixed finite lookahead.
361
- # For example, "foo:bar baz baz baz..." could be either a property
362
- # or a selector.
363
- #
364
- # To handle this, we simply check if it works as a property
365
- # (which is the most common case)
366
- # and, if it doesn't, try it as a ruleset.
367
- #
368
- # We could eke some more efficiency out of this
369
- # by handling some easy cases (first token isn't an identifier,
370
- # no colon after the identifier, whitespace after the colon),
371
- # but I'm not sure the gains would be worth the added complexity.
372
- def declaration_or_ruleset
373
- pos = @scanner.pos
374
- line = @line
375
- old_use_property_exception, @use_property_exception =
376
- @use_property_exception, false
377
- begin
378
- decl = declaration
379
- unless decl && decl.has_children
380
- # We want an exception if it's not there,
381
- # but we don't want to consume if it is
382
- tok!(/[;}]/) unless tok?(/[;}]/)
383
- end
384
- return decl
385
- rescue Sass::SyntaxError => decl_err
386
- end
387
-
388
- @line = line
389
- @scanner.pos = pos
390
-
391
- begin
392
- return ruleset
393
- rescue Sass::SyntaxError => ruleset_err
394
- raise @use_property_exception ? decl_err : ruleset_err
395
- end
396
- ensure
397
- @use_property_exception = old_use_property_exception
398
- end
399
-
400
- def selector_sequence
401
- if sel = tok(STATIC_SELECTOR)
402
- return [sel]
403
- end
404
-
405
- rules = []
406
- return unless v = selector
407
- rules.concat v
408
-
409
- while tok(/,/)
410
- rules << ',' << str {ss}
411
- rules.concat expr!(:selector)
412
- end
413
- rules
414
- end
415
-
416
- def selector
417
- return unless sel = _selector
418
- sel.to_a
419
- end
420
-
421
- def selector_comma_sequence
422
- return unless sel = _selector
423
- selectors = [sel]
424
- while tok(/,/)
425
- ws = str{ss}
426
- selectors << expr!(:_selector)
427
- selectors[-1] = Selector::Sequence.new(["\n"] + selectors.last.members) if ws.include?("\n")
428
- end
429
- Selector::CommaSequence.new(selectors)
430
- end
431
-
432
- def _selector
433
- # The combinator here allows the "> E" hack
434
- return unless val = combinator || simple_selector_sequence
435
- nl = str{ss}.include?("\n")
436
- res = []
437
- res << val
438
- res << "\n" if nl
439
-
440
- while val = combinator || simple_selector_sequence
441
- res << val
442
- res << "\n" if str{ss}.include?("\n")
443
- end
444
- Selector::Sequence.new(res.compact)
445
- end
446
-
447
- def combinator
448
- tok(PLUS) || tok(GREATER) || tok(TILDE)
449
- end
450
-
451
- def simple_selector_sequence
452
- # This allows for stuff like http://www.w3.org/TR/css3-animations/#keyframes-
453
- return expr unless e = element_name || id_selector || class_selector ||
454
- attrib || negation || pseudo || parent_selector || interpolation_selector
455
- res = [e]
456
-
457
- # The tok(/\*/) allows the "E*" hack
458
- while v = element_name || id_selector || class_selector ||
459
- attrib || negation || pseudo || interpolation_selector ||
460
- (tok(/\*/) && Selector::Universal.new(nil))
461
- res << v
462
- end
463
-
464
- if tok?(/&/)
465
- begin
466
- expected('"{"')
467
- rescue Sass::SyntaxError => e
468
- e.message << "\n\n" << <<MESSAGE
469
- In Sass 3, the parent selector & can only be used where element names are valid,
470
- since it could potentially be replaced by an element name.
471
- MESSAGE
472
- raise e
473
- end
474
- end
475
-
476
- Selector::SimpleSequence.new(res)
477
- end
478
-
479
- def parent_selector
480
- return unless tok(/&/)
481
- Selector::Parent.new
482
- end
483
-
484
- def class_selector
485
- return unless tok(/\./)
486
- @expected = "class name"
487
- Selector::Class.new(merge(expr!(:interp_ident)))
488
- end
489
-
490
- def id_selector
491
- return unless tok(/#(?!\{)/)
492
- @expected = "id name"
493
- Selector::Id.new(merge(expr!(:interp_name)))
494
- end
495
-
496
- def element_name
497
- return unless name = interp_ident || tok(/\*/) || (tok?(/\|/) && "")
498
- if tok(/\|/)
499
- @expected = "element name or *"
500
- ns = name
501
- name = interp_ident || tok!(/\*/)
502
- end
503
-
504
- if name == '*'
505
- Selector::Universal.new(merge(ns))
506
- else
507
- Selector::Element.new(merge(name), merge(ns))
508
- end
509
- end
510
-
511
- def interpolation_selector
512
- return unless script = interpolation
513
- Selector::Interpolation.new(script)
514
- end
515
-
516
- def attrib
517
- return unless tok(/\[/)
518
- ss
519
- ns, name = attrib_name!
520
- ss
521
-
522
- if op = tok(/=/) ||
523
- tok(INCLUDES) ||
524
- tok(DASHMATCH) ||
525
- tok(PREFIXMATCH) ||
526
- tok(SUFFIXMATCH) ||
527
- tok(SUBSTRINGMATCH)
528
- @expected = "identifier or string"
529
- ss
530
- if val = tok(IDENT)
531
- val = [val]
532
- else
533
- val = expr!(:interp_string)
534
- end
535
- ss
536
- end
537
- tok(/\]/)
538
-
539
- Selector::Attribute.new(merge(name), merge(ns), op, merge(val))
540
- end
541
-
542
- def attrib_name!
543
- if name_or_ns = interp_ident
544
- # E, E|E
545
- if tok(/\|(?!=)/)
546
- ns = name_or_ns
547
- name = interp_ident
548
- else
549
- name = name_or_ns
550
- end
551
- else
552
- # *|E or |E
553
- ns = [tok(/\*/) || ""]
554
- tok!(/\|/)
555
- name = expr!(:interp_ident)
556
- end
557
- return ns, name
558
- end
559
-
560
- def pseudo
561
- return unless s = tok(/::?/)
562
- @expected = "pseudoclass or pseudoelement"
563
- name = expr!(:interp_ident)
564
- if tok(/\(/)
565
- ss
566
- arg = expr!(:pseudo_expr)
567
- tok!(/\)/)
568
- end
569
- Selector::Pseudo.new(s == ':' ? :class : :element, merge(name), merge(arg))
570
- end
571
-
572
- def pseudo_expr
573
- return unless e = tok(PLUS) || tok(/-/) || tok(NUMBER) ||
574
- interp_string || tok(IDENT) || interpolation
575
- res = [e, str{ss}]
576
- while e = tok(PLUS) || tok(/-/) || tok(NUMBER) ||
577
- interp_string || tok(IDENT) || interpolation
578
- res << e << str{ss}
579
- end
580
- res
581
- end
582
-
583
- def negation
584
- return unless name = tok(NOT) || tok(MOZ_ANY)
585
- ss
586
- @expected = "selector"
587
- sel = selector_comma_sequence
588
- tok!(/\)/)
589
- Selector::SelectorPseudoClass.new(name[1...-1], sel)
590
- end
591
-
592
- def declaration
593
- # This allows the "*prop: val", ":prop: val", and ".prop: val" hacks
594
- if s = tok(/[:\*\.]|\#(?!\{)/)
595
- @use_property_exception = s !~ /[\.\#]/
596
- name = [s, str{ss}, *expr!(:interp_ident)]
597
- else
598
- return unless name = interp_ident
599
- name = [name] if name.is_a?(String)
600
- end
601
- if comment = tok(COMMENT)
602
- name << comment
603
- end
604
- ss
605
-
606
- tok!(/:/)
607
- space, value = value!
608
- ss
609
- require_block = tok?(/\{/)
610
-
611
- node = node(Sass::Tree::PropNode.new(name.flatten.compact, value, :new))
612
-
613
- return node unless require_block
614
- nested_properties! node, space
615
- end
616
-
617
- def value!
618
- space = !str {ss}.empty?
619
- @use_property_exception ||= space || !tok?(IDENT)
620
-
621
- return true, Sass::Script::String.new("") if tok?(/\{/)
622
- # This is a bit of a dirty trick:
623
- # if the value is completely static,
624
- # we don't parse it at all, and instead return a plain old string
625
- # containing the value.
626
- # This results in a dramatic speed increase.
627
- if val = tok(STATIC_VALUE)
628
- return space, Sass::Script::String.new(val.strip)
629
- end
630
- return space, sass_script(:parse)
631
- end
632
-
633
- def plain_value
634
- return unless tok(/:/)
635
- space = !str {ss}.empty?
636
- @use_property_exception ||= space || !tok?(IDENT)
637
-
638
- expression = expr
639
- expression << tok(IMPORTANT) if expression
640
- # expression, space, value
641
- return expression, space, expression || [""]
642
- end
643
-
644
- def nested_properties!(node, space)
645
- raise Sass::SyntaxError.new(<<MESSAGE, :line => @line) unless space
646
- Invalid CSS: a space is required between a property and its definition
647
- when it has other properties nested beneath it.
648
- MESSAGE
649
-
650
- @use_property_exception = true
651
- @expected = 'expression (e.g. 1px, bold) or "{"'
652
- block(node, :property)
653
- end
654
-
655
- def expr
656
- return unless t = term
657
- res = [t, str{ss}]
658
-
659
- while (o = operator) && (t = term)
660
- res << o << t << str{ss}
661
- end
662
-
663
- res
664
- end
665
-
666
- def term
667
- unless e = tok(NUMBER) ||
668
- tok(URI) ||
669
- function ||
670
- tok(STRING) ||
671
- tok(UNICODERANGE) ||
672
- tok(IDENT) ||
673
- tok(HEXCOLOR)
674
-
675
- return unless op = unary_operator
676
- @expected = "number or function"
677
- return [op, tok(NUMBER) || expr!(:function)]
678
- end
679
- e
680
- end
681
-
682
- def function
683
- return unless name = tok(FUNCTION)
684
- if name == "expression(" || name == "calc("
685
- str, _ = Haml::Shared.balance(@scanner, ?(, ?), 1)
686
- [name, str]
687
- else
688
- [name, str{ss}, expr, tok!(/\)/)]
689
- end
690
- end
691
-
692
- def interpolation
693
- return unless tok(INTERP_START)
694
- sass_script(:parse_interpolated)
695
- end
696
-
697
- def interp_string
698
- _interp_string(:double) || _interp_string(:single)
699
- end
700
-
701
- def _interp_string(type)
702
- return unless start = tok(Sass::Script::Lexer::STRING_REGULAR_EXPRESSIONS[[type, false]])
703
- res = [start]
704
-
705
- mid_re = Sass::Script::Lexer::STRING_REGULAR_EXPRESSIONS[[type, true]]
706
- # @scanner[2].empty? means we've started an interpolated section
707
- while @scanner[2] == '#{'
708
- @scanner.pos -= 2 # Don't consume the #{
709
- res.last.slice!(-2..-1)
710
- res << expr!(:interpolation) << tok(mid_re)
711
- end
712
- res
713
- end
714
-
715
- def interp_ident(start = IDENT)
716
- return unless val = tok(start) || interpolation
717
- res = [val]
718
- while val = tok(NAME) || interpolation
719
- res << val
720
- end
721
- res
722
- end
723
-
724
- def interp_name
725
- interp_ident NAME
726
- end
727
-
728
- def str
729
- @strs.push ""
730
- yield
731
- @strs.last
732
- ensure
733
- @strs.pop
734
- end
735
-
736
- def str?
737
- @strs.push ""
738
- yield && @strs.last
739
- ensure
740
- @strs.pop
741
- end
742
-
743
- def node(node)
744
- node.line = @line
745
- node
746
- end
747
-
748
- @sass_script_parser = Class.new(Sass::Script::Parser)
749
- @sass_script_parser.send(:include, ScriptParser)
750
- # @private
751
- def self.sass_script_parser; @sass_script_parser; end
752
-
753
- def sass_script(*args)
754
- parser = self.class.sass_script_parser.new(@scanner, @line,
755
- @scanner.pos - (@scanner.string[0...@scanner.pos].rindex("\n") || 0))
756
- result = parser.send(*args)
757
- @line = parser.line
758
- result
759
- end
760
-
761
- def merge(arr)
762
- arr && Haml::Util.merge_adjacent_strings([arr].flatten)
763
- end
764
-
765
- EXPR_NAMES = {
766
- :media_query => "media query (e.g. print, screen, print and screen)",
767
- :media_expr => "media expression (e.g. (min-device-width: 800px)))",
768
- :pseudo_expr => "expression (e.g. fr, 2n+1)",
769
- :interp_ident => "identifier",
770
- :interp_name => "identifier",
771
- :expr => "expression (e.g. 1px, bold)",
772
- :selector_comma_sequence => "selector",
773
- :simple_selector_sequence => "selector",
774
- :import_arg => "file to import (string or url())",
775
- }
776
-
777
- TOK_NAMES = Haml::Util.to_hash(
778
- Sass::SCSS::RX.constants.map {|c| [Sass::SCSS::RX.const_get(c), c.downcase]}).
779
- merge(IDENT => "identifier", /[;}]/ => '";"')
780
-
781
- def tok?(rx)
782
- @scanner.match?(rx)
783
- end
784
-
785
- def expr!(name)
786
- (e = send(name)) && (return e)
787
- expected(EXPR_NAMES[name] || name.to_s)
788
- end
789
-
790
- def tok!(rx)
791
- (t = tok(rx)) && (return t)
792
- name = TOK_NAMES[rx]
793
-
794
- unless name
795
- # Display basic regexps as plain old strings
796
- string = rx.source.gsub(/\\(.)/, '\1')
797
- name = rx.source == Regexp.escape(string) ? string.inspect : rx.inspect
798
- end
799
-
800
- expected(name)
801
- end
802
-
803
- def expected(name)
804
- self.class.expected(@scanner, @expected || name, @line)
805
- end
806
-
807
- # @private
808
- def self.expected(scanner, expected, line)
809
- pos = scanner.pos
810
-
811
- after = scanner.string[0...pos]
812
- # Get rid of whitespace between pos and the last token,
813
- # but only if there's a newline in there
814
- after.gsub!(/\s*\n\s*$/, '')
815
- # Also get rid of stuff before the last newline
816
- after.gsub!(/.*\n/, '')
817
- after = "..." + after[-15..-1] if after.size > 18
818
-
819
- was = scanner.rest.dup
820
- # Get rid of whitespace between pos and the next token,
821
- # but only if there's a newline in there
822
- was.gsub!(/^\s*\n\s*/, '')
823
- # Also get rid of stuff after the next newline
824
- was.gsub!(/\n.*/, '')
825
- was = was[0...15] + "..." if was.size > 18
826
-
827
- raise Sass::SyntaxError.new(
828
- "Invalid CSS after \"#{after}\": expected #{expected}, was \"#{was}\"",
829
- :line => line)
830
- end
831
-
832
- def tok(rx)
833
- res = @scanner.scan(rx)
834
- if res
835
- @line += res.count("\n")
836
- @expected = nil
837
- if !@strs.empty? && rx != COMMENT && rx != SINGLE_LINE_COMMENT
838
- @strs.each {|s| s << res}
839
- end
840
- end
841
-
842
- res
843
- end
844
- end
845
- end
846
- end