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,62 +0,0 @@
1
- module Sass
2
- module Selector
3
- # The abstract parent class of the various selector sequence classes.
4
- #
5
- # All subclasses should implement a `members` method
6
- # that returns an array of object that respond to `#line=` and `#filename=`.
7
- class AbstractSequence
8
- # The line of the Sass template on which this selector was declared.
9
- #
10
- # @return [Fixnum]
11
- attr_reader :line
12
-
13
- # The name of the file in which this selector was declared.
14
- #
15
- # @return [String, nil]
16
- attr_reader :filename
17
-
18
- # Sets the line of the Sass template on which this selector was declared.
19
- # This also sets the line for all child selectors.
20
- #
21
- # @param line [Fixnum]
22
- # @return [Fixnum]
23
- def line=(line)
24
- members.each {|m| m.line = line}
25
- @line = line
26
- end
27
-
28
- # Sets the name of the file in which this selector was declared,
29
- # or `nil` if it was not declared in a file (e.g. on stdin).
30
- # This also sets the filename for all child selectors.
31
- #
32
- # @param filename [String, nil]
33
- # @return [String, nil]
34
- def filename=(filename)
35
- members.each {|m| m.filename = filename}
36
- @filename = filename
37
- end
38
-
39
- # Returns a hash code for this sequence.
40
- #
41
- # Subclasses should define `#_hash` rather than overriding this method,
42
- # which automatically handles memoizing the result.
43
- #
44
- # @return [Fixnum]
45
- def hash
46
- @_hash ||= _hash
47
- end
48
-
49
- # Checks equality between this and another object.
50
- #
51
- # Subclasses should define `#_eql?` rather than overriding this method,
52
- # which handles checking class equality and hash equality.
53
- #
54
- # @param other [Object] The object to test equality against
55
- # @return [Boolean] Whether or not this is equal to `other`
56
- def eql?(other)
57
- other.class == self.class && other.hash == self.hash && _eql?(other)
58
- end
59
- alias_method :==, :eql?
60
- end
61
- end
62
- end
@@ -1,81 +0,0 @@
1
- module Sass
2
- module Selector
3
- # A comma-separated sequence of selectors.
4
- class CommaSequence < AbstractSequence
5
- # The comma-separated selector sequences
6
- # represented by this class.
7
- #
8
- # @return [Array<Sequence>]
9
- attr_reader :members
10
-
11
- # @param seqs [Array<Sequence>] See \{#members}
12
- def initialize(seqs)
13
- @members = seqs
14
- end
15
-
16
- # Resolves the {Parent} selectors within this selector
17
- # by replacing them with the given parent selector,
18
- # handling commas appropriately.
19
- #
20
- # @param super_cseq [CommaSequence] The parent selector
21
- # @return [CommaSequence] This selector, with parent references resolved
22
- # @raise [Sass::SyntaxError] If a parent selector is invalid
23
- def resolve_parent_refs(super_cseq)
24
- if super_cseq.nil?
25
- if @members.any? do |sel|
26
- sel.members.any? do |sel_or_op|
27
- sel_or_op.is_a?(SimpleSequence) && sel_or_op.members.any? {|ssel| ssel.is_a?(Parent)}
28
- end
29
- end
30
- raise Sass::SyntaxError.new("Base-level rules cannot contain the parent-selector-referencing character '&'.")
31
- end
32
- return self
33
- end
34
-
35
- CommaSequence.new(
36
- super_cseq.members.map do |super_seq|
37
- @members.map {|seq| seq.resolve_parent_refs(super_seq)}
38
- end.flatten)
39
- end
40
-
41
- # Non-destrucively extends this selector with the extensions specified in a hash
42
- # (which should come from {Sass::Tree::Visitors::Cssize}).
43
- #
44
- # @todo Link this to the reference documentation on `@extend`
45
- # when such a thing exists.
46
- #
47
- # @param extends [Sass::Util::SubsetMap{Selector::Simple => Selector::Sequence}]
48
- # The extensions to perform on this selector
49
- # @return [CommaSequence] A copy of this selector,
50
- # with extensions made according to `extends`
51
- def do_extend(extends)
52
- CommaSequence.new(members.map {|seq| seq.do_extend(extends)}.flatten)
53
- end
54
-
55
- # Returns a string representation of the sequence.
56
- # This is basically the selector string.
57
- #
58
- # @return [String]
59
- def inspect
60
- members.map {|m| m.inspect}.join(", ")
61
- end
62
-
63
- # @see Simple#to_a
64
- def to_a
65
- arr = Sass::Util.intersperse(@members.map {|m| m.to_a}, ", ").flatten
66
- arr.delete("\n")
67
- arr
68
- end
69
-
70
- private
71
-
72
- def _hash
73
- members.hash
74
- end
75
-
76
- def _eql?(other)
77
- other.class == self.class && other.members.eql?(self.members)
78
- end
79
- end
80
- end
81
- end
@@ -1,233 +0,0 @@
1
- module Sass
2
- module Selector
3
- # An operator-separated sequence of
4
- # {SimpleSequence simple selector sequences}.
5
- class Sequence < AbstractSequence
6
- # Sets the line of the Sass template on which this selector was declared.
7
- # This also sets the line for all child selectors.
8
- #
9
- # @param line [Fixnum]
10
- # @return [Fixnum]
11
- def line=(line)
12
- members.each {|m| m.line = line if m.is_a?(SimpleSequence)}
13
- line
14
- end
15
-
16
- # Sets the name of the file in which this selector was declared,
17
- # or `nil` if it was not declared in a file (e.g. on stdin).
18
- # This also sets the filename for all child selectors.
19
- #
20
- # @param filename [String, nil]
21
- # @return [String, nil]
22
- def filename=(filename)
23
- members.each {|m| m.filename = filename if m.is_a?(SimpleSequence)}
24
- filename
25
- end
26
-
27
- # The array of {SimpleSequence simple selector sequences}, operators, and newlines.
28
- # The operators are strings such as `"+"` and `">"`
29
- # representing the corresponding CSS operators.
30
- # Newlines are also newline strings;
31
- # these aren't semantically relevant,
32
- # but they do affect formatting.
33
- #
34
- # @return [Array<SimpleSequence, String>]
35
- attr_reader :members
36
-
37
- # @param seqs_and_ops [Array<SimpleSequence, String>] See \{#members}
38
- def initialize(seqs_and_ops)
39
- @members = seqs_and_ops
40
- end
41
-
42
- # Resolves the {Parent} selectors within this selector
43
- # by replacing them with the given parent selector,
44
- # handling commas appropriately.
45
- #
46
- # @param super_seq [Sequence] The parent selector sequence
47
- # @return [Sequence] This selector, with parent references resolved
48
- # @raise [Sass::SyntaxError] If a parent selector is invalid
49
- def resolve_parent_refs(super_seq)
50
- members = @members
51
- nl = (members.first == "\n" && members.shift)
52
- unless members.any? do |seq_or_op|
53
- seq_or_op.is_a?(SimpleSequence) && seq_or_op.members.first.is_a?(Parent)
54
- end
55
- members = []
56
- members << nl if nl
57
- members << SimpleSequence.new([Parent.new])
58
- members += @members
59
- end
60
-
61
- Sequence.new(
62
- members.map do |seq_or_op|
63
- next seq_or_op unless seq_or_op.is_a?(SimpleSequence)
64
- seq_or_op.resolve_parent_refs(super_seq)
65
- end.flatten)
66
- end
67
-
68
- # Non-destructively extends this selector with the extensions specified in a hash
69
- # (which should come from {Sass::Tree::Visitors::Cssize}).
70
- #
71
- # @overload def do_extend(extends)
72
- # @param extends [Sass::Util::SubsetMap{Selector::Simple => Selector::Sequence}]
73
- # The extensions to perform on this selector
74
- # @return [Array<Sequence>] A list of selectors generated
75
- # by extending this selector with `extends`.
76
- # These correspond to a {CommaSequence}'s {CommaSequence#members members array}.
77
- # @see CommaSequence#do_extend
78
- def do_extend(extends, seen = Set.new)
79
- paths = Sass::Util.paths(members.map do |sseq_or_op|
80
- next [[sseq_or_op]] unless sseq_or_op.is_a?(SimpleSequence)
81
- extended = sseq_or_op.do_extend(extends, seen)
82
- choices = extended.map {|seq| seq.members}
83
- choices.unshift([sseq_or_op]) unless extended.any? {|seq| seq.superselector?(sseq_or_op)}
84
- choices
85
- end)
86
- Sass::Util.flatten(paths.map {|path| weave(path)}, 1).map {|p| Sequence.new(p)}
87
- end
88
-
89
- # Returns whether or not this selector matches all elements
90
- # that the given selector matches (as well as possibly more).
91
- #
92
- # @example
93
- # (.foo).superselector?(.foo.bar) #=> true
94
- # (.foo).superselector?(.bar) #=> false
95
- # (.bar .foo).superselector?(.foo) #=> false
96
- # @param sseq [SimpleSequence]
97
- # @return [Boolean]
98
- def superselector?(sseq)
99
- return false unless members.size == 1
100
- members.last.superselector?(sseq)
101
- end
102
-
103
- # @see Simple#to_a
104
- def to_a
105
- ary = @members.map {|seq_or_op| seq_or_op.is_a?(SimpleSequence) ? seq_or_op.to_a : seq_or_op}
106
- Sass::Util.intersperse(ary, " ").flatten.compact
107
- end
108
-
109
- # Returns a string representation of the sequence.
110
- # This is basically the selector string.
111
- #
112
- # @return [String]
113
- def inspect
114
- members.map {|m| m.inspect}.join(" ")
115
- end
116
-
117
- private
118
-
119
- # Conceptually, this expands "parenthesized selectors".
120
- # That is, if we have `.A .B {@extend .C}` and `.D .C {...}`,
121
- # this conceptually expands into `.D .C, .D (.A .B)`,
122
- # and this function translates `.D (.A .B)` into `.D .A .B, .A.D .B, .D .A .B`.
123
- #
124
- # @param path [Array<Array<SimpleSequence or String>>] A list of parenthesized selector groups.
125
- # @return [Array<Array<SimpleSequence or String>>] A list of fully-expanded selectors.
126
- def weave(path)
127
- befores = [[]]
128
- afters = path.dup
129
-
130
- until afters.empty?
131
- current = afters.shift.dup
132
- last_current = [current.pop]
133
- while !current.empty? && last_current.first.is_a?(String) || current.last.is_a?(String)
134
- last_current.unshift(current.pop)
135
- end
136
- befores = Sass::Util.flatten(befores.map do |before|
137
- subweave(before, current).map {|seqs| seqs + last_current}
138
- end, 1)
139
- return befores if afters.empty?
140
- end
141
- end
142
-
143
- # This interweaves two lists of selectors,
144
- # returning all possible orderings of them (including using unification)
145
- # that maintain the relative ordering of the input arrays.
146
- #
147
- # For example, given `.foo .bar` and `.baz .bang`,
148
- # this would return `.foo .bar .baz .bang`, `.foo .bar.baz .bang`,
149
- # `.foo .baz .bar .bang`, `.foo .baz .bar.bang`, `.foo .baz .bang .bar`,
150
- # and so on until `.baz .bang .foo .bar`.
151
- #
152
- # @overload def subweave(seq1, seq2)
153
- # @param seq1 [Array<SimpleSequence or String>]
154
- # @param seq2 [Array<SimpleSequence or String>]
155
- # @return [Array<Array<SimpleSequence or String>>]
156
- def subweave(seq1, seq2, cache = {})
157
- return [seq2] if seq1.empty?
158
- return [seq1] if seq2.empty?
159
-
160
- seq1 = group_selectors(seq1)
161
- seq2 = group_selectors(seq2)
162
- lcs = Sass::Util.lcs(seq2, seq1) do |s1, s2|
163
- next s1 if s1 == s2
164
- next unless s1.first.is_a?(SimpleSequence) && s2.first.is_a?(SimpleSequence)
165
- next s2 if subweave_superselector?(s1, s2)
166
- next s1 if subweave_superselector?(s2, s1)
167
- end
168
-
169
- diff = []
170
- until lcs.empty?
171
- diff << chunks(seq1, seq2) {|s| subweave_superselector?(s.first, lcs.first)} << [lcs.shift]
172
- seq1.shift
173
- seq2.shift
174
- end
175
- diff << chunks(seq1, seq2) {|s| s.empty?}
176
- diff.reject! {|c| c.empty?}
177
-
178
- Sass::Util.paths(diff).map {|p| p.flatten}
179
- end
180
-
181
- def chunks(seq1, seq2)
182
- chunk1 = []
183
- chunk1 << seq1.shift until yield seq1
184
- chunk2 = []
185
- chunk2 << seq2.shift until yield seq2
186
- return [] if chunk1.empty? && chunk2.empty?
187
- return [chunk2] if chunk1.empty?
188
- return [chunk1] if chunk2.empty?
189
- [chunk1 + chunk2, chunk2 + chunk1]
190
- end
191
-
192
- def group_selectors(seq)
193
- newseq = []
194
- tail = seq.dup
195
- until tail.empty?
196
- head = []
197
- begin
198
- head << tail.shift
199
- end while !tail.empty? && head.last.is_a?(String) || tail.first.is_a?(String)
200
- newseq << head
201
- end
202
- return newseq
203
- end
204
-
205
- def subweave_superselector?(sseq1, sseq2)
206
- if sseq1.size > 1
207
- # More complex selectors are never superselectors of less complex ones
208
- return unless sseq2.size > 1
209
- # .foo ~ .bar is a superselector of .foo + .bar
210
- return unless sseq1[1] == "~" ? sseq2[1] != ">" : sseq2[1] == sseq1[1]
211
- return unless sseq1.first.superselector?(sseq2.first)
212
- return true if sseq1.size == 2
213
- return false if sseq2.size == 2
214
- return subweave_superselector?(sseq1[2..-1], sseq2[2..-1])
215
- elsif sseq2.size > 1
216
- return true if sseq2[1] == ">" && sseq1.first.superselector?(sseq2.first)
217
- return false if sseq2.size == 2
218
- return subweave_superselector?(sseq1, sseq2[2..-1])
219
- else
220
- sseq1.first.superselector?(sseq2.first)
221
- end
222
- end
223
-
224
- def _hash
225
- members.reject {|m| m == "\n"}.hash
226
- end
227
-
228
- def _eql?(other)
229
- other.members.reject {|m| m == "\n"}.eql?(self.members.reject {|m| m == "\n"})
230
- end
231
- end
232
- end
233
- end
@@ -1,113 +0,0 @@
1
- module Sass
2
- module Selector
3
- # The abstract superclass for simple selectors
4
- # (that is, those that don't compose multiple selectors).
5
- class Simple
6
- # The line of the Sass template on which this selector was declared.
7
- #
8
- # @return [Fixnum]
9
- attr_accessor :line
10
-
11
- # The name of the file in which this selector was declared,
12
- # or `nil` if it was not declared in a file (e.g. on stdin).
13
- #
14
- # @return [String, nil]
15
- attr_accessor :filename
16
-
17
- # Returns a representation of the node
18
- # as an array of strings and potentially {Sass::Script::Node}s
19
- # (if there's interpolation in the selector).
20
- # When the interpolation is resolved and the strings are joined together,
21
- # this will be the string representation of this node.
22
- #
23
- # @return [Array<String, Sass::Script::Node>]
24
- def to_a
25
- Sass::Util.abstract(self)
26
- end
27
-
28
- # Returns a string representation of the node.
29
- # This is basically the selector string.
30
- #
31
- # @return [String]
32
- def inspect
33
- to_a.map {|e| e.is_a?(Sass::Script::Node) ? "\#{#{e.to_sass}}" : e}.join
34
- end
35
-
36
- # Returns a hash code for this selector object.
37
- #
38
- # By default, this is based on the value of \{#to\_a},
39
- # so if that contains information irrelevant to the identity of the selector,
40
- # this should be overridden.
41
- #
42
- # @return [Fixnum]
43
- def hash
44
- @_hash ||= to_a.hash
45
- end
46
-
47
- # Checks equality between this and another object.
48
- #
49
- # By default, this is based on the value of \{#to\_a},
50
- # so if that contains information irrelevant to the identity of the selector,
51
- # this should be overridden.
52
- #
53
- # @param other [Object] The object to test equality against
54
- # @return [Boolean] Whether or not this is equal to `other`
55
- def eql?(other)
56
- other.class == self.class && other.hash == self.hash && other.to_a.eql?(to_a)
57
- end
58
- alias_method :==, :eql?
59
-
60
- # Unifies this selector with a {SimpleSequence}'s {SimpleSequence#members members array},
61
- # returning another `SimpleSequence` members array
62
- # that matches both this selector and the input selector.
63
- #
64
- # By default, this just appends this selector to the end of the array
65
- # (or returns the original array if this selector already exists in it).
66
- #
67
- # @param sels [Array<Simple>] A {SimpleSequence}'s {SimpleSequence#members members array}
68
- # @return [Array<Simple>, nil] A {SimpleSequence} {SimpleSequence#members members array}
69
- # matching both `sels` and this selector,
70
- # or `nil` if this is impossible (e.g. unifying `#foo` and `#bar`)
71
- # @raise [Sass::SyntaxError] If this selector cannot be unified.
72
- # This will only ever occur when a dynamic selector,
73
- # such as {Parent} or {Interpolation}, is used in unification.
74
- # Since these selectors should be resolved
75
- # by the time extension and unification happen,
76
- # this exception will only ever be raised as a result of programmer error
77
- def unify(sels)
78
- return sels if sels.any? {|sel2| eql?(sel2)}
79
- sels_with_ix = Sass::Util.enum_with_index(sels)
80
- _, i =
81
- if self.is_a?(Pseudo) || self.is_a?(SelectorPseudoClass)
82
- sels_with_ix.find {|sel, _| sel.is_a?(Pseudo) && sels.last.type == :element}
83
- else
84
- sels_with_ix.find {|sel, _| sel.is_a?(Pseudo) || sel.is_a?(SelectorPseudoClass)}
85
- end
86
- return sels + [self] unless i
87
- return sels[0...i] + [self] + sels[i..-1]
88
- end
89
-
90
- protected
91
-
92
- # Unifies two namespaces,
93
- # returning a namespace that works for both of them if possible.
94
- #
95
- # @param ns1 [String, nil] The first namespace.
96
- # `nil` means none specified, e.g. `foo`.
97
- # The empty string means no namespace specified, e.g. `|foo`.
98
- # `"*"` means any namespace is allowed, e.g. `*|foo`.
99
- # @param ns2 [String, nil] The second namespace. See `ns1`.
100
- # @return [Array(String or nil, Boolean)]
101
- # The first value is the unified namespace, or `nil` for no namespace.
102
- # The second value is whether or not a namespace that works for both inputs
103
- # could be found at all.
104
- # If the second value is `false`, the first should be ignored.
105
- def unify_namespaces(ns1, ns2)
106
- return nil, false unless ns1 == ns2 || ns1.nil? || ns1 == ['*'] || ns2.nil? || ns2 == ['*']
107
- return ns2, true if ns1 == ['*']
108
- return ns1, true if ns2 == ['*']
109
- return ns1 || ns2, true
110
- end
111
- end
112
- end
113
- end