haml 3.2.0.alpha.10 → 3.2.0.alpha.13

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

Potentially problematic release.


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

Files changed (389) hide show
  1. data/.yardopts +19 -7
  2. data/CHANGELOG.md +1224 -0
  3. data/FAQ.md +157 -0
  4. data/README.md +99 -62
  5. data/REFERENCE.md +1404 -0
  6. data/Rakefile +52 -341
  7. data/init.rb +1 -18
  8. data/lib/haml.rb +6 -30
  9. data/lib/haml/buffer.rb +37 -16
  10. data/lib/haml/compiler.rb +52 -13
  11. data/lib/haml/engine.rb +61 -44
  12. data/lib/haml/exec.rb +21 -4
  13. data/lib/haml/filters.rb +136 -166
  14. data/lib/haml/helpers.rb +37 -10
  15. data/lib/haml/helpers/action_view_extensions.rb +2 -1
  16. data/lib/haml/helpers/action_view_mods.rb +67 -181
  17. data/lib/haml/helpers/rails_323_textarea_fix.rb +39 -0
  18. data/lib/haml/helpers/xss_mods.rb +9 -11
  19. data/lib/haml/html.rb +22 -9
  20. data/lib/haml/html/erb.rb +1 -1
  21. data/lib/haml/parser.rb +22 -15
  22. data/lib/haml/railtie.rb +2 -13
  23. data/lib/haml/template.rb +18 -85
  24. data/lib/haml/template/options.rb +1 -1
  25. data/lib/haml/template/plugin.rb +15 -101
  26. data/lib/haml/util.rb +120 -603
  27. data/lib/haml/version.rb +1 -107
  28. data/test/{haml/engine_test.rb → engine_test.rb} +137 -143
  29. data/test/{haml/erb → erb}/_av_partial_1.erb +1 -1
  30. data/test/{haml/erb → erb}/_av_partial_2.erb +1 -1
  31. data/test/{haml/erb → erb}/action_view.erb +1 -1
  32. data/test/{haml/erb → erb}/standard.erb +0 -0
  33. data/test/filters_test.rb +141 -0
  34. data/test/gemfiles/Gemfile.rails-3.0.x +4 -6
  35. data/test/gemfiles/Gemfile.rails-3.1.x +5 -6
  36. data/test/gemfiles/Gemfile.rails-3.2.x +6 -0
  37. data/test/haml-spec/LICENSE +14 -0
  38. data/test/{haml/spec → haml-spec}/README.md +26 -17
  39. data/test/haml-spec/lua_haml_spec.lua +38 -0
  40. data/test/haml-spec/perl_haml_test.pl +81 -0
  41. data/test/haml-spec/ruby_haml_test.rb +23 -0
  42. data/test/{haml/spec → haml-spec}/tests.json +132 -54
  43. data/test/{haml/helper_test.rb → helper_test.rb} +50 -36
  44. data/test/{haml/html2haml → html2haml}/erb_tests.rb +0 -0
  45. data/test/{haml/html2haml_test.rb → html2haml_test.rb} +11 -5
  46. data/test/{haml/markaby → markaby}/standard.mab +0 -0
  47. data/test/{haml/mocks → mocks}/article.rb +0 -0
  48. data/test/{haml/results → results}/content_for_layout.xhtml +0 -0
  49. data/test/{haml/results → results}/eval_suppressed.xhtml +0 -0
  50. data/test/{haml/results → results}/helpers.xhtml +0 -0
  51. data/test/{haml/results → results}/helpful.xhtml +0 -0
  52. data/test/{haml/results → results}/just_stuff.xhtml +0 -0
  53. data/test/{haml/results → results}/list.xhtml +0 -0
  54. data/test/{haml/results → results}/nuke_inner_whitespace.xhtml +0 -0
  55. data/test/{haml/results → results}/nuke_outer_whitespace.xhtml +0 -0
  56. data/test/{haml/results → results}/original_engine.xhtml +0 -0
  57. data/test/{haml/results → results}/partial_layout.xhtml +0 -0
  58. data/test/{haml/results → results}/partials.xhtml +0 -0
  59. data/test/{haml/results → results}/render_layout.xhtml +0 -0
  60. data/test/{haml/results → results}/silent_script.xhtml +1 -1
  61. data/test/{haml/results → results}/standard.xhtml +0 -0
  62. data/test/{haml/results → results}/tag_parsing.xhtml +0 -0
  63. data/test/{haml/results → results}/very_basic.xhtml +0 -0
  64. data/test/{haml/results → results}/whitespace_handling.xhtml +46 -50
  65. data/test/{haml/template_test.rb → template_test.rb} +20 -81
  66. data/test/{haml/templates → templates}/_av_partial_1.haml +1 -1
  67. data/test/{haml/templates → templates}/_av_partial_1_ugly.haml +1 -1
  68. data/test/{haml/templates → templates}/_av_partial_2.haml +1 -1
  69. data/test/{haml/templates → templates}/_av_partial_2_ugly.haml +1 -1
  70. data/test/{haml/templates → templates}/_layout.erb +0 -0
  71. data/test/{haml/templates → templates}/_layout_for_partial.haml +0 -0
  72. data/test/{haml/templates → templates}/_partial.haml +0 -0
  73. data/test/{haml/templates → templates}/_text_area.haml +0 -0
  74. data/test/{haml/templates → templates}/action_view.haml +1 -1
  75. data/test/{haml/templates → templates}/action_view_ugly.haml +1 -1
  76. data/test/{haml/templates → templates}/breakage.haml +0 -0
  77. data/test/{haml/templates → templates}/content_for_layout.haml +0 -0
  78. data/test/{haml/templates → templates}/eval_suppressed.haml +0 -0
  79. data/test/{haml/templates → templates}/helpers.haml +0 -0
  80. data/test/{haml/templates → templates}/helpful.haml +0 -0
  81. data/test/{haml/templates → templates}/just_stuff.haml +0 -0
  82. data/test/{haml/templates → templates}/list.haml +0 -0
  83. data/test/{haml/templates → templates}/nuke_inner_whitespace.haml +0 -0
  84. data/test/{haml/templates → templates}/nuke_outer_whitespace.haml +0 -0
  85. data/test/{haml/templates → templates}/original_engine.haml +0 -0
  86. data/test/templates/partial_layout.haml +3 -0
  87. data/test/{haml/templates → templates}/partialize.haml +0 -0
  88. data/test/{haml/templates → templates}/partials.haml +0 -0
  89. data/test/{haml/templates → templates}/render_layout.haml +0 -0
  90. data/test/{haml/templates → templates}/silent_script.haml +2 -2
  91. data/test/{haml/templates → templates}/standard.haml +0 -0
  92. data/test/{haml/templates → templates}/standard_ugly.haml +0 -0
  93. data/test/{haml/templates → templates}/tag_parsing.haml +0 -0
  94. data/test/{haml/templates → templates}/very_basic.haml +0 -0
  95. data/test/{haml/templates → templates}/whitespace_handling.haml +0 -0
  96. data/test/test_helper.rb +42 -34
  97. data/test/util_test.rb +80 -0
  98. metadata +259 -427
  99. data/CONTRIBUTING +0 -3
  100. data/REVISION +0 -1
  101. data/VERSION +0 -1
  102. data/VERSION_NAME +0 -1
  103. data/extra/update_watch.rb +0 -13
  104. data/lib/haml/root.rb +0 -7
  105. data/lib/haml/shared.rb +0 -78
  106. data/lib/haml/template/patch.rb +0 -58
  107. data/lib/sass.rb +0 -8
  108. data/lib/sass/plugin.rb +0 -10
  109. data/lib/sass/rails2_shim.rb +0 -9
  110. data/lib/sass/rails3_shim.rb +0 -16
  111. data/test/benchmark.rb +0 -91
  112. data/test/gemfiles/Gemfile.rails-2.0.x +0 -8
  113. data/test/gemfiles/Gemfile.rails-2.0.x.lock +0 -38
  114. data/test/gemfiles/Gemfile.rails-2.1.x +0 -8
  115. data/test/gemfiles/Gemfile.rails-2.1.x.lock +0 -38
  116. data/test/gemfiles/Gemfile.rails-2.2.x +0 -8
  117. data/test/gemfiles/Gemfile.rails-2.2.x.lock +0 -38
  118. data/test/gemfiles/Gemfile.rails-2.3.x +0 -8
  119. data/test/gemfiles/Gemfile.rails-2.3.x.lock +0 -40
  120. data/test/gemfiles/Gemfile.rails-3.0.x.lock +0 -85
  121. data/test/gemfiles/Gemfile.rails-3.1.x.lock +0 -98
  122. data/test/gemfiles/Gemfile.rails-xss-2.3.x +0 -9
  123. data/test/gemfiles/Gemfile.rails-xss-2.3.x.lock +0 -42
  124. data/test/haml/results/filters.xhtml +0 -62
  125. data/test/haml/spec/lua_haml_spec.lua +0 -30
  126. data/test/haml/spec/ruby_haml_test.rb +0 -19
  127. data/test/haml/spec_test.rb +0 -44
  128. data/test/haml/templates/filters.haml +0 -66
  129. data/test/haml/templates/partial_layout.haml +0 -10
  130. data/test/haml/util_test.rb +0 -300
  131. data/test/linked_rails.rb +0 -42
  132. data/vendor/sass/CONTRIBUTING +0 -3
  133. data/vendor/sass/MIT-LICENSE +0 -20
  134. data/vendor/sass/README.md +0 -201
  135. data/vendor/sass/Rakefile +0 -339
  136. data/vendor/sass/TODO +0 -39
  137. data/vendor/sass/VERSION +0 -1
  138. data/vendor/sass/VERSION_NAME +0 -1
  139. data/vendor/sass/bin/sass +0 -8
  140. data/vendor/sass/bin/sass-convert +0 -7
  141. data/vendor/sass/bin/scss +0 -8
  142. data/vendor/sass/doc-src/FAQ.md +0 -35
  143. data/vendor/sass/doc-src/INDENTED_SYNTAX.md +0 -210
  144. data/vendor/sass/doc-src/SASS_CHANGELOG.md +0 -2327
  145. data/vendor/sass/doc-src/SASS_REFERENCE.md +0 -1965
  146. data/vendor/sass/doc-src/SCSS_FOR_SASS_USERS.md +0 -155
  147. data/vendor/sass/ext/extconf.rb +0 -10
  148. data/vendor/sass/extra/update_watch.rb +0 -13
  149. data/vendor/sass/init.rb +0 -18
  150. data/vendor/sass/lib/sass.rb +0 -73
  151. data/vendor/sass/lib/sass/cache_stores.rb +0 -15
  152. data/vendor/sass/lib/sass/cache_stores/base.rb +0 -86
  153. data/vendor/sass/lib/sass/cache_stores/chain.rb +0 -33
  154. data/vendor/sass/lib/sass/cache_stores/filesystem.rb +0 -60
  155. data/vendor/sass/lib/sass/cache_stores/memory.rb +0 -47
  156. data/vendor/sass/lib/sass/cache_stores/null.rb +0 -25
  157. data/vendor/sass/lib/sass/callbacks.rb +0 -66
  158. data/vendor/sass/lib/sass/css.rb +0 -295
  159. data/vendor/sass/lib/sass/engine.rb +0 -878
  160. data/vendor/sass/lib/sass/environment.rb +0 -166
  161. data/vendor/sass/lib/sass/error.rb +0 -201
  162. data/vendor/sass/lib/sass/exec.rb +0 -672
  163. data/vendor/sass/lib/sass/importers.rb +0 -22
  164. data/vendor/sass/lib/sass/importers/base.rb +0 -139
  165. data/vendor/sass/lib/sass/importers/filesystem.rb +0 -149
  166. data/vendor/sass/lib/sass/less.rb +0 -382
  167. data/vendor/sass/lib/sass/logger.rb +0 -15
  168. data/vendor/sass/lib/sass/logger/base.rb +0 -32
  169. data/vendor/sass/lib/sass/logger/log_level.rb +0 -49
  170. data/vendor/sass/lib/sass/plugin.rb +0 -132
  171. data/vendor/sass/lib/sass/plugin/compiler.rb +0 -383
  172. data/vendor/sass/lib/sass/plugin/configuration.rb +0 -123
  173. data/vendor/sass/lib/sass/plugin/generic.rb +0 -15
  174. data/vendor/sass/lib/sass/plugin/merb.rb +0 -48
  175. data/vendor/sass/lib/sass/plugin/rack.rb +0 -60
  176. data/vendor/sass/lib/sass/plugin/rails.rb +0 -47
  177. data/vendor/sass/lib/sass/plugin/staleness_checker.rb +0 -173
  178. data/vendor/sass/lib/sass/railtie.rb +0 -9
  179. data/vendor/sass/lib/sass/repl.rb +0 -58
  180. data/vendor/sass/lib/sass/root.rb +0 -7
  181. data/vendor/sass/lib/sass/script.rb +0 -40
  182. data/vendor/sass/lib/sass/script/bool.rb +0 -18
  183. data/vendor/sass/lib/sass/script/color.rb +0 -480
  184. data/vendor/sass/lib/sass/script/css_lexer.rb +0 -29
  185. data/vendor/sass/lib/sass/script/css_parser.rb +0 -31
  186. data/vendor/sass/lib/sass/script/funcall.rb +0 -175
  187. data/vendor/sass/lib/sass/script/functions.rb +0 -1386
  188. data/vendor/sass/lib/sass/script/interpolation.rb +0 -79
  189. data/vendor/sass/lib/sass/script/lexer.rb +0 -339
  190. data/vendor/sass/lib/sass/script/list.rb +0 -83
  191. data/vendor/sass/lib/sass/script/literal.rb +0 -250
  192. data/vendor/sass/lib/sass/script/node.rb +0 -99
  193. data/vendor/sass/lib/sass/script/number.rb +0 -452
  194. data/vendor/sass/lib/sass/script/operation.rb +0 -99
  195. data/vendor/sass/lib/sass/script/parser.rb +0 -474
  196. data/vendor/sass/lib/sass/script/string.rb +0 -51
  197. data/vendor/sass/lib/sass/script/string_interpolation.rb +0 -103
  198. data/vendor/sass/lib/sass/script/unary_operation.rb +0 -64
  199. data/vendor/sass/lib/sass/script/variable.rb +0 -59
  200. data/vendor/sass/lib/sass/scss.rb +0 -17
  201. data/vendor/sass/lib/sass/scss/css_parser.rb +0 -46
  202. data/vendor/sass/lib/sass/scss/parser.rb +0 -960
  203. data/vendor/sass/lib/sass/scss/rx.rb +0 -128
  204. data/vendor/sass/lib/sass/scss/sass_parser.rb +0 -11
  205. data/vendor/sass/lib/sass/scss/script_lexer.rb +0 -15
  206. data/vendor/sass/lib/sass/scss/script_parser.rb +0 -25
  207. data/vendor/sass/lib/sass/scss/static_parser.rb +0 -40
  208. data/vendor/sass/lib/sass/selector.rb +0 -361
  209. data/vendor/sass/lib/sass/selector/abstract_sequence.rb +0 -62
  210. data/vendor/sass/lib/sass/selector/comma_sequence.rb +0 -81
  211. data/vendor/sass/lib/sass/selector/sequence.rb +0 -233
  212. data/vendor/sass/lib/sass/selector/simple.rb +0 -113
  213. data/vendor/sass/lib/sass/selector/simple_sequence.rb +0 -134
  214. data/vendor/sass/lib/sass/shared.rb +0 -78
  215. data/vendor/sass/lib/sass/tree/charset_node.rb +0 -22
  216. data/vendor/sass/lib/sass/tree/comment_node.rb +0 -90
  217. data/vendor/sass/lib/sass/tree/debug_node.rb +0 -18
  218. data/vendor/sass/lib/sass/tree/directive_node.rb +0 -23
  219. data/vendor/sass/lib/sass/tree/each_node.rb +0 -24
  220. data/vendor/sass/lib/sass/tree/extend_node.rb +0 -29
  221. data/vendor/sass/lib/sass/tree/for_node.rb +0 -36
  222. data/vendor/sass/lib/sass/tree/function_node.rb +0 -27
  223. data/vendor/sass/lib/sass/tree/if_node.rb +0 -52
  224. data/vendor/sass/lib/sass/tree/import_node.rb +0 -68
  225. data/vendor/sass/lib/sass/tree/media_node.rb +0 -32
  226. data/vendor/sass/lib/sass/tree/mixin_def_node.rb +0 -27
  227. data/vendor/sass/lib/sass/tree/mixin_node.rb +0 -32
  228. data/vendor/sass/lib/sass/tree/node.rb +0 -201
  229. data/vendor/sass/lib/sass/tree/prop_node.rb +0 -148
  230. data/vendor/sass/lib/sass/tree/return_node.rb +0 -18
  231. data/vendor/sass/lib/sass/tree/root_node.rb +0 -28
  232. data/vendor/sass/lib/sass/tree/rule_node.rb +0 -136
  233. data/vendor/sass/lib/sass/tree/variable_node.rb +0 -30
  234. data/vendor/sass/lib/sass/tree/visitors/base.rb +0 -75
  235. data/vendor/sass/lib/sass/tree/visitors/check_nesting.rb +0 -133
  236. data/vendor/sass/lib/sass/tree/visitors/convert.rb +0 -260
  237. data/vendor/sass/lib/sass/tree/visitors/cssize.rb +0 -175
  238. data/vendor/sass/lib/sass/tree/visitors/deep_copy.rb +0 -87
  239. data/vendor/sass/lib/sass/tree/visitors/perform.rb +0 -332
  240. data/vendor/sass/lib/sass/tree/visitors/set_options.rb +0 -97
  241. data/vendor/sass/lib/sass/tree/visitors/to_css.rb +0 -210
  242. data/vendor/sass/lib/sass/tree/warn_node.rb +0 -18
  243. data/vendor/sass/lib/sass/tree/while_node.rb +0 -18
  244. data/vendor/sass/lib/sass/util.rb +0 -721
  245. data/vendor/sass/lib/sass/util/subset_map.rb +0 -101
  246. data/vendor/sass/lib/sass/version.rb +0 -112
  247. data/vendor/sass/rails/init.rb +0 -1
  248. data/vendor/sass/sass.gemspec +0 -33
  249. data/vendor/sass/test/Gemfile +0 -4
  250. data/vendor/sass/test/Gemfile.lock +0 -19
  251. data/vendor/sass/test/sass/cache_test.rb +0 -89
  252. data/vendor/sass/test/sass/callbacks_test.rb +0 -61
  253. data/vendor/sass/test/sass/conversion_test.rb +0 -1199
  254. data/vendor/sass/test/sass/css2sass_test.rb +0 -373
  255. data/vendor/sass/test/sass/data/hsl-rgb.txt +0 -319
  256. data/vendor/sass/test/sass/engine_test.rb +0 -2567
  257. data/vendor/sass/test/sass/extend_test.rb +0 -1348
  258. data/vendor/sass/test/sass/fixtures/test_staleness_check_across_importers.css +0 -1
  259. data/vendor/sass/test/sass/fixtures/test_staleness_check_across_importers.scss +0 -1
  260. data/vendor/sass/test/sass/functions_test.rb +0 -1038
  261. data/vendor/sass/test/sass/importer_test.rb +0 -192
  262. data/vendor/sass/test/sass/less_conversion_test.rb +0 -653
  263. data/vendor/sass/test/sass/logger_test.rb +0 -58
  264. data/vendor/sass/test/sass/mock_importer.rb +0 -49
  265. data/vendor/sass/test/sass/more_results/more1.css +0 -9
  266. data/vendor/sass/test/sass/more_results/more1_with_line_comments.css +0 -26
  267. data/vendor/sass/test/sass/more_results/more_import.css +0 -29
  268. data/vendor/sass/test/sass/more_templates/_more_partial.sass +0 -2
  269. data/vendor/sass/test/sass/more_templates/more1.sass +0 -23
  270. data/vendor/sass/test/sass/more_templates/more_import.sass +0 -11
  271. data/vendor/sass/test/sass/plugin_test.rb +0 -472
  272. data/vendor/sass/test/sass/results/alt.css +0 -4
  273. data/vendor/sass/test/sass/results/basic.css +0 -9
  274. data/vendor/sass/test/sass/results/compact.css +0 -5
  275. data/vendor/sass/test/sass/results/complex.css +0 -86
  276. data/vendor/sass/test/sass/results/compressed.css +0 -1
  277. data/vendor/sass/test/sass/results/expanded.css +0 -19
  278. data/vendor/sass/test/sass/results/if.css +0 -3
  279. data/vendor/sass/test/sass/results/import.css +0 -31
  280. data/vendor/sass/test/sass/results/import_charset.css +0 -4
  281. data/vendor/sass/test/sass/results/import_charset_1_8.css +0 -4
  282. data/vendor/sass/test/sass/results/import_charset_ibm866.css +0 -4
  283. data/vendor/sass/test/sass/results/line_numbers.css +0 -49
  284. data/vendor/sass/test/sass/results/mixins.css +0 -95
  285. data/vendor/sass/test/sass/results/multiline.css +0 -24
  286. data/vendor/sass/test/sass/results/nested.css +0 -22
  287. data/vendor/sass/test/sass/results/options.css +0 -1
  288. data/vendor/sass/test/sass/results/parent_ref.css +0 -13
  289. data/vendor/sass/test/sass/results/script.css +0 -16
  290. data/vendor/sass/test/sass/results/scss_import.css +0 -31
  291. data/vendor/sass/test/sass/results/scss_importee.css +0 -2
  292. data/vendor/sass/test/sass/results/subdir/nested_subdir/nested_subdir.css +0 -1
  293. data/vendor/sass/test/sass/results/subdir/subdir.css +0 -3
  294. data/vendor/sass/test/sass/results/units.css +0 -11
  295. data/vendor/sass/test/sass/results/warn.css +0 -0
  296. data/vendor/sass/test/sass/results/warn_imported.css +0 -0
  297. data/vendor/sass/test/sass/script_conversion_test.rb +0 -285
  298. data/vendor/sass/test/sass/script_test.rb +0 -514
  299. data/vendor/sass/test/sass/scss/css_test.rb +0 -922
  300. data/vendor/sass/test/sass/scss/rx_test.rb +0 -156
  301. data/vendor/sass/test/sass/scss/scss_test.rb +0 -1273
  302. data/vendor/sass/test/sass/scss/test_helper.rb +0 -37
  303. data/vendor/sass/test/sass/templates/_imported_charset_ibm866.sass +0 -4
  304. data/vendor/sass/test/sass/templates/_imported_charset_utf8.sass +0 -4
  305. data/vendor/sass/test/sass/templates/_partial.sass +0 -2
  306. data/vendor/sass/test/sass/templates/alt.sass +0 -16
  307. data/vendor/sass/test/sass/templates/basic.sass +0 -23
  308. data/vendor/sass/test/sass/templates/bork1.sass +0 -2
  309. data/vendor/sass/test/sass/templates/bork2.sass +0 -2
  310. data/vendor/sass/test/sass/templates/bork3.sass +0 -2
  311. data/vendor/sass/test/sass/templates/bork4.sass +0 -2
  312. data/vendor/sass/test/sass/templates/bork5.sass +0 -3
  313. data/vendor/sass/test/sass/templates/compact.sass +0 -17
  314. data/vendor/sass/test/sass/templates/complex.sass +0 -305
  315. data/vendor/sass/test/sass/templates/compressed.sass +0 -15
  316. data/vendor/sass/test/sass/templates/expanded.sass +0 -17
  317. data/vendor/sass/test/sass/templates/if.sass +0 -11
  318. data/vendor/sass/test/sass/templates/import.sass +0 -12
  319. data/vendor/sass/test/sass/templates/import_charset.sass +0 -7
  320. data/vendor/sass/test/sass/templates/import_charset_1_8.sass +0 -4
  321. data/vendor/sass/test/sass/templates/import_charset_ibm866.sass +0 -9
  322. data/vendor/sass/test/sass/templates/importee.less +0 -2
  323. data/vendor/sass/test/sass/templates/importee.sass +0 -19
  324. data/vendor/sass/test/sass/templates/line_numbers.sass +0 -13
  325. data/vendor/sass/test/sass/templates/mixin_bork.sass +0 -5
  326. data/vendor/sass/test/sass/templates/mixins.sass +0 -76
  327. data/vendor/sass/test/sass/templates/multiline.sass +0 -20
  328. data/vendor/sass/test/sass/templates/nested.sass +0 -25
  329. data/vendor/sass/test/sass/templates/nested_bork1.sass +0 -2
  330. data/vendor/sass/test/sass/templates/nested_bork2.sass +0 -2
  331. data/vendor/sass/test/sass/templates/nested_bork3.sass +0 -2
  332. data/vendor/sass/test/sass/templates/nested_bork4.sass +0 -2
  333. data/vendor/sass/test/sass/templates/nested_bork5.sass +0 -2
  334. data/vendor/sass/test/sass/templates/nested_import.sass +0 -2
  335. data/vendor/sass/test/sass/templates/nested_mixin_bork.sass +0 -6
  336. data/vendor/sass/test/sass/templates/options.sass +0 -2
  337. data/vendor/sass/test/sass/templates/parent_ref.sass +0 -25
  338. data/vendor/sass/test/sass/templates/script.sass +0 -101
  339. data/vendor/sass/test/sass/templates/scss_import.scss +0 -11
  340. data/vendor/sass/test/sass/templates/scss_importee.scss +0 -1
  341. data/vendor/sass/test/sass/templates/subdir/nested_subdir/_nested_partial.sass +0 -2
  342. data/vendor/sass/test/sass/templates/subdir/nested_subdir/nested_subdir.sass +0 -3
  343. data/vendor/sass/test/sass/templates/subdir/subdir.sass +0 -6
  344. data/vendor/sass/test/sass/templates/units.sass +0 -11
  345. data/vendor/sass/test/sass/templates/warn.sass +0 -3
  346. data/vendor/sass/test/sass/templates/warn_imported.sass +0 -4
  347. data/vendor/sass/test/sass/test_helper.rb +0 -8
  348. data/vendor/sass/test/sass/util/subset_map_test.rb +0 -91
  349. data/vendor/sass/test/sass/util_test.rb +0 -266
  350. data/vendor/sass/test/test_helper.rb +0 -69
  351. data/vendor/sass/vendor/fssm/Gemfile +0 -3
  352. data/vendor/sass/vendor/fssm/LICENSE +0 -20
  353. data/vendor/sass/vendor/fssm/README.markdown +0 -83
  354. data/vendor/sass/vendor/fssm/Rakefile +0 -11
  355. data/vendor/sass/vendor/fssm/example.rb +0 -12
  356. data/vendor/sass/vendor/fssm/fssm.gemspec +0 -24
  357. data/vendor/sass/vendor/fssm/lib/fssm.rb +0 -37
  358. data/vendor/sass/vendor/fssm/lib/fssm/backends/fsevents.rb +0 -36
  359. data/vendor/sass/vendor/fssm/lib/fssm/backends/inotify.rb +0 -26
  360. data/vendor/sass/vendor/fssm/lib/fssm/backends/polling.rb +0 -25
  361. data/vendor/sass/vendor/fssm/lib/fssm/backends/rbfsevent.rb +0 -42
  362. data/vendor/sass/vendor/fssm/lib/fssm/backends/rubycocoa/fsevents.rb +0 -131
  363. data/vendor/sass/vendor/fssm/lib/fssm/monitor.rb +0 -36
  364. data/vendor/sass/vendor/fssm/lib/fssm/path.rb +0 -94
  365. data/vendor/sass/vendor/fssm/lib/fssm/pathname.rb +0 -36
  366. data/vendor/sass/vendor/fssm/lib/fssm/state/directory.rb +0 -75
  367. data/vendor/sass/vendor/fssm/lib/fssm/state/file.rb +0 -24
  368. data/vendor/sass/vendor/fssm/lib/fssm/support.rb +0 -92
  369. data/vendor/sass/vendor/fssm/lib/fssm/tree.rb +0 -176
  370. data/vendor/sass/vendor/fssm/lib/fssm/version.rb +0 -3
  371. data/vendor/sass/vendor/fssm/profile/prof-cache.rb +0 -40
  372. data/vendor/sass/vendor/fssm/profile/prof-fssm-pathname.html +0 -1231
  373. data/vendor/sass/vendor/fssm/profile/prof-pathname-rubinius.rb +0 -35
  374. data/vendor/sass/vendor/fssm/profile/prof-pathname.rb +0 -68
  375. data/vendor/sass/vendor/fssm/profile/prof-plain-pathname.html +0 -988
  376. data/vendor/sass/vendor/fssm/profile/prof.html +0 -2379
  377. data/vendor/sass/vendor/fssm/spec/count_down_latch.rb +0 -151
  378. data/vendor/sass/vendor/fssm/spec/monitor_spec.rb +0 -202
  379. data/vendor/sass/vendor/fssm/spec/path_spec.rb +0 -96
  380. data/vendor/sass/vendor/fssm/spec/root/duck/quack.txt +0 -0
  381. data/vendor/sass/vendor/fssm/spec/root/file.css +0 -0
  382. data/vendor/sass/vendor/fssm/spec/root/file.rb +0 -0
  383. data/vendor/sass/vendor/fssm/spec/root/file.yml +0 -0
  384. data/vendor/sass/vendor/fssm/spec/root/moo/cow.txt +0 -0
  385. data/vendor/sass/vendor/fssm/spec/spec_helper.rb +0 -14
  386. data/vendor/sass/yard/callbacks.rb +0 -29
  387. data/vendor/sass/yard/default/fulldoc/html/css/common.sass +0 -26
  388. data/vendor/sass/yard/default/layout/html/footer.erb +0 -12
  389. data/vendor/sass/yard/inherited_hash.rb +0 -41
@@ -1,175 +0,0 @@
1
- # A visitor for converting a static Sass tree into a static CSS tree.
2
- class Sass::Tree::Visitors::Cssize < Sass::Tree::Visitors::Base
3
- # @param root [Tree::Node] The root node of the tree to visit.
4
- # @return [(Tree::Node, Sass::Util::SubsetMap)] The resulting tree of static nodes
5
- # *and* the extensions defined for this tree
6
- def self.visit(root); super; end
7
-
8
- protected
9
-
10
- # Returns the immediate parent of the current node.
11
- # @return [Tree::Node]
12
- attr_reader :parent
13
-
14
- def initialize
15
- @extends = Sass::Util::SubsetMap.new
16
- end
17
-
18
- # If an exception is raised, this adds proper metadata to the backtrace.
19
- def visit(node)
20
- super(node.dup)
21
- rescue Sass::SyntaxError => e
22
- e.modify_backtrace(:filename => node.filename, :line => node.line)
23
- raise e
24
- end
25
-
26
- # Keeps track of the current parent node.
27
- def visit_children(parent)
28
- with_parent parent do
29
- parent.children = super.flatten
30
- parent
31
- end
32
- end
33
-
34
- # Runs a block of code with the current parent node
35
- # replaced with the given node.
36
- #
37
- # @param parent [Tree::Node] The new parent for the duration of the block.
38
- # @yield A block in which the parent is set to `parent`.
39
- # @return [Object] The return value of the block.
40
- def with_parent(parent)
41
- old_parent, @parent = @parent, parent
42
- yield
43
- ensure
44
- @parent = old_parent
45
- end
46
-
47
- # In Ruby 1.8, ensures that there's only one `@charset` directive
48
- # and that it's at the top of the document.
49
- #
50
- # @return [(Tree::Node, Sass::Util::SubsetMap)] The resulting tree of static nodes
51
- # *and* the extensions defined for this tree
52
- def visit_root(node)
53
- yield
54
-
55
- # In Ruby 1.9 we can make all @charset nodes invisible
56
- # and infer the final @charset from the encoding of the final string.
57
- if Sass::Util.ruby1_8? && parent.nil?
58
- charset = node.children.find {|c| c.is_a?(Sass::Tree::CharsetNode)}
59
- node.children.reject! {|c| c.is_a?(Sass::Tree::CharsetNode)}
60
- node.children.unshift charset if charset
61
- end
62
-
63
- return node, @extends
64
- rescue Sass::SyntaxError => e
65
- e.sass_template ||= node.template
66
- raise e
67
- end
68
-
69
- # Registers an extension in the `@extends` subset map.
70
- def visit_extend(node)
71
- node.resolved_selector.members.each do |seq|
72
- if seq.members.size > 1
73
- raise Sass::SyntaxError.new("Can't extend #{seq.to_a.join}: can't extend nested selectors")
74
- end
75
-
76
- sseq = seq.members.first
77
- if !sseq.is_a?(Sass::Selector::SimpleSequence)
78
- raise Sass::SyntaxError.new("Can't extend #{seq.to_a.join}: invalid selector")
79
- end
80
-
81
- sel = sseq.members
82
- parent.resolved_rules.members.each do |seq|
83
- if !seq.members.last.is_a?(Sass::Selector::SimpleSequence)
84
- raise Sass::SyntaxError.new("#{seq} can't extend: invalid selector")
85
- end
86
-
87
- @extends[sel] = seq
88
- end
89
- end
90
-
91
- []
92
- end
93
-
94
- # Modifies exception backtraces to include the imported file.
95
- def visit_import(node)
96
- # Don't use #visit_children to avoid adding the import node to the list of parents.
97
- node.children.map {|c| visit(c)}.flatten
98
- rescue Sass::SyntaxError => e
99
- e.modify_backtrace(:filename => node.children.first.filename)
100
- e.add_backtrace(:filename => node.filename, :line => node.line)
101
- raise e
102
- end
103
-
104
- # Bubbles the `@media` directive up through RuleNodes
105
- # and merges it with other `@media` directives.
106
- def visit_media(node)
107
- if parent.is_a?(Sass::Tree::RuleNode)
108
- new_rule = parent.dup
109
- new_rule.children = node.children
110
- node.children = with_parent(node) {Array(visit(new_rule))}
111
- # If the last child is actually the end of the group,
112
- # the parent's cssize will set it properly
113
- node.children.last.group_end = false unless node.children.empty?
114
- else
115
- yield
116
- end
117
-
118
- media = node.children.select {|c| c.is_a?(Sass::Tree::MediaNode)}
119
- node.children.reject! {|c| c.is_a?(Sass::Tree::MediaNode)}
120
- media.each {|n| n.query = "#{node.query} and #{n.query}"}
121
- (node.children.empty? ? [] : [node]) + media
122
- end
123
-
124
- # Asserts that all the mixin's children are valid in their new location.
125
- def visit_mixin(node)
126
- # Don't use #visit_children to avoid adding the mixin node to the list of parents.
127
- node.children.map {|c| visit(c)}.flatten
128
- rescue Sass::SyntaxError => e
129
- e.modify_backtrace(:mixin => node.name, :filename => node.filename, :line => node.line)
130
- e.add_backtrace(:filename => node.filename, :line => node.line)
131
- raise e
132
- end
133
-
134
- # Converts nested properties into flat properties
135
- # and updates the indentation of the prop node based on the nesting level.
136
- def visit_prop(node)
137
- if parent.is_a?(Sass::Tree::PropNode)
138
- node.resolved_name = "#{parent.resolved_name}-#{node.resolved_name}"
139
- node.tabs = parent.tabs + (parent.resolved_value.empty? ? 0 : 1) if node.style == :nested
140
- end
141
-
142
- yield
143
-
144
- result = node.children.dup
145
- if !node.resolved_value.empty? || node.children.empty?
146
- node.send(:check!)
147
- result.unshift(node)
148
- end
149
-
150
- result
151
- end
152
-
153
- # Resolves parent references and nested selectors,
154
- # and updates the indentation of the rule node based on the nesting level.
155
- def visit_rule(node)
156
- parent_resolved_rules = parent.is_a?(Sass::Tree::RuleNode) ? parent.resolved_rules : nil
157
- # It's possible for resolved_rules to be set if we've duplicated this node during @media bubbling
158
- node.resolved_rules ||= node.parsed_rules.resolve_parent_refs(parent_resolved_rules)
159
-
160
- yield
161
-
162
- rules = node.children.select {|c| c.is_a?(Sass::Tree::RuleNode) || c.is_a?(Sass::Tree::MediaNode)}
163
- props = node.children.reject {|c| c.is_a?(Sass::Tree::RuleNode) || c.is_a?(Sass::Tree::MediaNode) || c.invisible?}
164
-
165
- unless props.empty?
166
- node.children = props
167
- rules.each {|r| r.tabs += 1} if node.style == :nested
168
- rules.unshift(node)
169
- end
170
-
171
- rules.last.group_end = true unless parent.is_a?(Sass::Tree::RuleNode) || rules.empty?
172
-
173
- rules
174
- end
175
- end
@@ -1,87 +0,0 @@
1
- # A visitor for copying the full structure of a Sass tree.
2
- class Sass::Tree::Visitors::DeepCopy < Sass::Tree::Visitors::Base
3
- protected
4
-
5
- def visit(node)
6
- super(node.dup)
7
- end
8
-
9
- def visit_children(parent)
10
- parent.children = parent.children.map {|c| visit(c)}
11
- parent
12
- end
13
-
14
- def visit_debug(node)
15
- node.expr = node.expr.deep_copy
16
- yield
17
- end
18
-
19
- def visit_each(node)
20
- node.list = node.list.deep_copy
21
- yield
22
- end
23
-
24
- def visit_extend(node)
25
- node.selector = node.selector.map {|c| c.is_a?(Sass::Script::Node) ? c.deep_copy : c}
26
- yield
27
- end
28
-
29
- def visit_for(node)
30
- node.from = node.from.deep_copy
31
- node.to = node.to.deep_copy
32
- yield
33
- end
34
-
35
- def visit_function(node)
36
- node.args = node.args.map {|k, v| [k.deep_copy, v && v.deep_copy]}
37
- yield
38
- end
39
-
40
- def visit_if(node)
41
- node.expr = node.expr.deep_copy if node.expr
42
- node.else = visit(node.else) if node.else
43
- yield
44
- end
45
-
46
- def visit_mixindef(node)
47
- node.args = node.args.map {|k, v| [k.deep_copy, v && v.deep_copy]}
48
- yield
49
- end
50
-
51
- def visit_mixin(node)
52
- node.args = node.args.map {|a| a.deep_copy}
53
- node.keywords = Hash[node.keywords.map {|k, v| [k, v.deep_copy]}]
54
- yield
55
- end
56
-
57
- def visit_prop(node)
58
- node.name = node.name.map {|c| c.is_a?(Sass::Script::Node) ? c.deep_copy : c}
59
- node.value = node.value.deep_copy
60
- yield
61
- end
62
-
63
- def visit_return(node)
64
- node.expr = node.expr.deep_copy
65
- yield
66
- end
67
-
68
- def visit_rule(node)
69
- node.rule = node.rule.map {|c| c.is_a?(Sass::Script::Node) ? c.deep_copy : c}
70
- yield
71
- end
72
-
73
- def visit_variable(node)
74
- node.expr = node.expr.deep_copy
75
- yield
76
- end
77
-
78
- def visit_warn(node)
79
- node.expr = node.expr.deep_copy
80
- yield
81
- end
82
-
83
- def visit_while(node)
84
- node.expr = node.expr.deep_copy
85
- yield
86
- end
87
- end
@@ -1,332 +0,0 @@
1
- # A visitor for converting a dynamic Sass tree into a static Sass tree.
2
- class Sass::Tree::Visitors::Perform < Sass::Tree::Visitors::Base
3
- # @param root [Tree::Node] The root node of the tree to visit.
4
- # @param environment [Sass::Environment] The lexical environment.
5
- # @return [Tree::Node] The resulting tree of static nodes.
6
- def self.visit(root, environment = Sass::Environment.new)
7
- new(environment).send(:visit, root)
8
- end
9
-
10
- protected
11
-
12
- def initialize(env)
13
- @environment = env
14
- end
15
-
16
- # If an exception is raised, this add proper metadata to the backtrace.
17
- def visit(node)
18
- super(node.dup)
19
- rescue Sass::SyntaxError => e
20
- e.modify_backtrace(:filename => node.filename, :line => node.line)
21
- raise e
22
- end
23
-
24
- # Keeps track of the current environment.
25
- def visit_children(parent)
26
- with_environment Sass::Environment.new(@environment) do
27
- parent.children = super.flatten
28
- parent
29
- end
30
- end
31
-
32
- # Runs a block of code with the current environment replaced with the given one.
33
- #
34
- # @param env [Sass::Environment] The new environment for the duration of the block.
35
- # @yield A block in which the environment is set to `env`.
36
- # @return [Object] The return value of the block.
37
- def with_environment(env)
38
- old_env, @environment = @environment, env
39
- yield
40
- ensure
41
- @environment = old_env
42
- end
43
-
44
- # Sets the options on the environment if this is the top-level root.
45
- def visit_root(node)
46
- @environment.options = node.options if @environment.options.nil? || @environment.options.empty?
47
- yield
48
- rescue Sass::SyntaxError => e
49
- e.sass_template ||= node.template
50
- raise e
51
- end
52
-
53
- # Removes this node from the tree if it's a silent comment.
54
- def visit_comment(node)
55
- return [] if node.invisible?
56
- check_for_loud_silent_comment node
57
- check_for_comment_interp node
58
- node.resolved_value = run_interp_no_strip(node.value)
59
- node.resolved_value.gsub!(/\\([\\#])/, '\1')
60
- node
61
- end
62
-
63
- # Prints the expression to STDERR.
64
- def visit_debug(node)
65
- res = node.expr.perform(@environment)
66
- res = res.value if res.is_a?(Sass::Script::String)
67
- if node.filename
68
- $stderr.puts "#{node.filename}:#{node.line} DEBUG: #{res}"
69
- else
70
- $stderr.puts "Line #{node.line} DEBUG: #{res}"
71
- end
72
- []
73
- end
74
-
75
- # Runs the child nodes once for each value in the list.
76
- def visit_each(node)
77
- list = node.list.perform(@environment)
78
-
79
- with_environment Sass::Environment.new(@environment) do
80
- list.to_a.map do |v|
81
- @environment.set_local_var(node.var, v)
82
- node.children.map {|c| visit(c)}
83
- end.flatten
84
- end
85
- end
86
-
87
- # Runs SassScript interpolation in the selector,
88
- # and then parses the result into a {Sass::Selector::CommaSequence}.
89
- def visit_extend(node)
90
- parser = Sass::SCSS::CssParser.new(run_interp(node.selector), node.filename, node.line)
91
- node.resolved_selector = parser.parse_selector
92
- node
93
- end
94
-
95
- # Runs the child nodes once for each time through the loop, varying the variable each time.
96
- def visit_for(node)
97
- from = node.from.perform(@environment)
98
- to = node.to.perform(@environment)
99
- from.assert_int!
100
- to.assert_int!
101
-
102
- to = to.coerce(from.numerator_units, from.denominator_units)
103
- range = Range.new(from.to_i, to.to_i, node.exclusive)
104
-
105
- with_environment Sass::Environment.new(@environment) do
106
- range.map do |i|
107
- @environment.set_local_var(node.var,
108
- Sass::Script::Number.new(i, from.numerator_units, from.denominator_units))
109
- node.children.map {|c| visit(c)}
110
- end.flatten
111
- end
112
- end
113
-
114
- # Loads the function into the environment.
115
- def visit_function(node)
116
- @environment.set_function(node.name,
117
- Sass::Callable.new(node.name, node.args, @environment, node.children))
118
- []
119
- end
120
-
121
- # Runs the child nodes if the conditional expression is true;
122
- # otherwise, tries the else nodes.
123
- def visit_if(node)
124
- if node.expr.nil? || node.expr.perform(@environment).to_bool
125
- yield
126
- node.children
127
- elsif node.else
128
- visit(node.else)
129
- else
130
- []
131
- end
132
- end
133
-
134
- # Returns a static DirectiveNode if this is importing a CSS file,
135
- # or parses and includes the imported Sass file.
136
- def visit_import(node)
137
- if path = node.css_import?
138
- return Sass::Tree::DirectiveNode.new("@import url(#{path})")
139
- end
140
-
141
- @environment.push_frame(:filename => node.filename, :line => node.line)
142
- root = node.imported_file.to_tree
143
- Sass::Tree::Visitors::CheckNesting.visit(root)
144
- node.children = root.children.map {|c| visit(c)}.flatten
145
- node
146
- rescue Sass::SyntaxError => e
147
- e.modify_backtrace(:filename => node.imported_file.options[:filename])
148
- e.add_backtrace(:filename => node.filename, :line => node.line)
149
- raise e
150
- ensure
151
- @environment.pop_frame
152
- end
153
-
154
- # Loads a mixin into the environment.
155
- def visit_mixindef(node)
156
- @environment.set_mixin(node.name,
157
- Sass::Callable.new(node.name, node.args, @environment, node.children))
158
- []
159
- end
160
-
161
- # Runs a mixin.
162
- def visit_mixin(node)
163
- handle_include_loop!(node) if @environment.mixins_in_use.include?(node.name)
164
-
165
- original_env = @environment
166
- original_env.push_frame(:filename => node.filename, :line => node.line)
167
- original_env.prepare_frame(:mixin => node.name)
168
- raise Sass::SyntaxError.new("Undefined mixin '#{node.name}'.") unless mixin = @environment.mixin(node.name)
169
-
170
- passed_args = node.args.dup
171
- passed_keywords = node.keywords.dup
172
-
173
- raise Sass::SyntaxError.new(<<END.gsub("\n", "")) if mixin.args.size < passed_args.size
174
- Mixin #{node.name} takes #{mixin.args.size} argument#{'s' if mixin.args.size != 1}
175
- but #{node.args.size} #{node.args.size == 1 ? 'was' : 'were'} passed.
176
- END
177
-
178
- passed_keywords.each do |name, value|
179
- # TODO: Make this fast
180
- unless mixin.args.find {|(var, default)| var.underscored_name == name}
181
- raise Sass::SyntaxError.new("Mixin #{node.name} doesn't have an argument named $#{name}")
182
- end
183
- end
184
-
185
- environment = mixin.args.zip(passed_args).
186
- inject(Sass::Environment.new(mixin.environment)) do |env, ((var, default), value)|
187
- env.set_local_var(var.name,
188
- if value
189
- value.perform(@environment)
190
- elsif kv = passed_keywords[var.underscored_name]
191
- kv.perform(@environment)
192
- elsif default
193
- default.perform(env)
194
- end)
195
- raise Sass::SyntaxError.new("Mixin #{node.name} is missing parameter #{var.inspect}.") unless env.var(var.name)
196
- env
197
- end
198
-
199
- with_environment(environment) {node.children = mixin.tree.map {|c| visit(c)}.flatten}
200
- node
201
- rescue Sass::SyntaxError => e
202
- if original_env # Don't add backtrace info if this is an @include loop
203
- e.modify_backtrace(:mixin => node.name, :line => node.line)
204
- e.add_backtrace(:line => node.line)
205
- end
206
- raise e
207
- ensure
208
- original_env.pop_frame if original_env
209
- end
210
-
211
- # Runs any SassScript that may be embedded in a property.
212
- def visit_prop(node)
213
- node.resolved_name = run_interp(node.name)
214
- val = node.value.perform(@environment)
215
- node.resolved_value = val.to_s
216
- yield
217
- end
218
-
219
- # Returns the value of the expression.
220
- def visit_return(node)
221
- throw :_sass_return, node.expr.perform(@environment)
222
- end
223
-
224
- # Runs SassScript interpolation in the selector,
225
- # and then parses the result into a {Sass::Selector::CommaSequence}.
226
- def visit_rule(node)
227
- parser = Sass::SCSS::StaticParser.new(run_interp(node.rule), node.filename, node.line)
228
- node.parsed_rules ||= parser.parse_selector
229
- if node.options[:trace_selectors]
230
- @environment.push_frame(:filename => node.filename, :line => node.line)
231
- node.stack_trace = @environment.stack_trace
232
- @environment.pop_frame
233
- end
234
- yield
235
- end
236
-
237
- # Loads the new variable value into the environment.
238
- def visit_variable(node)
239
- return [] if node.guarded && !@environment.var(node.name).nil?
240
- val = node.expr.perform(@environment)
241
- @environment.set_var(node.name, val)
242
- []
243
- end
244
-
245
- # Prints the expression to STDERR with a stylesheet trace.
246
- def visit_warn(node)
247
- @environment.push_frame(:filename => node.filename, :line => node.line)
248
- res = node.expr.perform(@environment)
249
- res = res.value if res.is_a?(Sass::Script::String)
250
- msg = "WARNING: #{res}\n "
251
- msg << @environment.stack_trace.join("\n ")
252
- # JRuby doesn't automatically add a newline for #warn
253
- msg << (RUBY_PLATFORM =~ /java/ ? "\n\n" : "\n")
254
- Sass::Util.sass_warn msg
255
- []
256
- ensure
257
- @environment.pop_frame
258
- end
259
-
260
- # Runs the child nodes until the continuation expression becomes false.
261
- def visit_while(node)
262
- children = []
263
- with_environment Sass::Environment.new(@environment) do
264
- children += node.children.map {|c| visit(c)} while node.expr.perform(@environment).to_bool
265
- end
266
- children.flatten
267
- end
268
-
269
- def visit_directive(node)
270
- if node.value['#{']
271
- node.value = run_interp(Sass::Engine.parse_interp(node.value, node.line, 0, node.options))
272
- end
273
- yield
274
- node
275
- end
276
-
277
- private
278
-
279
- def run_interp_no_strip(text)
280
- text.map do |r|
281
- next r if r.is_a?(String)
282
- val = r.perform(@environment)
283
- # Interpolated strings should never render with quotes
284
- next val.value if val.is_a?(Sass::Script::String)
285
- val.to_s
286
- end.join
287
- end
288
-
289
- def run_interp(text)
290
- run_interp_no_strip(text).strip
291
- end
292
-
293
- def handle_include_loop!(node)
294
- msg = "An @include loop has been found:"
295
- mixins = @environment.stack.map {|s| s[:mixin]}.compact
296
- if mixins.size == 2 && mixins[0] == mixins[1]
297
- raise Sass::SyntaxError.new("#{msg} #{node.name} includes itself")
298
- end
299
-
300
- mixins << node.name
301
- msg << "\n" << Sass::Util.enum_cons(mixins, 2).map do |m1, m2|
302
- " #{m1} includes #{m2}"
303
- end.join("\n")
304
- raise Sass::SyntaxError.new(msg)
305
- end
306
-
307
- def check_for_loud_silent_comment(node)
308
- return unless node.loud && node.silent
309
- Sass::Util.sass_warn <<MESSAGE
310
- WARNING:
311
- On line #{node.line}#{" of '#{node.filename}'" if node.filename}
312
- `//` comments will no longer be allowed to use the `!` flag in Sass 3.2.
313
- Please change to `/*` comments.
314
- MESSAGE
315
- end
316
-
317
- def check_for_comment_interp(node)
318
- return if node.loud
319
- node.value.each do |e|
320
- next unless e.is_a?(String)
321
- e.scan(/(\\*)#\{/) do |esc|
322
- Sass::Util.sass_warn <<MESSAGE if esc.first.size.even?
323
- WARNING:
324
- On line #{node.line}#{" of '#{node.filename}'" if node.filename}
325
- Comments will evaluate the contents of interpolations (\#{ ... }) in Sass 3.2.
326
- Please escape the interpolation by adding a backslash before the `#`.
327
- MESSAGE
328
- return
329
- end
330
- end
331
- end
332
- end