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
@@ -63,7 +63,8 @@ module Haml
63
63
 
64
64
  # Input is escaped
65
65
  def haml_concat_with_haml_xss(text = "")
66
- haml_concat_without_haml_xss(@_haml_concat_raw ? text : haml_xss_html_escape(text))
66
+ raw = instance_variable_defined?('@_haml_concat_raw') ? @_haml_concat_raw : false
67
+ haml_concat_without_haml_xss(raw ? text : haml_xss_html_escape(text))
67
68
  end
68
69
 
69
70
  # Output is always HTML safe
@@ -148,18 +149,15 @@ module ActionView
148
149
  alias_method :concat_without_haml_xss, :concat
149
150
  alias_method :concat, :concat_with_haml_xss
150
151
 
151
- # safe_concat was introduced in Rails 3.0
152
- if Haml::Util.has?(:instance_method, self, :safe_concat)
153
- def safe_concat_with_haml_xss(string)
154
- if is_haml?
155
- haml_buffer.buffer.concat(string)
156
- else
157
- safe_concat_without_haml_xss(string)
158
- end
152
+ def safe_concat_with_haml_xss(string)
153
+ if is_haml?
154
+ haml_buffer.buffer.concat(string)
155
+ else
156
+ safe_concat_without_haml_xss(string)
159
157
  end
160
- alias_method :safe_concat_without_haml_xss, :safe_concat
161
- alias_method :safe_concat, :safe_concat_with_haml_xss
162
158
  end
159
+ alias_method :safe_concat_without_haml_xss, :safe_concat
160
+ alias_method :safe_concat, :safe_concat_with_haml_xss
163
161
  end
164
162
  end
165
163
  end
@@ -343,10 +343,10 @@ module Haml
343
343
  output + child.to_haml(tabs + 1, options)
344
344
  end
345
345
  end
346
-
346
+
347
347
  def dynamic_attributes
348
348
  @dynamic_attributes ||= begin
349
- Haml::Util.map_hash(attr_hash) do |name, value|
349
+ Hash[attr_hash.map do |name, value|
350
350
  next if value.empty?
351
351
  full_match = nil
352
352
  ruby_value = value.gsub(%r{<haml:loud>\s*(.+?)\s*</haml:loud>}) do
@@ -355,7 +355,7 @@ module Haml
355
355
  end
356
356
  next if ruby_value == value
357
357
  [name, full_match ? ruby_value : %("#{ruby_value}")]
358
- end
358
+ end]
359
359
  end
360
360
  end
361
361
 
@@ -366,7 +366,7 @@ module Haml
366
366
  else
367
367
  CGI.unescapeHTML(self.innerText)
368
368
  end
369
-
369
+
370
370
  content = erb_to_interpolation(content, options)
371
371
  content.gsub!(/\A\s*\n(\s*)/, '\1')
372
372
  original_indent = content[/\A(\s*)/, 1]
@@ -380,15 +380,15 @@ module Haml
380
380
  def static_attribute?(name, options)
381
381
  attr_hash[name] && !dynamic_attribute?(name, options)
382
382
  end
383
-
383
+
384
384
  def dynamic_attribute?(name, options)
385
385
  options[:erb] and dynamic_attributes.key?(name)
386
386
  end
387
-
387
+
388
388
  def static_id?(options)
389
389
  static_attribute?('id', options) && haml_css_attr?(attr_hash['id'])
390
390
  end
391
-
391
+
392
392
  def static_classname?(options)
393
393
  static_attribute?('class', options)
394
394
  end
@@ -401,11 +401,24 @@ module Haml
401
401
  # that's prettier than that produced by Hash#inspect
402
402
  def haml_attributes(options)
403
403
  attrs = attr_hash.sort.map do |name, value|
404
- value = dynamic_attribute?(name, options) ? dynamic_attributes[name] : value.inspect
404
+ haml_attribute_pair(name, value, options)
405
+ end
406
+ if options[:html_style_attributes]
407
+ "(#{attrs.join(' ')})"
408
+ else
409
+ "{#{attrs.join(', ')}}"
410
+ end
411
+ end
412
+
413
+ # Returns the string representation of a single attribute key value pair
414
+ def haml_attribute_pair(name, value, options)
415
+ value = dynamic_attribute?(name, options) ? dynamic_attributes[name] : value.inspect
416
+ if options[:html_style_attributes]
417
+ "#{name}=#{value}"
418
+ else
405
419
  name = name.index(/\W/) ? name.inspect : ":#{name}"
406
420
  "#{name} => #{value}"
407
421
  end
408
- "{#{attrs.join(', ')}}"
409
422
  end
410
423
  end
411
424
  end
@@ -99,7 +99,7 @@ module Haml
99
99
  # @return [Boolean]
100
100
  def valid_ruby?(code)
101
101
  RubyParser.new.parse(code)
102
- rescue Racc::ParseError => e
102
+ rescue Racc::ParseError
103
103
  false
104
104
  end
105
105
 
@@ -1,5 +1,4 @@
1
1
  require 'strscan'
2
- require 'haml/shared'
3
2
 
4
3
  module Haml
5
4
  module Parser
@@ -104,8 +103,8 @@ module Haml
104
103
  break @template_tabs + 1 if flat? && whitespace =~ /^#{@flat_spaces}/
105
104
 
106
105
  raise SyntaxError.new(<<END.strip.gsub("\n", ' '), line.index)
107
- Inconsistent indentation: #{Haml::Shared.human_indentation whitespace, true} used for indentation,
108
- but the rest of the document was indented using #{Haml::Shared.human_indentation @indentation}.
106
+ Inconsistent indentation: #{Haml::Util.human_indentation whitespace, true} used for indentation,
107
+ but the rest of the document was indented using #{Haml::Util.human_indentation @indentation}.
109
108
  END
110
109
  end
111
110
  end
@@ -151,7 +150,7 @@ END
151
150
  @parent = @parent.children.last
152
151
  end
153
152
 
154
- if !flat? && @next_line.tabs - @line.tabs > 1
153
+ if !@haml_comment && !flat? && @next_line.tabs - @line.tabs > 1
155
154
  raise SyntaxError.new("The line was indented #{@next_line.tabs - @line.tabs} levels deeper than the previous line.", @next_line.index)
156
155
  end
157
156
 
@@ -199,10 +198,10 @@ END
199
198
  when FILTER; push filter(text[1..-1].downcase)
200
199
  when DOCTYPE
201
200
  return push doctype(text) if text[0...3] == '!!!'
202
- return push plain(text[3..-1].strip, !:escape_html) if text[1..2] == "=="
203
- return push script(text[2..-1].strip, !:escape_html) if text[1] == SCRIPT
204
- return push flat_script(text[2..-1].strip, !:escape_html) if text[1] == FLAT_SCRIPT
205
- return push plain(text[1..-1].strip, !:escape_html) if text[1] == ?\s
201
+ return push plain(text[3..-1].strip, false) if text[1..2] == "=="
202
+ return push script(text[2..-1].strip, false) if text[1] == SCRIPT
203
+ return push flat_script(text[2..-1].strip, false) if text[1] == FLAT_SCRIPT
204
+ return push plain(text[1..-1].strip, false) if text[1] == ?\s
206
205
  push plain(text)
207
206
  when ESCAPE; push plain(text[1..-1])
208
207
  else; push plain(text)
@@ -233,7 +232,7 @@ END
233
232
  end
234
233
 
235
234
  escape_html = @options[:escape_html] if escape_html.nil?
236
- script(unescape_interpolation(text, escape_html), !:escape_html)
235
+ script(unescape_interpolation(text, escape_html), false)
237
236
  end
238
237
 
239
238
  def script(text, escape_html = nil, preserve = false)
@@ -530,7 +529,7 @@ END
530
529
  break if name.nil?
531
530
 
532
531
  if name == false
533
- text = (Haml::Shared.balance(line, ?(, ?)) || [line]).first
532
+ text = (Haml::Util.balance(line, ?(, ?)) || [line]).first
534
533
  raise Haml::SyntaxError.new("Invalid attribute list: #{text.inspect}.", last_line - 1)
535
534
  end
536
535
  attributes[name] = value
@@ -613,9 +612,10 @@ END
613
612
  # `flat?' here is a little outdated,
614
613
  # so we have to manually check if either the previous or current line
615
614
  # closes the flat block, as well as whether a new block is opened.
616
- @line.tabs if @line
615
+ line_defined = instance_variable_defined?('@line')
616
+ @line.tabs if line_defined
617
617
  unless (flat? && !closes_flat?(line) && !closes_flat?(@line)) ||
618
- (@line && @line.text[0] == ?: && line.full =~ %r[^#{@line.full[/^\s+/]}\s])
618
+ (line_defined && @line.text[0] == ?: && line.full =~ %r[^#{@line.full[/^\s+/]}\s])
619
619
  return next_line if line.text.empty?
620
620
 
621
621
  handle_multiline(line)
@@ -664,8 +664,15 @@ END
664
664
  text
665
665
  end
666
666
 
667
+ # `text' is a Ruby multiline block if it:
668
+ # - ends with a comma
669
+ # - but not "?," which is a character literal
670
+ # (however, "x?," is a method call and not a literal)
671
+ # - and not "?\," which is a character literal
672
+ #
667
673
  def is_ruby_multiline?(text)
668
- text && text.length > 1 && text[-1] == ?, && text[-2] != ?? && text[-3..-2] != "?\\"
674
+ text && text.length > 1 && text[-1] == ?, &&
675
+ !((text[-3..-2] =~ /\W\?/) || text[-3..-2] == "?\\")
669
676
  end
670
677
 
671
678
  def contains_interpolation?(str)
@@ -674,7 +681,7 @@ END
674
681
 
675
682
  def unescape_interpolation(str, escape_html = nil)
676
683
  res = ''
677
- rest = Haml::Shared.handle_interpolation str.dump do |scan|
684
+ rest = Haml::Util.handle_interpolation str.dump do |scan|
678
685
  escapes = (scan[2].size - 1) / 2
679
686
  res << scan.matched[0...-3 - escapes]
680
687
  if escapes % 2 == 1
@@ -689,7 +696,7 @@ END
689
696
  end
690
697
 
691
698
  def balance(*args)
692
- res = Haml::Shared.balance(*args)
699
+ res = Haml::Util.balance(*args)
693
700
  return res if res
694
701
  raise SyntaxError.new("Unbalanced brackets.")
695
702
  end
@@ -1,19 +1,8 @@
1
- if Haml::Util.ap_geq_3? && !Haml::Util.ap_geq?("3.0.0.beta4")
2
- raise <<ERROR
3
- Haml no longer supports Rails 3 versions before beta 4.
4
- Please upgrade to Rails 3.0.0.beta4 or later.
5
- ERROR
6
- end
7
-
8
- # Rails 3.0.0.beta.2+
9
- if defined?(ActiveSupport) && Haml::Util.has?(:public_method, ActiveSupport, :on_load)
1
+ if defined?(ActiveSupport)
10
2
  require 'haml/template/options'
11
- autoload(:Sass, 'sass/rails3_shim')
12
3
  ActiveSupport.on_load(:before_initialize) do
13
- # resolve autoload if it looks like they're using Sass without options
14
- Sass if File.exist?(File.join(Rails.root, 'public/stylesheets/sass'))
15
4
  ActiveSupport.on_load(:action_view) do
16
- Haml.init_rails(binding)
5
+ require "haml/template"
17
6
  end
18
7
  end
19
8
  end
@@ -2,98 +2,31 @@ require 'haml/template/options'
2
2
  require 'haml/engine'
3
3
  require 'haml/helpers/action_view_mods'
4
4
  require 'haml/helpers/action_view_extensions'
5
-
6
- if defined?(ActionPack::VERSION::STRING) &&
7
- ActionPack::VERSION::STRING == "2.3.6"
8
- raise "Haml does not support Rails 2.3.6. Please upgrade to 2.3.7 or later."
9
- end
5
+ require 'haml/helpers/xss_mods'
10
6
 
11
7
  module Haml
12
- # The class that keeps track of the global options for Haml within Rails.
13
- module Template
14
- # Enables integration with the Rails 2.2.5+ XSS protection,
15
- # if it's available and enabled.
16
- #
17
- # @return [Boolean] Whether the XSS integration was enabled.
18
- def try_enabling_xss_integration
19
- return false unless (ActionView::Base.respond_to?(:xss_safe?) && ActionView::Base.xss_safe?) ||
20
- # We check for ActiveSupport#on_load here because if we're loading Haml that way, it means:
21
- # A) we're in Rails 3 so XSS support is always on, and
22
- # B) we might be in Rails 3 beta 3 where the load order is broken and xss_safe? is undefined
23
- (defined?(ActiveSupport) && Haml::Util.has?(:public_method, ActiveSupport, :on_load))
24
-
25
- Haml::Template.options[:escape_html] = true
26
-
27
- Haml::Util.module_eval {def rails_xss_safe?; true; end}
28
-
29
- require 'haml/helpers/xss_mods'
30
- Haml::Helpers.send(:include, Haml::Helpers::XssMods)
31
-
32
- Haml::Compiler.module_eval do
33
- def precompiled_method_return_value_with_haml_xss
34
- "::Haml::Util.html_safe(#{precompiled_method_return_value_without_haml_xss})"
35
- end
36
- alias_method :precompiled_method_return_value_without_haml_xss, :precompiled_method_return_value
37
- alias_method :precompiled_method_return_value, :precompiled_method_return_value_with_haml_xss
38
- end
39
-
40
- true
8
+ module Compiler
9
+ def precompiled_method_return_value_with_haml_xss
10
+ "::Haml::Util.html_safe(#{precompiled_method_return_value_without_haml_xss})"
41
11
  end
12
+ alias_method :precompiled_method_return_value_without_haml_xss, :precompiled_method_return_value
13
+ alias_method :precompiled_method_return_value, :precompiled_method_return_value_with_haml_xss
42
14
  end
43
- end
44
15
 
45
- unless Haml::Util.rails_env == "development"
46
- Haml::Template.options[:ugly] ||= true
47
- end
16
+ module Helpers
17
+ include Haml::Helpers::XssMods
18
+ end
48
19
 
49
- if Haml::Util.ap_geq_3?
50
- Haml::Template.options[:format] ||= :html5
51
- end
20
+ module Util
21
+ undef :rails_xss_safe? if defined? rails_xss_safe?
22
+ def rails_xss_safe?; true; end
23
+ end
52
24
 
53
- # Decide how we want to load Haml into Rails.
54
- # Patching was necessary for versions <= 2.0.1,
55
- # but we can make it a normal handler for higher versions.
56
- if defined?(ActionView::TemplateHandler) ||
57
- (defined?(ActionView::Template) && defined?(ActionView::Template::Handler)) ||
58
- # Rails >= 3.2.0 uses Handlers instead of Handler
59
- (defined?(ActionView::Template) && defined?(ActionView::Template::Handlers))
60
- require 'haml/template/plugin'
61
- else
62
- require 'haml/template/patch'
63
25
  end
64
26
 
65
- # Enable XSS integration. Use Rails' after_initialize method
66
- # so that integration will be checked after the rails_xss plugin is loaded
67
- # (for Rails 2.3.* where it's not enabled by default).
68
- #
69
- # If we're running under Rails 3, though, we don't want to use after_intialize,
70
- # since Haml loading has already been deferred via ActiveSupport.on_load.
71
- if defined?(Rails.configuration.after_initialize) &&
72
- !(defined?(ActiveSupport) && Haml::Util.has?(:public_method, ActiveSupport, :on_load))
73
- Rails.configuration.after_initialize {Haml::Template.try_enabling_xss_integration}
74
- else
75
- Haml::Template.try_enabling_xss_integration
76
- end
77
27
 
78
- if Haml::Util.rails_root
79
- # Update init.rb to the current version
80
- # if it's out of date.
81
- #
82
- # We can probably remove this as of v1.9,
83
- # because the new init file is sufficiently flexible
84
- # to not need updating.
85
- rails_init_file = File.join(Haml::Util.rails_root, 'vendor', 'plugins', 'haml', 'init.rb')
86
- haml_init_file = Haml::Util.scope('init.rb')
87
- begin
88
- if File.exists?(rails_init_file)
89
- require 'fileutils'
90
- FileUtils.cp(haml_init_file, rails_init_file) unless FileUtils.cmp(rails_init_file, haml_init_file)
91
- end
92
- rescue SystemCallError
93
- Haml::Util.haml_warn <<END
94
- HAML WARNING:
95
- #{rails_init_file} is out of date and couldn't be automatically updated.
96
- Please run `haml --rails #{File.expand_path(Haml::Util.rails_root)}' to update it.
97
- END
98
- end
99
- end
28
+ Haml::Template.options[:ugly] ||= Rails.env.development?
29
+ Haml::Template.options[:escape_html] = true
30
+ Haml::Template.options[:format] ||= :html5
31
+
32
+ require 'haml/template/plugin'
@@ -8,7 +8,7 @@ module Haml
8
8
 
9
9
  @options = {}
10
10
  # The options hash for Haml when used within Rails.
11
- # See {file:HAML_REFERENCE.md#haml_options the Haml options documentation}.
11
+ # See {file:REFERENCE.md#haml_options the Haml options documentation}.
12
12
  #
13
13
  # @return [{Symbol => Object}]
14
14
  attr_accessor :options
@@ -1,37 +1,24 @@
1
- # This file makes Haml work with Rails
2
- # using the > 2.0.1 template handler API.
3
-
4
1
  module Haml
5
- # In Rails 3.1+, template handlers don't inherit from anything. In <= 3.0, they do.
6
- # To avoid messy logic figuring this out, we just inherit from whatever the ERB handler does.
7
- class Plugin < Haml::Util.av_template_class(:Handlers)::ERB.superclass
8
- if ((defined?(ActionView::TemplateHandlers) &&
9
- defined?(ActionView::TemplateHandlers::Compilable)) ||
10
- (defined?(ActionView::Template) &&
11
- defined?(ActionView::Template::Handlers) &&
12
- defined?(ActionView::Template::Handlers::Compilable))) &&
13
- # In Rails 3.1+, we don't need to include Compilable.
14
- Haml::Util.av_template_class(:Handlers)::ERB.include?(
15
- Haml::Util.av_template_class(:Handlers)::Compilable)
16
- include Haml::Util.av_template_class(:Handlers)::Compilable
2
+
3
+ # This module makes Haml work with Rails using the template handler API.
4
+ class Plugin < ActionView::Template::Handlers::ERB.superclass
5
+
6
+ # Rails 3.1+, template handlers don't inherit from anything. In <= 3.0, they
7
+ # do. To avoid messy logic figuring this out, we just inherit from whatever
8
+ # the ERB handler does.
9
+
10
+ # In Rails 3.1+, we don't need to include Compilable.
11
+ if ::Rails.version < "3.1"
12
+ include ActionView::Template::Handlers::Compilable
17
13
  end
18
14
 
19
15
  def handles_encoding?; true; end
20
16
 
21
17
  def compile(template)
22
18
  options = Haml::Template.options.dup
23
-
24
- # template is a template object in Rails >=2.1.0,
25
- # a source string previously
26
- if template.respond_to? :source
27
- # Template has a generic identifier in Rails >=3.0.0
28
- options[:filename] = template.respond_to?(:identifier) ? template.identifier : template.filename
29
- source = template.source
30
- else
31
- source = template
32
- end
33
-
34
- Haml::Engine.new(source, options).send(:precompiled_with_ambles, [])
19
+ options[:mime_type] = template.mime_type if template.respond_to? :mime_type
20
+ options[:filename] = template.identifier
21
+ Haml::Engine.new(template.source, options).send(:precompiled_with_ambles, [])
35
22
  end
36
23
 
37
24
  # In Rails 3.1+, #call takes the place of #compile
@@ -45,79 +32,6 @@ module Haml
45
32
  end
46
33
  end
47
34
  end
48
-
49
- # Rails 3.0 prints a deprecation warning when block helpers
50
- # return strings that go unused.
51
- # We want to print the same deprecation warning,
52
- # so we have to compile in a method call to check for it.
53
- #
54
- # I don't like having this in the compilation pipeline,
55
- # and I'd like to get rid of it once Rails 3.1 is well-established.
56
- if defined?(ActionView::OutputBuffer) &&
57
- Haml::Util.has?(:instance_method, ActionView::OutputBuffer, :append_if_string=)
58
- module Compiler
59
- def compile_silent_script_with_haml_block_deprecation(&block)
60
- unless block && !@node.value[:keyword] &&
61
- @node.value[:text] =~ ActionView::Template::Handlers::Erubis::BLOCK_EXPR
62
- return compile_silent_script_without_haml_block_deprecation(&block)
63
- end
64
-
65
- @node.value[:text] = "_hamlout.append_if_string= #{@node.value[:text]}"
66
- compile_silent_script_without_haml_block_deprecation(&block)
67
- end
68
- alias_method :compile_silent_script_without_haml_block_deprecation, :compile_silent_script
69
- alias_method :compile_silent_script, :compile_silent_script_with_haml_block_deprecation
70
- end
71
-
72
- class Buffer
73
- def append_if_string=(value)
74
- if value.is_a?(String) && !value.is_a?(ActionView::NonConcattingString)
75
- ActiveSupport::Deprecation.warn("- style block helpers are deprecated. Please use =", caller)
76
- buffer << value
77
- end
78
- end
79
- end
80
- end
81
35
  end
82
36
 
83
- if defined? ActionView::Template and ActionView::Template.respond_to? :register_template_handler
84
- ActionView::Template
85
- else
86
- ActionView::Base
87
- end.register_template_handler(:haml, Haml::Plugin)
88
-
89
- # In Rails 2.0.2, ActionView::TemplateError took arguments
90
- # that we can't fill in from the Haml::Plugin context.
91
- # Thus, we've got to monkeypatch ActionView::Base to catch the error.
92
- if defined?(ActionView::TemplateError) &&
93
- ActionView::TemplateError.instance_method(:initialize).arity == 5
94
- class ActionView::Base
95
- def compile_template(handler, template, file_name, local_assigns)
96
- render_symbol = assign_method_name(handler, template, file_name)
97
-
98
- # Move begin up two lines so it captures compilation exceptions.
99
- begin
100
- render_source = create_template_source(handler, template, render_symbol, local_assigns.keys)
101
- line_offset = @@template_args[render_symbol].size + handler.line_offset
102
-
103
- file_name = 'compiled-template' if file_name.blank?
104
- CompiledTemplates.module_eval(render_source, file_name, -line_offset)
105
- rescue Exception => e # errors from template code
106
- if logger
107
- logger.debug "ERROR: compiling #{render_symbol} RAISED #{e}"
108
- logger.debug "Function body: #{render_source}"
109
- logger.debug "Backtrace: #{e.backtrace.join("\n")}"
110
- end
111
-
112
- # There's no way to tell Haml about the filename,
113
- # so we've got to insert it ourselves.
114
- e.backtrace[0].gsub!('(haml)', file_name) if e.is_a?(Haml::Error)
115
-
116
- raise ActionView::TemplateError.new(extract_base_path_from(file_name) || view_paths.first, file_name || template, @assigns, template, e)
117
- end
118
-
119
- @@compile_time[render_symbol] = Time.now
120
- # logger.debug "Compiled template #{file_name || template}\n ==> #{render_symbol}" if logger
121
- end
122
- end
123
- end
37
+ ActionView::Template.register_template_handler(:haml, Haml::Plugin)