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
@@ -8,7 +8,6 @@ module Haml
8
8
  # It's used to raise an error when the return value of a helper is used
9
9
  # when it shouldn't be.
10
10
  class ErrorReturn
11
- # @param message [String] The error message to raise when \{#to\_s} is called
12
11
  def initialize(method)
13
12
  @message = <<MESSAGE
14
13
  #{method} outputs directly to the Haml template.
@@ -71,7 +70,7 @@ MESSAGE
71
70
  # context.haml_tag :p, "Stuff"
72
71
  #
73
72
  def init_haml_helpers
74
- @haml_buffer = Haml::Buffer.new(@haml_buffer, Haml::Engine.new('').send(:options_for_buffer))
73
+ @haml_buffer = Haml::Buffer.new(haml_buffer, Haml::Engine.new('').send(:options_for_buffer))
75
74
  nil
76
75
  end
77
76
 
@@ -147,7 +146,7 @@ MESSAGE
147
146
  # <li>hello</li>
148
147
  # <li>yall</li>
149
148
  #
150
- # And
149
+ # And:
151
150
  #
152
151
  # = list_of({:title => 'All the stuff', :description => 'A book about all the stuff.'}) do |key, val|
153
152
  # %h3= key.humanize
@@ -164,10 +163,33 @@ MESSAGE
164
163
  # <p>A book about all the stuff.</p>
165
164
  # </li>
166
165
  #
166
+ # While:
167
+ #
168
+ # = list_of(["Home", "About", "Contact", "FAQ"], {class: "nav", role: "nav"}) do |item|
169
+ # %a{ href="#" }= item
170
+ #
171
+ # Produces:
172
+ #
173
+ # <li class='nav' role='nav'>
174
+ # <a href='#'>Home</a>
175
+ # </li>
176
+ # <li class='nav' role='nav'>
177
+ # <a href='#'>About</a>
178
+ # </li>
179
+ # <li class='nav' role='nav'>
180
+ # <a href='#'>Contact</a>
181
+ # </li>
182
+ # <li class='nav' role='nav'>
183
+ # <a href='#'>FAQ</a>
184
+ # </li>
185
+ #
186
+ # `[[class", "nav"], [role", "nav"]]` could have been used instead of `{class: "nav", role: "nav"}` (or any enumerable collection where each pair of items responds to #to_s)
187
+ #
167
188
  # @param enum [Enumerable] The list of objects to iterate over
189
+ # @param [Enumerable<#to_s,#to_s>] opts Each key/value pair will become an attribute pair for each list item element.
168
190
  # @yield [item] A block which contains Haml code that goes within list items
169
191
  # @yieldparam item An element of `enum`
170
- def list_of(enum, &block)
192
+ def list_of(enum, opts={}, &block)
171
193
  to_return = enum.collect do |i|
172
194
  result = capture_haml(i, &block)
173
195
 
@@ -178,7 +200,7 @@ MESSAGE
178
200
  result = result.strip
179
201
  end
180
202
 
181
- "<li>#{result}</li>"
203
+ %Q!<li#{opts.empty? ? "" : " ".<<(opts.map{|k,v| "#{k}='#{v}'" }.join(" "))}>#{result}</li>!
182
204
  end
183
205
  to_return.join("\n")
184
206
  end
@@ -346,7 +368,9 @@ MESSAGE
346
368
 
347
369
  captured = haml_buffer.buffer.slice!(position..-1)
348
370
  return captured if haml_buffer.options[:ugly]
349
- captured = captured.split(/^/)
371
+ # Note that the "reject" is needed for rbx 1.2.4, which includes empty
372
+ # strings in the returned array when splitting by /^/.
373
+ captured = captured.split(/^/).reject {|x| x == ""}
350
374
 
351
375
  min_tabs = nil
352
376
  captured.each do |line|
@@ -432,24 +456,26 @@ MESSAGE
432
456
  # </table>
433
457
  #
434
458
  # @param name [#to_s] The name of the tag
435
- # @param flags [Array<Symbol>] Haml end-of-tag flags
436
459
  #
437
- # @overload haml_tag(name, *flags, attributes = {})
460
+ # @overload haml_tag(name, *rest, attributes = {})
438
461
  # @yield The block of Haml code within the tag
439
462
  # @overload haml_tag(name, text, *flags, attributes = {})
440
463
  # @param text [#to_s] The text within the tag
464
+ # @param flags [Array<Symbol>] Haml end-of-tag flags
441
465
  def haml_tag(name, *rest, &block)
442
466
  ret = ErrorReturn.new("haml_tag")
443
467
 
444
468
  text = rest.shift.to_s unless [Symbol, Hash, NilClass].any? {|t| rest.first.is_a? t}
445
469
  flags = []
446
470
  flags << rest.shift while rest.first.is_a? Symbol
447
- attrs = Haml::Util.map_keys(rest.shift || {}) {|key| key.to_s}
471
+ attrs = (rest.shift || {})
472
+ attrs.keys.each {|key| attrs[key.to_s] = attrs.delete(key)} unless attrs.empty?
448
473
  name, attrs = merge_name_and_attributes(name.to_s, attrs)
449
474
 
450
475
  attributes = Haml::Compiler.build_attributes(haml_buffer.html?,
451
476
  haml_buffer.options[:attr_wrapper],
452
477
  haml_buffer.options[:escape_attrs],
478
+ haml_buffer.options[:hyphenate_data_attrs],
453
479
  attrs)
454
480
 
455
481
  if text.nil? && block.nil? && (haml_buffer.options[:autoclose].include?(name) || flags.include?(:/))
@@ -574,7 +600,7 @@ MESSAGE
574
600
  #
575
601
  # @return [Haml::Buffer]
576
602
  def haml_buffer
577
- @haml_buffer
603
+ @haml_buffer if defined? @haml_buffer
578
604
  end
579
605
 
580
606
  # Gives a proc the same local `_hamlout` and `_erbout` variables
@@ -585,6 +611,7 @@ MESSAGE
585
611
  def haml_bind_proc(&proc)
586
612
  _hamlout = haml_buffer
587
613
  _erbout = _hamlout.buffer
614
+ _erbout.to_s #"use" the variable to silence warnings
588
615
  proc { |*args| proc.call(*args) }
589
616
  end
590
617
  end
@@ -45,7 +45,8 @@ module Haml
45
45
  # @yield A block in which all input to `#haml_concat` is treated as raw.
46
46
  # @see Haml::Util#rails_xss_safe?
47
47
  def with_raw_haml_concat
48
- @_haml_concat_raw, old = true, @_haml_concat_raw
48
+ @_haml_concat_raw = true
49
+ old = @_haml_concat_raw
49
50
  yield
50
51
  ensure
51
52
  @_haml_concat_raw = old
@@ -3,10 +3,9 @@ module ActionView
3
3
  def render_with_haml(*args, &block)
4
4
  options = args.first
5
5
 
6
- # If render :layout is used with a block,
7
- # it concats rather than returning a string
8
- # so we need it to keep thinking it's Haml
9
- # until it hits the sub-render
6
+ # If render :layout is used with a block, it concats rather than returning
7
+ # a string so we need it to keep thinking it's Haml until it hits the
8
+ # sub-render.
10
9
  if is_haml? && !(options.is_a?(Hash) && options[:layout] && block_given?)
11
10
  return non_haml { render_without_haml(*args, &block) }
12
11
  end
@@ -15,99 +14,52 @@ module ActionView
15
14
  alias_method :render_without_haml, :render
16
15
  alias_method :render, :render_with_haml
17
16
 
18
- # Rails >2.1
19
- if Haml::Util.has?(:instance_method, self, :output_buffer)
20
- def output_buffer_with_haml
21
- return haml_buffer.buffer if is_haml?
22
- output_buffer_without_haml
23
- end
24
- alias_method :output_buffer_without_haml, :output_buffer
25
- alias_method :output_buffer, :output_buffer_with_haml
17
+ def output_buffer_with_haml
18
+ return haml_buffer.buffer if is_haml?
19
+ output_buffer_without_haml
20
+ end
21
+ alias_method :output_buffer_without_haml, :output_buffer
22
+ alias_method :output_buffer, :output_buffer_with_haml
26
23
 
27
- def set_output_buffer_with_haml(new)
28
- if is_haml?
29
- new = String.new(new) if Haml::Util.rails_xss_safe? &&
30
- new.is_a?(Haml::Util.rails_safe_buffer_class)
31
- haml_buffer.buffer = new
32
- else
33
- set_output_buffer_without_haml new
24
+ def set_output_buffer_with_haml(new_buffer)
25
+ if is_haml?
26
+ if Haml::Util.rails_xss_safe? && new_buffer.is_a?(ActiveSupport::SafeBuffer)
27
+ new_buffer = String.new(new_buffer)
34
28
  end
29
+ haml_buffer.buffer = new_buffer
30
+ else
31
+ set_output_buffer_without_haml new_buffer
35
32
  end
36
- alias_method :set_output_buffer_without_haml, :output_buffer=
37
- alias_method :output_buffer=, :set_output_buffer_with_haml
38
33
  end
34
+ alias_method :set_output_buffer_without_haml, :output_buffer=
35
+ alias_method :output_buffer=, :set_output_buffer_with_haml
39
36
  end
40
37
 
41
38
  module Helpers
42
- # In Rails <=2.1, we've got to override considerable capturing infrastructure.
43
- # In Rails >2.1, we can make do with only overriding #capture
44
- # (which no longer behaves differently in helper contexts).
45
- unless Haml::Util.has?(:instance_method, ActionView::Base, :output_buffer)
46
- module CaptureHelper
47
- def capture_with_haml(*args, &block)
48
- # Rails' #capture helper will just return the value of the block
49
- # if it's not actually in the template context,
50
- # as detected by the existance of an _erbout variable.
51
- # We've got to do the same thing for compatibility.
52
-
53
- if is_haml? && block_is_haml?(block)
54
- value = nil
55
- buffer = capture_haml(*args) { value = yield(*args) }
56
- return buffer unless buffer.empty?
57
- return value if value.is_a?(String)
58
- else
59
- capture_without_haml(*args, &block)
60
- end
61
- end
62
- alias_method :capture_without_haml, :capture
63
- alias_method :capture, :capture_with_haml
64
-
65
- def capture_erb_with_buffer_with_haml(buffer, *args, &block)
66
- if is_haml?
67
- capture_haml(*args, &block)
68
- else
69
- capture_erb_with_buffer_without_haml(buffer, *args, &block)
70
- end
71
- end
72
- alias_method :capture_erb_with_buffer_without_haml, :capture_erb_with_buffer
73
- alias_method :capture_erb_with_buffer, :capture_erb_with_buffer_with_haml
74
- end
75
-
76
- module TextHelper
77
- def concat_with_haml(string, binding = nil)
78
- if is_haml?
79
- haml_buffer.buffer.concat(string)
80
- else
81
- concat_without_haml(string, binding)
82
- end
83
- end
84
- alias_method :concat_without_haml, :concat
85
- alias_method :concat, :concat_with_haml
86
- end
87
- else
88
- module CaptureHelper
89
- def capture_with_haml(*args, &block)
90
- if Haml::Helpers.block_is_haml?(block)
91
- _hamlout = eval('_hamlout', block.binding) # Necessary since capture_haml checks _hamlout
92
- value = nil
93
- buffer = capture_haml(*args) { value = yield(*args) }
94
- str =
95
- if !buffer.empty?
96
- buffer
97
- elsif value.is_a?(String)
98
- value
99
- else
100
- ''
101
- end
102
- return ActionView::NonConcattingString.new(str) if defined?(ActionView::NonConcattingString)
103
- return str
104
- else
105
- capture_without_haml(*args, &block)
106
- end
39
+ module CaptureHelper
40
+ def capture_with_haml(*args, &block)
41
+ if Haml::Helpers.block_is_haml?(block)
42
+ _hamlout = eval('_hamlout', block.binding) # Necessary since capture_haml checks _hamlout
43
+ value = nil
44
+ buffer = capture_haml(*args) { value = yield(*args) }
45
+ str =
46
+ if !buffer.empty?
47
+ buffer
48
+ elsif value.is_a?(String)
49
+ value
50
+ else
51
+ ''
52
+ end
53
+ # NonCattingString is present in Rails less than 3.1.0. When support
54
+ # for 3.0 is dropped, this can be removed.
55
+ return ActionView::NonConcattingString.new(str) if defined?(ActionView::NonConcattingString)
56
+ return str
57
+ else
58
+ capture_without_haml(*args, &block)
107
59
  end
108
- alias_method :capture_without_haml, :capture
109
- alias_method :capture, :capture_with_haml
110
60
  end
61
+ alias_method :capture_without_haml, :capture
62
+ alias_method :capture, :capture_with_haml
111
63
  end
112
64
 
113
65
  module TagHelper
@@ -150,109 +102,43 @@ module ActionView
150
102
  end
151
103
  end
152
104
 
153
- if Haml::Util.ap_geq_3?
154
- module FormTagHelper
155
- def form_tag_with_haml(url_for_options = {}, options = {}, *parameters_for_url, &proc)
156
- if is_haml?
157
- wrap_block = block_given? && block_is_haml?(proc)
158
- if wrap_block
159
- oldproc = proc
160
- proc = haml_bind_proc do |*args|
161
- concat "\n"
162
- with_tabs(1) {oldproc.call(*args)}
163
- end
164
- end
165
- res = form_tag_without_haml(url_for_options, options, *parameters_for_url, &proc) + "\n"
166
- res << "\n" if wrap_block
167
- res
168
- else
169
- form_tag_without_haml(url_for_options, options, *parameters_for_url, &proc)
170
- end
171
- end
172
- alias_method :form_tag_without_haml, :form_tag
173
- alias_method :form_tag, :form_tag_with_haml
174
- end
175
-
176
- module FormHelper
177
- def form_for_with_haml(object_name, *args, &proc)
178
- wrap_block = block_given? && is_haml? && block_is_haml?(proc)
105
+ module FormTagHelper
106
+ def form_tag_with_haml(url_for_options = {}, options = {}, *parameters_for_url, &proc)
107
+ if is_haml?
108
+ wrap_block = block_given? && block_is_haml?(proc)
179
109
  if wrap_block
180
110
  oldproc = proc
181
- proc = proc {|*args| with_tabs(1) {oldproc.call(*args)}}
182
- end
183
- res = form_for_without_haml(object_name, *args, &proc)
184
- res << "\n" if wrap_block
185
- res
186
- end
187
- alias_method :form_for_without_haml, :form_for
188
- alias_method :form_for, :form_for_with_haml
189
- end
190
-
191
- module CacheHelper
192
- # This is a workaround for a Rails 3 bug
193
- # that's present at least through beta 3.
194
- # Their fragment_for assumes that the block
195
- # will return its contents as a string,
196
- # which is not always the case.
197
- # Luckily, it only makes this assumption if caching is disabled,
198
- # so we only override that case.
199
- def fragment_for_with_haml(*args, &block)
200
- return fragment_for_without_haml(*args, &block) if controller.perform_caching
201
- capture(&block)
202
- end
203
- alias_method :fragment_for_without_haml, :fragment_for
204
- alias_method :fragment_for, :fragment_for_with_haml
205
- end
206
- else
207
- module FormTagHelper
208
- def form_tag_with_haml(url_for_options = {}, options = {}, *parameters_for_url, &proc)
209
- if is_haml?
210
- wrap_block = block_given? && block_is_haml?(proc)
211
- if wrap_block
212
- oldproc = proc
213
- proc = haml_bind_proc do |*args|
214
- concat "\n"
215
- tab_up
216
- oldproc.call(*args)
217
- tab_down
218
- concat haml_indent
219
- end
220
- concat haml_indent
221
- end
222
- res = form_tag_without_haml(url_for_options, options, *parameters_for_url, &proc) + "\n"
223
- if block_given?
111
+ proc = haml_bind_proc do |*args|
224
112
  concat "\n"
225
- return Haml::Helpers::ErrorReturn.new("form_tag")
113
+ with_tabs(1) {oldproc.call(*args)}
226
114
  end
227
- res
228
- else
229
- form_tag_without_haml(url_for_options, options, *parameters_for_url, &proc)
230
115
  end
116
+ res = form_tag_without_haml(url_for_options, options, *parameters_for_url, &proc) + "\n"
117
+ res << "\n" if wrap_block
118
+ res
119
+ else
120
+ form_tag_without_haml(url_for_options, options, *parameters_for_url, &proc)
231
121
  end
232
- alias_method :form_tag_without_haml, :form_tag
233
- alias_method :form_tag, :form_tag_with_haml
234
122
  end
123
+ alias_method :form_tag_without_haml, :form_tag
124
+ alias_method :form_tag, :form_tag_with_haml
125
+ end
235
126
 
236
- module FormHelper
237
- def form_for_with_haml(object_name, *args, &proc)
238
- wrap_block = block_given? && is_haml? && block_is_haml?(proc)
239
- if wrap_block
240
- oldproc = proc
241
- proc = haml_bind_proc do |*args|
242
- tab_up
243
- oldproc.call(*args)
244
- tab_down
245
- concat haml_indent
246
- end
247
- concat haml_indent
248
- end
249
- form_for_without_haml(object_name, *args, &proc)
250
- concat "\n" if wrap_block
251
- Haml::Helpers::ErrorReturn.new("form_for") if is_haml?
127
+ module FormHelper
128
+ def form_for_with_haml(object_name, *args, &proc)
129
+ wrap_block = block_given? && is_haml? && block_is_haml?(proc)
130
+ if wrap_block
131
+ oldproc = proc
132
+ proc = proc {|*subargs| with_tabs(1) {oldproc.call(*subargs)}}
252
133
  end
253
- alias_method :form_for_without_haml, :form_for
254
- alias_method :form_for, :form_for_with_haml
134
+ res = form_for_without_haml(object_name, *args, &proc)
135
+ res << "\n" if wrap_block
136
+ res
255
137
  end
138
+ alias_method :form_for_without_haml, :form_for
139
+ alias_method :form_for, :form_for_with_haml
256
140
  end
257
141
  end
258
142
  end
143
+
144
+ require "haml/helpers/rails_323_textarea_fix" if Rails.version >= "3.2.3"
@@ -0,0 +1,39 @@
1
+ # Rails 3.2.3's form helpers add a newline after opening textareas, which can
2
+ # cause problems with newlines being considered content rather than markup.
3
+ # These changes fix the issue by making the helpers emit "<haml:newline/>"
4
+ # rather than the leading newline. The tag is then replaced by a newline after
5
+ # rendering.
6
+ #
7
+ # This should be considered nothing more than an emergency hotfix to ensure
8
+ # compatibility with the latest version of Rails, made at a moment when the Haml
9
+ # project is transitioning to a new maintainer.
10
+
11
+ # module AbstractController
12
+ # module Rendering
13
+ # def render_to_body_with_haml(options = {})
14
+ # if rendered = render_to_body_without_haml(options)
15
+ # rendered.gsub('<haml:newline/>', "\n").html_safe
16
+ # end
17
+ # end
18
+ # alias_method_chain :render_to_body, :haml
19
+ # end
20
+ # end
21
+
22
+ module ActionView
23
+ module Helpers
24
+
25
+ module FormTagHelper
26
+ def text_area_tag_with_haml(*args)
27
+ text_area_tag_without_haml(*args).sub('>&#x000A;', ">\n").html_safe
28
+ end
29
+ alias_method_chain :text_area_tag, :haml
30
+ end
31
+
32
+ module FormHelper
33
+ def text_area_with_haml(*args)
34
+ text_area_without_haml(*args).sub('>&#x000A;', ">\n").html_safe
35
+ end
36
+ alias_method_chain :text_area, :haml
37
+ end
38
+ end
39
+ end