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,5 +1,6 @@
1
1
  require 'optparse'
2
2
  require 'fileutils'
3
+ require 'rbconfig'
3
4
 
4
5
  module Haml
5
6
  # This module handles the various Haml executables (`haml` and `haml-convert`).
@@ -80,7 +81,11 @@ module Haml
80
81
  end
81
82
 
82
83
  opts.on('--unix-newlines', 'Use Unix-style newlines in written files.') do
83
- @options[:unix_newlines] = true if ::Haml::Util.windows?
84
+ # Note that this is the preferred way to check for Windows, since
85
+ # JRuby and Rubinius also run there.
86
+ if RbConfig::CONFIG['host_os'] =~ /mswin|windows|mingw/i
87
+ @options[:unix_newlines] = true
88
+ end
84
89
  end
85
90
 
86
91
  opts.on_tail("-?", "-h", "--help", "Show this message") do
@@ -128,9 +133,9 @@ module Haml
128
133
  printf color(color, "%11s %s\n"), name, arg
129
134
  end
130
135
 
131
- # Same as \{Kernel.puts}, but doesn't print anything if the `--quiet` option is set.
136
+ # Same as `Kernel.puts`, but doesn't print anything if the `--quiet` option is set.
132
137
  #
133
- # @param args [Array] Passed on to \{Kernel.puts}
138
+ # @param args [Array] Passed on to `Kernel.puts`
134
139
  def puts(*args)
135
140
  return if @options[:for_engine][:quiet]
136
141
  Kernel.puts(*args)
@@ -239,7 +244,7 @@ END
239
244
  @options[:load_paths] << path
240
245
  end
241
246
 
242
- unless ::Haml::Util.ruby1_8?
247
+ unless RUBY_VERSION < "1.9"
243
248
  opts.on('-E ex[:in]', 'Specify the default external and internal character encodings.') do |encoding|
244
249
  external, internal = encoding.split(':')
245
250
  Encoding.default_external = external if external && !external.empty?
@@ -334,6 +339,18 @@ END
334
339
  @module_opts[:xhtml] = true
335
340
  end
336
341
 
342
+ opts.on("--html-attributes", "Use HTML style attributes instead of Ruby hash style.") do
343
+ @module_opts[:html_style_attributes] = true
344
+ end
345
+
346
+ unless RUBY_VERSION < "1.9"
347
+ opts.on('-E ex[:in]', 'Specify the default external and internal character encodings.') do |encoding|
348
+ external, internal = encoding.split(':')
349
+ Encoding.default_external = external if external && !external.empty?
350
+ Encoding.default_internal = internal if internal && !internal.empty?
351
+ end
352
+ end
353
+
337
354
  super
338
355
  end
339
356
 
@@ -1,3 +1,4 @@
1
+ require "tilt"
1
2
 
2
3
  module Haml
3
4
  # The module containing the default Haml filters,
@@ -5,9 +6,53 @@ module Haml
5
6
  #
6
7
  # @see Haml::Filters::Base
7
8
  module Filters
8
- # @return [{String => Haml::Filters::Base}] a hash of filter names to classes
9
- def self.defined
10
- @defined ||= {}
9
+
10
+ extend self
11
+
12
+ # @return [{String => Haml::Filters::Base}] a hash mapping filter names to
13
+ # classes.
14
+ attr_reader :defined
15
+ @defined = {}
16
+
17
+ # Loads an external template engine from
18
+ # [Tilt](https://github.com/rtomayko/tilt) as a filter. This method is used
19
+ # internally by Haml to set up filters for Sass, SCSS, Less, Coffeescript,
20
+ # and others. It's left public to make it easy for developers to add their
21
+ # own Tilt-based filters if they choose.
22
+ #
23
+ # @return [Module] The generated filter.
24
+ # @param [Hash] options Options for generating the filter module.
25
+ # @option options [Boolean] :precompiled Whether the filter should be
26
+ # precompiled. Erb, Nokogiri and Builder use this, for example.
27
+ # @option options [Class] :template_class The Tilt template class to use,
28
+ # in the event it can't be inferred from an extension.
29
+ # @option options [String] :extension The extension associated with the
30
+ # content, for example "markdown". This lets Tilt choose the preferred
31
+ # engine when there are more than one.
32
+ # @option options [String,Array<String>] :alias Any aliases for the filter.
33
+ # For example, :coffee is also available as :coffeescript.
34
+ # @since 3.2.0
35
+ def register_tilt_filter(name, options = {})
36
+ if constants.map(&:to_s).include?(name.to_s)
37
+ raise "#{name} filter already defined"
38
+ end
39
+
40
+ filter = const_set(name, Module.new)
41
+ filter.extend TiltFilter
42
+
43
+ filter.extend PrecompiledTiltFilter if options.has_key? :precompiled
44
+
45
+ if options.has_key? :template_class
46
+ filter.template_class = options[:template_class]
47
+ else
48
+ filter.tilt_extension = options.fetch(:extension) { name.downcase }
49
+ end
50
+
51
+ # All ":coffeescript" as alias for ":coffee", etc.
52
+ if options.has_key?(:alias)
53
+ [options[:alias]].flatten.each {|x| Filters.defined[x.to_s] = filter}
54
+ end
55
+ filter
11
56
  end
12
57
 
13
58
  # The base module for Haml filters.
@@ -77,25 +122,26 @@ module Haml
77
122
  #
78
123
  # @see #compile
79
124
  def internal_compile(*args)
80
- resolve_lazy_requires
81
125
  compile(*args)
82
126
  end
83
127
 
84
- # This should be overridden when a filter needs to have access to the Haml evaluation context.
85
- # Rather than applying a filter to a string at compile-time,
86
- # \{#compile} uses the {Haml::Compiler} instance to compile the string to Ruby code
87
- # that will be executed in the context of the active Haml template.
128
+ # This should be overridden when a filter needs to have access to the Haml
129
+ # evaluation context. Rather than applying a filter to a string at
130
+ # compile-time, \{#compile} uses the {Haml::Compiler} instance to compile
131
+ # the string to Ruby code that will be executed in the context of the
132
+ # active Haml template.
88
133
  #
89
134
  # Warning: the {Haml::Compiler} interface is neither well-documented
90
135
  # nor guaranteed to be stable.
91
- # If you want to make use of it, you'll probably need to look at the source code
92
- # and should test your filter when upgrading to new Haml versions.
136
+ # If you want to make use of it, you'll probably need to look at the
137
+ # source code and should test your filter when upgrading to new Haml
138
+ # versions.
93
139
  #
94
140
  # @param compiler [Haml::Compiler] The compiler instance
95
141
  # @param text [String] The text of the filter
96
- # @raise [Haml::Error] if none of \{#compile}, \{#render}, and \{#render_with_options} are overridden
142
+ # @raise [Haml::Error] if none of \{#compile}, \{#render}, and
143
+ # \{#render_with_options} are overridden
97
144
  def compile(compiler, text)
98
- resolve_lazy_requires
99
145
  filter = self
100
146
  compiler.instance_eval do
101
147
  if contains_interpolation?(text)
@@ -121,74 +167,18 @@ RUBY
121
167
 
122
168
  rendered = Haml::Helpers::find_and_preserve(filter.render_with_options(text, compiler.options), compiler.options[:preserve])
123
169
 
124
- if !options[:ugly]
125
- push_text(rendered.rstrip.gsub("\n", "\n#{' ' * @output_tabs}"))
126
- else
170
+ if options[:ugly]
127
171
  push_text(rendered.rstrip)
128
- end
129
- end
130
- end
131
-
132
- # This becomes a class method of modules that include {Base}.
133
- # It allows the module to specify one or more Ruby files
134
- # that Haml should try to require when compiling the filter.
135
- #
136
- # The first file specified is tried first, then the second, etc.
137
- # If none are found, the compilation throws an exception.
138
- #
139
- # For example:
140
- #
141
- # module Haml::Filters::Markdown
142
- # lazy_require 'rdiscount', 'peg_markdown', 'maruku', 'bluecloth', 'kramdown'
143
- #
144
- # ...
145
- # end
146
- #
147
- # @param reqs [Array<String>] The requires to run
148
- def lazy_require(*reqs)
149
- @lazy_requires = reqs
150
- end
151
-
152
- private
153
-
154
- def resolve_lazy_requires
155
- return unless @lazy_requires
156
-
157
- @lazy_requires[0...-1].each do |req|
158
- begin
159
- @required = req
160
- require @required
161
- return
162
- rescue LoadError; end # RCov doesn't see this, but it is run
163
- end
164
-
165
- begin
166
- @required = @lazy_requires[-1]
167
- require @required
168
- rescue LoadError => e
169
- classname = self.name.match(/\w+$/)[0]
170
-
171
- if @lazy_requires.size == 1
172
- raise Error.new("Can't run #{classname} filter; required file '#{@lazy_requires.first}' not found")
173
172
  else
174
- raise Error.new("Can't run #{classname} filter; required #{@lazy_requires.map { |r| "'#{r}'" }.join(' or ')}, but none were found")
173
+ push_text(rendered.rstrip.gsub("\n", "\n#{' ' * @output_tabs}"))
175
174
  end
176
175
  end
177
176
  end
178
177
  end
179
- end
180
- end
181
178
 
182
- begin
183
- require 'rubygems'
184
- rescue LoadError; end
185
-
186
- module Haml
187
- module Filters
188
179
  # Does not parse the filtered text.
189
- # This is useful for large blocks of text without HTML tags,
190
- # when you don't want lines starting with `.` or `-`
191
- # to be parsed.
180
+ # This is useful for large blocks of text without HTML tags, when you don't
181
+ # want lines starting with `.` or `-` to be parsed.
192
182
  module Plain
193
183
  include Base
194
184
 
@@ -196,8 +186,8 @@ module Haml
196
186
  def render(text); text; end
197
187
  end
198
188
 
199
- # Surrounds the filtered text with `<script>` and CDATA tags.
200
- # Useful for including inline Javascript.
189
+ # Surrounds the filtered text with `<script>` and CDATA tags. Useful for
190
+ # including inline Javascript.
201
191
  module Javascript
202
192
  include Base
203
193
 
@@ -219,8 +209,8 @@ END
219
209
  end
220
210
  end
221
211
 
222
- # Surrounds the filtered text with `<style>` and CDATA tags.
223
- # Useful for including inline CSS.
212
+ # Surrounds the filtered text with `<style>` and CDATA tags. Useful for
213
+ # including inline CSS.
224
214
  module Css
225
215
  include Base
226
216
 
@@ -252,8 +242,8 @@ END
252
242
  end
253
243
  end
254
244
 
255
- # Works the same as {Plain}, but HTML-escapes the text
256
- # before placing it in the document.
245
+ # Works the same as {Plain}, but HTML-escapes the text before placing it in
246
+ # the document.
257
247
  module Escaped
258
248
  include Base
259
249
 
@@ -263,14 +253,14 @@ END
263
253
  end
264
254
  end
265
255
 
266
- # Parses the filtered text with the normal Ruby interpreter.
267
- # All output sent to `$stdout`, such as with `puts`,
268
- # is output into the Haml document.
269
- # Not available if the {file:HAML_REFERENCE.md#suppress_eval-option `:suppress_eval`} option is set to true.
270
- # The Ruby code is evaluated in the same context as the Haml template.
256
+ # Parses the filtered text with the normal Ruby interpreter. All output sent
257
+ # to `$stdout`, such as with `puts`, is output into the Haml document. Not
258
+ # available if the {file:REFERENCE.md#suppress_eval-option `:suppress_eval`}
259
+ # option is set to true. The Ruby code is evaluated in the same context as
260
+ # the Haml template.
271
261
  module Ruby
272
262
  include Base
273
- lazy_require 'stringio'
263
+ require 'stringio'
274
264
 
275
265
  # @see Base#compile
276
266
  def compile(compiler, text)
@@ -288,9 +278,8 @@ END
288
278
  end
289
279
 
290
280
  # Inserts the filtered text into the template with whitespace preserved.
291
- # `preserve`d blocks of text aren't indented,
292
- # and newlines are replaced with the HTML escape code for newlines,
293
- # to preserve nice-looking output.
281
+ # `preserve`d blocks of text aren't indented, and newlines are replaced with
282
+ # the HTML escape code for newlines, to preserve nice-looking output.
294
283
  #
295
284
  # @see Haml::Helpers#preserve
296
285
  module Preserve
@@ -302,102 +291,83 @@ END
302
291
  end
303
292
  end
304
293
 
305
- # Parses the filtered text with {Sass} to produce CSS output.
306
- module Sass
307
- include Base
308
- lazy_require 'sass/plugin'
294
+ # @private
295
+ module TiltFilter
296
+ extend self
297
+ attr_accessor :tilt_extension, :options
298
+ attr_writer :template_class
299
+
300
+ def template_class
301
+ (@template_class if defined? @template_class) or begin
302
+ @template_class = Tilt["t.#{tilt_extension}"] or
303
+ raise "Can't run #{self} filter; you must require its dependencies first"
304
+ rescue LoadError
305
+ raise Error.new("Can't run #{self} filter; required dependencies not available")
306
+ end
307
+ end
309
308
 
310
- # @see Base#render
311
- def render(text)
312
- ::Sass::Engine.new(text, ::Sass::Plugin.engine_options).render
309
+ def self.extended(base)
310
+ base.options = {}
311
+ base.instance_eval do
312
+ include Base
313
+ def render(text)
314
+ Haml::Util.silence_warnings do
315
+ template_class.new(nil, 1, options) {text}.render
316
+ end
317
+ end
318
+ end
313
319
  end
314
320
  end
315
321
 
316
- # Parses the filtered text with ERB.
317
- # Not available if the {file:HAML_REFERENCE.md#suppress_eval-option `:suppress_eval`} option is set to true.
318
- # Embedded Ruby code is evaluated in the same context as the Haml template.
319
- module ERB
320
- include Base
321
- lazy_require 'erb'
322
+ # @private
323
+ module PrecompiledTiltFilter
324
+ def precompiled(text)
325
+ template_class.new(nil, 1, options) { text }.send(:precompiled, {}).first
326
+ end
322
327
 
323
- # @see Base#compile
324
328
  def compile(compiler, text)
325
329
  return if compiler.options[:suppress_eval]
326
- src = ::ERB.new(text).src.sub(/^#coding:.*?\n/, '').
327
- sub(/^_erbout = '';/, "")
328
- compiler.send(:push_silent, src)
330
+ compiler.send(:push_script, precompiled(text))
329
331
  end
330
332
  end
331
333
 
332
- # Parses the filtered text with [Textile](http://www.textism.com/tools/textile).
333
- # Only works if [RedCloth](http://redcloth.org) is installed.
334
- module Textile
335
- include Base
336
- lazy_require 'redcloth'
334
+ # @!parse module Sass; end
335
+ register_tilt_filter "Sass"
337
336
 
338
- # @see Base#render
339
- def render(text)
340
- ::RedCloth.new(text).to_html(:textile)
341
- end
342
- end
343
- # An alias for the Textile filter,
344
- # since the only available Textile parser is RedCloth.
345
- # @api public
346
- RedCloth = Textile
347
- Filters.defined['redcloth'] = RedCloth
348
-
349
- # Parses the filtered text with [Markdown](http://daringfireball.net/projects/markdown).
350
- # Only works if [RDiscount](https://github.com/rtomayko/rdiscount),
351
- # [RPeg-Markdown](https://github.com/rtomayko/rpeg-markdown),
352
- # [Maruku](http://maruku.rubyforge.org),
353
- # [Redcarpet](https://github.com/tanoku/redcarpet),
354
- # or [Kramdown](https://github.com/gettalong/kramdown) are installed.
355
- module Markdown
356
- include Base
357
- lazy_require 'rdiscount', 'peg_markdown', 'maruku', 'bluecloth', 'redcarpet', 'kramdown'
337
+ # @!parse module Scss; end
338
+ register_tilt_filter "Scss"
358
339
 
359
- # @see Base#render
360
- def render(text)
361
- engine = case @required
362
- when 'rdiscount'
363
- ::RDiscount
364
- when 'peg_markdown'
365
- ::PEGMarkdown
366
- when 'maruku'
367
- ::Maruku
368
- when 'bluecloth'
369
- ::BlueCloth
370
- when 'redcarpet'
371
- ::Redcarpet
372
- when 'kramdown'
373
- ::Kramdown::Document
374
- end
375
- engine.new(text).to_html
376
- end
377
- end
340
+ # @!parse module Less; end
341
+ register_tilt_filter "Less"
378
342
 
379
- # Parses the filtered text with [Maruku](http://maruku.rubyforge.org),
380
- # which has some non-standard extensions to Markdown.
381
- module Maruku
382
- include Base
383
- lazy_require 'maruku'
343
+ # @!parse module Markdown; end
344
+ register_tilt_filter "Markdown"
384
345
 
385
- # @see Base#render
386
- def render(text)
387
- ::Maruku.new(text).to_html
388
- end
389
- end
346
+ # @!parse module Erb; end
347
+ register_tilt_filter "Erb", :precompiled => true
390
348
 
391
- # Parses the filtered text with [Redcarpet](https://github.com/tanoku/redcarpet)
392
- module Redcarpet
393
- include Base
394
- lazy_require 'redcarpet'
349
+ # @!parse module Coffee; end
350
+ register_tilt_filter "Coffee", :alias => "coffeescript"
395
351
 
396
- # @see Base#render
397
- def render(text)
398
- ::Redcarpet.new(text).to_html
352
+ # Parses the filtered text with ERB.
353
+ # Not available if the {file:REFERENCE.md#suppress_eval-option
354
+ # `:suppress_eval`} option is set to true. Embedded Ruby code is evaluated
355
+ # in the same context as the Haml template.
356
+ module Erb
357
+ class << self
358
+ def precompiled(text)
359
+ super.sub(/^#coding:.*?\n/, '')
360
+ end
399
361
  end
400
362
  end
401
-
402
363
  end
403
364
  end
365
+
366
+ # These filters have been demoted to Haml Contrib but are still included by
367
+ # default in Haml 3.2. Still, we rescue from load error if for some reason
368
+ # haml-contrib is not installed.
369
+ begin
370
+ require "haml/filters/maruku"
371
+ require "haml/filters/textile"
372
+ rescue LoadError
373
+ end