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
@@ -6,7 +6,7 @@
6
6
  <li>
7
7
  <strong>Partial:</strong>
8
8
  <% @nesting = 5 %>
9
- <%= render :partial => 'haml/erb/av_partial_2' %>
9
+ <%= render :partial => 'erb/av_partial_2' %>
10
10
  <% end %>
11
11
  </ul>
12
12
  </div>
@@ -3,6 +3,6 @@
3
3
  <h3>This is a crazy deep-nested partial.</h3>
4
4
  <p>Nesting level <%= @nesting %></p>
5
5
  <% if @nesting > 0 %>
6
- <%= render :partial => 'haml/erb/av_partial_2' %>
6
+ <%= render :partial => 'erb/av_partial_2' %>
7
7
  <% end %>
8
8
  </div>
@@ -11,7 +11,7 @@
11
11
  It's only used for benchmarking.
12
12
  </h1>
13
13
  <div class="crazy_partials">
14
- <%= render :partial => 'haml/erb/av_partial_1' %>
14
+ <%= render :partial => 'erb/av_partial_1' %>
15
15
  </div>
16
16
  <!-- You're In my house now! -->
17
17
  <div class='header'>
File without changes
@@ -0,0 +1,141 @@
1
+ require 'test_helper'
2
+
3
+ class FiltersTest < MiniTest::Unit::TestCase
4
+ test "should be registered as filters when including Haml::Filters::Base" do
5
+ begin
6
+ refute Haml::Filters.defined.has_key? "bar"
7
+ Module.new {def self.name; "Foo::Bar"; end; include Haml::Filters::Base}
8
+ assert Haml::Filters.defined.has_key? "bar"
9
+ ensure
10
+ Haml::Filters.defined.delete "bar"
11
+ end
12
+ end
13
+
14
+ test "should raise error when attempting to register a defined Tilt filter" do
15
+ begin
16
+ assert_raises RuntimeError do
17
+ 2.times do
18
+ Haml::Filters.register_tilt_filter "Foo"
19
+ end
20
+ end
21
+ ensure
22
+ Haml::Filters.defined.delete "foo"
23
+ Haml::Filters.send :remove_const, :Foo
24
+ end
25
+ end
26
+
27
+ test "should respect escaped newlines and interpolation" do
28
+ html = "\\n\n"
29
+ haml = ":plain\n \\n\#{""}"
30
+ assert_equal(html, render(haml))
31
+ end
32
+
33
+ test "should process an filter with no content" do
34
+ assert_equal("\n", render(':plain'))
35
+ end
36
+
37
+ test "should be compatible with ugly mode" do
38
+ expectation = "foo\n"
39
+ assert_equal(expectation, render(":plain\n foo", :ugly => true))
40
+ end
41
+
42
+ test "should pass options to Tilt filters that precompile" do
43
+ haml = ":erb\n <%= 'foo' %>"
44
+ refute_match('TEST_VAR', Haml::Engine.new(haml).precompiled)
45
+ Haml::Filters::Erb.options = {:outvar => 'TEST_VAR'}
46
+ assert_match('TEST_VAR', Haml::Engine.new(haml).precompiled)
47
+ end
48
+
49
+ test "should pass options to Tilt filters that don't precompile" do
50
+ begin
51
+ filter = Class.new(Tilt::Template) do
52
+ def self.name
53
+ "Foo"
54
+ end
55
+
56
+ def prepare
57
+ @engine = {:data => data, :options => options}
58
+ end
59
+
60
+ def evaluate(scope, locals, &block)
61
+ @output = @engine[:options].to_a.join
62
+ end
63
+ end
64
+ Haml::Filters.register_tilt_filter "Foo", :template_class => filter
65
+ Haml::Filters::Foo.options[:foo] = "bar"
66
+ haml = ":foo"
67
+ assert_equal "foobar\n", render(haml)
68
+ ensure
69
+ Haml::Filters.defined.delete "foo"
70
+ Haml::Filters.send :remove_const, :Foo
71
+ end
72
+ end
73
+
74
+ end
75
+
76
+ class ErbFilterTest < MiniTest::Unit::TestCase
77
+ test "multiline expressions should work" do
78
+ html = "foobarbaz\n"
79
+ haml = %Q{:erb\n <%= "foo" +\n "bar" +\n "baz" %>}
80
+ assert_equal(html, render(haml))
81
+ end
82
+
83
+
84
+ test "should evaluate in the same context as Haml" do
85
+ haml = ":erb\n <%= foo %>"
86
+ html = "bar\n"
87
+ scope = Object.new.instance_eval {foo = "bar"; nil if foo; binding}
88
+ assert_equal(html, render(haml, :scope => scope))
89
+ end
90
+ end
91
+
92
+ class JavascriptFilterTest < MiniTest::Unit::TestCase
93
+ test "should interpolate" do
94
+ scope = Object.new.instance_eval {foo = "bar"; nil if foo; binding}
95
+ haml = ":javascript\n \#{foo}"
96
+ html = render(haml, :scope => scope)
97
+ assert_match(/bar/, html)
98
+ end
99
+
100
+ test "should never HTML-escape ampersands" do
101
+ html = "<script type='text/javascript'>\n //<![CDATA[\n & < > &\n //]]>\n</script>\n"
102
+ haml = %Q{:javascript\n & < > \#{"&"}}
103
+ assert_equal(html, render(haml, :escape_html => true))
104
+ end
105
+
106
+ test "should not include type in HTML 5 output" do
107
+ html = "<script>\n //<![CDATA[\n foo bar\n //]]>\n</script>\n"
108
+ haml = ":javascript\n foo bar"
109
+ assert_equal(html, render(haml, :format => :html5))
110
+ end
111
+ end
112
+
113
+ class CSSFilterTest < MiniTest::Unit::TestCase
114
+ test "should wrap output in CDATA and a CSS tag" do
115
+ html = "<style type='text/css'>\n /*<![CDATA[*/\n foo\n /*]]>*/\n</style>\n"
116
+ haml = ":css\n foo"
117
+ assert_equal(html, render(haml))
118
+ end
119
+
120
+ test "should not include type in HTML 5 output" do
121
+ html = "<style>\n /*<![CDATA[*/\n foo bar\n /*]]>*/\n</style>\n"
122
+ haml = ":css\n foo bar"
123
+ assert_equal(html, render(haml, :format => :html5))
124
+ end
125
+ end
126
+
127
+ class CDATAFilterTest < MiniTest::Unit::TestCase
128
+ test "should wrap output in CDATA tag" do
129
+ html = "<![CDATA[\n foo\n]]>\n"
130
+ haml = ":cdata\n foo"
131
+ assert_equal(html, render(haml))
132
+ end
133
+ end
134
+
135
+ class EscapedFilterTest < MiniTest::Unit::TestCase
136
+ test "should escape ampersands" do
137
+ html = "&amp;\n"
138
+ haml = ":escaped\n &"
139
+ assert_equal(html, render(haml))
140
+ end
141
+ end
@@ -1,8 +1,6 @@
1
- source :gemcutter
1
+ source :rubygems
2
2
 
3
- gem 'json'
4
- gem 'ruby_parser'
5
- gem 'hpricot'
6
- gem 'erubis'
7
- gem 'sass'
8
3
  gem 'rails', '>= 3.0.0', '< 3.1.0'
4
+ gemspec :path => "../.."
5
+ gem "haml-contrib", :path => "../../vendor/haml-contrib"
6
+
@@ -1,8 +1,7 @@
1
- source :gemcutter
1
+ source :rubygems
2
2
 
3
- gem 'json'
4
- gem 'ruby_parser'
5
- gem 'hpricot'
6
- gem 'erubis'
7
- gem 'sass'
8
3
  gem 'rails', '>= 3.1.0', '< 3.2.0'
4
+ gemspec :path => "../.."
5
+ gem "haml-contrib", :path => "../../vendor/haml-contrib"
6
+
7
+
@@ -0,0 +1,6 @@
1
+ source :rubygems
2
+
3
+ gem 'rails', '>= 3.2.0', '< 3.3.0'
4
+ gemspec :path => "../.."
5
+ gem "haml-contrib", :path => "../../vendor/haml-contrib"
6
+
@@ -0,0 +1,14 @@
1
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
2
+ Version 2, December 2004
3
+
4
+ Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
5
+
6
+ Everyone is permitted to copy and distribute verbatim or modified
7
+ copies of this license document, and changing it is allowed as long
8
+ as the name is changed.
9
+
10
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
11
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
12
+
13
+ 0. You just DO WHAT THE FUCK YOU WANT TO.
14
+
@@ -5,10 +5,12 @@ Haml Spec provides a basic suite of tests for Haml interpreters.
5
5
  It is intented for developers who are creating or maintaining an implementation
6
6
  of the [Haml](http://haml-lang.com) markup language.
7
7
 
8
- At the moment, there are test runners for the [original Haml](http://github.com/nex3/haml)
9
- in Ruby, and for [Lua Haml](http://github.com/norman/lua-haml). Support for
10
- other versions of Haml will be added if their developers/maintainers
11
- are interested in using it.
8
+ At the moment, there are test runners for the [original
9
+ Haml](http://github.com/nex3/haml) in Ruby, [Lua
10
+ Haml](http://github.com/norman/lua-haml) and the
11
+ [Text::Haml](http://github.com/vti/text-haml) Perl port. Support for other
12
+ versions of Haml will be added if their developers/maintainers are interested in
13
+ using it.
12
14
 
13
15
  ## The Tests ##
14
16
 
@@ -20,9 +22,11 @@ filters such as :markdown or :textile.
20
22
 
21
23
  The one major exception to this are the tests for interpolation, which you may
22
24
  need to modify with a regular expression to run under PHP or Perl, which
23
- require a symbol before variable names. These tests are included despite being
25
+ require a sigil before variable names. These tests are included despite being
24
26
  less than 100% portable because interpolation is an important part of Haml and
25
- can be tricky to implement.
27
+ can be tricky to implement. These tests are flagged as "optional" so that you
28
+ can avoid running them if your implementation of Haml will not support this
29
+ feature.
26
30
 
27
31
  ## Running the Tests ##
28
32
 
@@ -40,16 +44,19 @@ using Ruby 1.8.x, you'll also need to install `json`:
40
44
 
41
45
  Then, running the Ruby test suite is easy:
42
46
 
43
- ruby ruby_haml_test.rb
47
+ ruby -rminitest/autorun ruby_haml_test.rb
48
+
49
+ At the moment, running the tests with Ruby 1.8.7 fails because of issues with
50
+ the JSON library. Please use 1.9.2 until this is resolved.
44
51
 
45
52
  ### Lua ###
46
53
 
47
- The Lua test depends on [Telescope](http://telescope.luaforge.net/),
54
+ The Lua test depends on
55
+ [Penlight](http://stevedonovan.github.com/Penlight/),
56
+ [Telescope](http://github.com/norman/telescope),
48
57
  [jason4lua](http://json.luaforge.net/), and
49
- [Lua Haml](http://github.com/norman/lua-haml). Install and
50
- run `tsc lua_haml_spec.lua`.
51
-
52
- ## Contributing ##
58
+ [Lua Haml](http://github.com/norman/lua-haml). Install and run `tsc
59
+ lua_haml_spec.lua`.
53
60
 
54
61
  ### Getting it ###
55
62
 
@@ -65,11 +72,12 @@ be very happy to add them.
65
72
  ### Test JSON format ###
66
73
 
67
74
  "test name" : {
68
- "haml" : "haml input",
69
- "html" : "expected html output",
70
- "result" : "expected test result",
71
- "locals" : "local vars",
72
- "config" : "config params"
75
+ "haml" : "haml input",
76
+ "html" : "expected html output",
77
+ "result" : "expected test result",
78
+ "locals" : "local vars",
79
+ "config" : "config params",
80
+ "optional" : true|false
73
81
  }
74
82
 
75
83
  * test name: This should be a *very* brief description of what's being tested. It can
@@ -86,6 +94,7 @@ be very happy to add them.
86
94
  names, you may need to process them to make them match your implementation.
87
95
  If your implementation has options that do not exist in Ruby's Haml, then you
88
96
  should add tests for this in your implementation's test rather than here.
97
+ * optional: whether or not the test is optional
89
98
 
90
99
  ## License ##
91
100
 
@@ -0,0 +1,38 @@
1
+ local dir = require 'pl.dir'
2
+ local haml = require 'haml'
3
+ local json = require 'json'
4
+ local path = require 'pl.path'
5
+ local telescope = require 'telescope'
6
+ local assert = assert
7
+ local describe = telescope.describe
8
+ local getinfo = debug.getinfo
9
+ local it = telescope.it
10
+ local open = io.open
11
+ local pairs = pairs
12
+
13
+ module('hamlspec')
14
+
15
+ local function get_tests(filename)
16
+ local me = path.abspath(getinfo(1).source:match("@(.*)$"))
17
+ return path.join(path.dirname(me), filename)
18
+ end
19
+
20
+ local json_file = get_tests("tests.json")
21
+ local file = assert(open(json_file))
22
+ local input = file:read '*a'
23
+ file:close()
24
+
25
+ local contexts = json.decode(input)
26
+
27
+ describe("LuaHaml", function()
28
+ for context, expectations in pairs(contexts) do
29
+ describe("When handling " .. context, function()
30
+ for name, exp in pairs(expectations) do
31
+ it(("should correctly render %s"):format(name), function()
32
+ local engine = haml.new(exp.config)
33
+ assert_equal(engine:render(exp.haml, exp.locals), exp.html)
34
+ end)
35
+ end
36
+ end)
37
+ end
38
+ end)
@@ -0,0 +1,81 @@
1
+ #!/usr/bin/env perl
2
+
3
+ use strict;
4
+ use warnings;
5
+
6
+ use Test::More 'no_plan';
7
+ use Text::Haml;
8
+ use FindBin;
9
+ use JSON 'from_json';
10
+
11
+ our $VERSION = 0.990101;
12
+
13
+ my $tests;
14
+
15
+ open FILE, "< $FindBin::Bin/tests.json" or die $!;
16
+ $tests = from_json(join("\n", <FILE>));
17
+ close FILE;
18
+
19
+ while (my ($section_name, $section) = each %$tests) {
20
+ diag $section_name;
21
+
22
+ while (my ($test_name, $test) = each %$section) {
23
+ is( Text::Haml->new(%{$test->{config}}, vars_as_subs => 1)
24
+ ->render($test->{haml}, %{$test->{locals}}),
25
+ $test->{html}, $test_name
26
+ );
27
+ }
28
+ }
29
+ __END__
30
+
31
+ =head1 NAME
32
+
33
+ perl_haml_test.pl - Text::Haml spec tests runner
34
+
35
+ =head1 SYNOPSIS
36
+
37
+ $ perl perl_haml_test.pl
38
+
39
+ # conditional comments
40
+ ok 1 - a conditional comment
41
+ # tags with nested content
42
+ ok 2 - a tag with CSS
43
+
44
+ ...
45
+
46
+ ok 81 - an inline comment
47
+ ok 82 - a nested comment
48
+ 1..82
49
+
50
+ =head1 DESCRIPTION
51
+
52
+ This file is a part of Haml spec tests envorinment. It tests Perl
53
+ implementation using <Text::Haml>.
54
+
55
+ =head1 DEPENDENCIES
56
+
57
+ =over
58
+
59
+ * Text::Haml (available via CPAN or http://github.com/vti/text-haml)
60
+ * JSON (available on CPAN)
61
+ * Test::More (included in Perl core)
62
+ * FindBin (included in Perl core)
63
+
64
+ =back
65
+
66
+ =head1 SEE ALSO
67
+
68
+ L<Text::Haml>
69
+
70
+ =head1 AUTHOR
71
+
72
+ Viacheslav Tykhanovskyi, C<vti@cpan.org>.
73
+
74
+ =head1 COPYRIGHT AND LICENSE
75
+
76
+ Copyright (C) 2009, Viacheslav Tykhanovskyi
77
+
78
+ This program is free software, you can redistribute it and/or modify it under
79
+ the terms of the Artistic License version 2.0.
80
+
81
+ =cut
@@ -0,0 +1,23 @@
1
+ require "rubygems"
2
+ require "test/unit"
3
+ require "json"
4
+ require "haml"
5
+
6
+ class HamlTest < Test::Unit::TestCase
7
+ contexts = JSON.parse(File.read(File.dirname(__FILE__) + "/tests.json"))
8
+ contexts.each do |context|
9
+ context[1].each do |name, test|
10
+ define_method("test_spec: #{name} (#{context[0]})") do
11
+ html = test["html"]
12
+ haml = test["haml"]
13
+ locals = Hash[(test["locals"] || {}).map {|x, y| [x.to_sym, y]}]
14
+ options = Hash[(test["config"] || {}).map {|x, y| [x.to_sym, y]}]
15
+ options[:format] = options[:format].to_sym if options.key?(:format)
16
+ engine = Haml::Engine.new(haml, options)
17
+ result = engine.render(Object.new, locals)
18
+
19
+ assert_equal html, result.strip
20
+ end
21
+ end
22
+ end
23
+ end