haml_ejs 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (358) hide show
  1. data/.yardopts +11 -0
  2. data/CONTRIBUTING +3 -0
  3. data/MIT-LICENSE +20 -0
  4. data/README.md +68 -0
  5. data/Rakefile +419 -0
  6. data/VERSION +1 -0
  7. data/VERSION_NAME +1 -0
  8. data/bin/haml +9 -0
  9. data/bin/html2haml +7 -0
  10. data/extra/update_watch.rb +13 -0
  11. data/init.rb +18 -0
  12. data/lib/haml.rb +49 -0
  13. data/lib/haml/buffer.rb +297 -0
  14. data/lib/haml/compiler.rb +486 -0
  15. data/lib/haml/engine.rb +312 -0
  16. data/lib/haml/error.rb +22 -0
  17. data/lib/haml/exec.rb +362 -0
  18. data/lib/haml/filters.rb +388 -0
  19. data/lib/haml/haml_ejs.rb +57 -0
  20. data/lib/haml/helpers.rb +608 -0
  21. data/lib/haml/helpers/action_view_extensions.rb +57 -0
  22. data/lib/haml/helpers/action_view_mods.rb +257 -0
  23. data/lib/haml/helpers/xss_mods.rb +165 -0
  24. data/lib/haml/html.rb +412 -0
  25. data/lib/haml/html/erb.rb +141 -0
  26. data/lib/haml/parser.rb +760 -0
  27. data/lib/haml/railtie.rb +19 -0
  28. data/lib/haml/root.rb +7 -0
  29. data/lib/haml/shared.rb +78 -0
  30. data/lib/haml/template.rb +99 -0
  31. data/lib/haml/template/options.rb +16 -0
  32. data/lib/haml/template/patch.rb +58 -0
  33. data/lib/haml/template/plugin.rb +123 -0
  34. data/lib/haml/util.rb +842 -0
  35. data/lib/haml/version.rb +109 -0
  36. data/lib/sass.rb +8 -0
  37. data/lib/sass/plugin.rb +10 -0
  38. data/lib/sass/rails2_shim.rb +9 -0
  39. data/lib/sass/rails3_shim.rb +16 -0
  40. data/rails/init.rb +1 -0
  41. data/test/benchmark.rb +91 -0
  42. data/test/gemfiles/Gemfile.rails-2.0.x +8 -0
  43. data/test/gemfiles/Gemfile.rails-2.0.x.lock +38 -0
  44. data/test/gemfiles/Gemfile.rails-2.1.x +8 -0
  45. data/test/gemfiles/Gemfile.rails-2.1.x.lock +38 -0
  46. data/test/gemfiles/Gemfile.rails-2.2.x +8 -0
  47. data/test/gemfiles/Gemfile.rails-2.2.x.lock +38 -0
  48. data/test/gemfiles/Gemfile.rails-2.3.x +8 -0
  49. data/test/gemfiles/Gemfile.rails-2.3.x.lock +40 -0
  50. data/test/gemfiles/Gemfile.rails-3.0.x +8 -0
  51. data/test/gemfiles/Gemfile.rails-3.0.x.lock +85 -0
  52. data/test/gemfiles/Gemfile.rails-3.1.x +8 -0
  53. data/test/gemfiles/Gemfile.rails-3.1.x.lock +98 -0
  54. data/test/gemfiles/Gemfile.rails-xss-2.3.x +9 -0
  55. data/test/gemfiles/Gemfile.rails-xss-2.3.x.lock +42 -0
  56. data/test/haml-ejs/haml-ejs_test.rb +22 -0
  57. data/test/haml-ejs/templates/conditional.input +3 -0
  58. data/test/haml-ejs/templates/conditional.output +3 -0
  59. data/test/haml-ejs/templates/conditional_and_interpolation.input +2 -0
  60. data/test/haml-ejs/templates/conditional_and_interpolation.output +3 -0
  61. data/test/haml-ejs/templates/conditional_else.input +5 -0
  62. data/test/haml-ejs/templates/conditional_else.output +5 -0
  63. data/test/haml-ejs/templates/conditional_else_elsif.input +7 -0
  64. data/test/haml-ejs/templates/conditional_else_elsif.output +7 -0
  65. data/test/haml-ejs/templates/conditional_elsif.input +5 -0
  66. data/test/haml-ejs/templates/conditional_elsif.output +5 -0
  67. data/test/haml-ejs/templates/conditional_unless.input +3 -0
  68. data/test/haml-ejs/templates/conditional_unless.output +3 -0
  69. data/test/haml-ejs/templates/conditional_unless_else.input +5 -0
  70. data/test/haml-ejs/templates/conditional_unless_else.output +5 -0
  71. data/test/haml-ejs/templates/conditional_unless_elsif_else.input +5 -0
  72. data/test/haml-ejs/templates/conditional_unless_elsif_else.output +5 -0
  73. data/test/haml-ejs/templates/interpolation.input +2 -0
  74. data/test/haml-ejs/templates/interpolation.output +1 -0
  75. data/test/haml-ejs/templates/iteration.input +2 -0
  76. data/test/haml-ejs/templates/iteration.output +3 -0
  77. data/test/haml-ejs/templates/suite.input +26 -0
  78. data/test/haml-ejs/templates/suite.output +27 -0
  79. data/test/haml/engine_test.rb +1925 -0
  80. data/test/haml/erb/_av_partial_1.erb +12 -0
  81. data/test/haml/erb/_av_partial_2.erb +8 -0
  82. data/test/haml/erb/action_view.erb +62 -0
  83. data/test/haml/erb/standard.erb +55 -0
  84. data/test/haml/helper_test.rb +454 -0
  85. data/test/haml/html2haml/erb_tests.rb +440 -0
  86. data/test/haml/html2haml_test.rb +336 -0
  87. data/test/haml/markaby/standard.mab +52 -0
  88. data/test/haml/mocks/article.rb +6 -0
  89. data/test/haml/results/content_for_layout.xhtml +12 -0
  90. data/test/haml/results/eval_suppressed.xhtml +9 -0
  91. data/test/haml/results/filters.xhtml +62 -0
  92. data/test/haml/results/helpers.xhtml +70 -0
  93. data/test/haml/results/helpful.xhtml +10 -0
  94. data/test/haml/results/just_stuff.xhtml +70 -0
  95. data/test/haml/results/list.xhtml +12 -0
  96. data/test/haml/results/nuke_inner_whitespace.xhtml +40 -0
  97. data/test/haml/results/nuke_outer_whitespace.xhtml +148 -0
  98. data/test/haml/results/original_engine.xhtml +20 -0
  99. data/test/haml/results/partial_layout.xhtml +5 -0
  100. data/test/haml/results/partials.xhtml +21 -0
  101. data/test/haml/results/render_layout.xhtml +3 -0
  102. data/test/haml/results/silent_script.xhtml +74 -0
  103. data/test/haml/results/standard.xhtml +162 -0
  104. data/test/haml/results/tag_parsing.xhtml +23 -0
  105. data/test/haml/results/very_basic.xhtml +5 -0
  106. data/test/haml/results/whitespace_handling.xhtml +89 -0
  107. data/test/haml/spec/README.md +97 -0
  108. data/test/haml/spec/lua_haml_spec.lua +30 -0
  109. data/test/haml/spec/ruby_haml_test.rb +19 -0
  110. data/test/haml/spec/tests.json +534 -0
  111. data/test/haml/spec_test.rb +44 -0
  112. data/test/haml/template_test.rb +419 -0
  113. data/test/haml/templates/_av_partial_1.haml +9 -0
  114. data/test/haml/templates/_av_partial_1_ugly.haml +9 -0
  115. data/test/haml/templates/_av_partial_2.haml +5 -0
  116. data/test/haml/templates/_av_partial_2_ugly.haml +5 -0
  117. data/test/haml/templates/_layout.erb +3 -0
  118. data/test/haml/templates/_layout_for_partial.haml +3 -0
  119. data/test/haml/templates/_partial.haml +8 -0
  120. data/test/haml/templates/_text_area.haml +3 -0
  121. data/test/haml/templates/action_view.haml +47 -0
  122. data/test/haml/templates/action_view_ugly.haml +47 -0
  123. data/test/haml/templates/breakage.haml +8 -0
  124. data/test/haml/templates/content_for_layout.haml +8 -0
  125. data/test/haml/templates/eval_suppressed.haml +11 -0
  126. data/test/haml/templates/filters.haml +66 -0
  127. data/test/haml/templates/helpers.haml +55 -0
  128. data/test/haml/templates/helpful.haml +11 -0
  129. data/test/haml/templates/just_stuff.haml +85 -0
  130. data/test/haml/templates/list.haml +12 -0
  131. data/test/haml/templates/nuke_inner_whitespace.haml +32 -0
  132. data/test/haml/templates/nuke_outer_whitespace.haml +144 -0
  133. data/test/haml/templates/original_engine.haml +17 -0
  134. data/test/haml/templates/partial_layout.haml +10 -0
  135. data/test/haml/templates/partialize.haml +1 -0
  136. data/test/haml/templates/partials.haml +12 -0
  137. data/test/haml/templates/render_layout.haml +2 -0
  138. data/test/haml/templates/silent_script.haml +40 -0
  139. data/test/haml/templates/standard.haml +43 -0
  140. data/test/haml/templates/standard_ugly.haml +43 -0
  141. data/test/haml/templates/tag_parsing.haml +21 -0
  142. data/test/haml/templates/very_basic.haml +4 -0
  143. data/test/haml/templates/whitespace_handling.haml +87 -0
  144. data/test/haml/util_test.rb +300 -0
  145. data/test/linked_rails.rb +42 -0
  146. data/test/test_helper.rb +75 -0
  147. data/vendor/sass/CONTRIBUTING +3 -0
  148. data/vendor/sass/MIT-LICENSE +20 -0
  149. data/vendor/sass/README.md +201 -0
  150. data/vendor/sass/Rakefile +339 -0
  151. data/vendor/sass/TODO +39 -0
  152. data/vendor/sass/VERSION +1 -0
  153. data/vendor/sass/VERSION_NAME +1 -0
  154. data/vendor/sass/bin/sass +8 -0
  155. data/vendor/sass/bin/sass-convert +7 -0
  156. data/vendor/sass/bin/scss +8 -0
  157. data/vendor/sass/doc-src/FAQ.md +35 -0
  158. data/vendor/sass/doc-src/INDENTED_SYNTAX.md +210 -0
  159. data/vendor/sass/doc-src/SASS_CHANGELOG.md +2214 -0
  160. data/vendor/sass/doc-src/SASS_REFERENCE.md +1957 -0
  161. data/vendor/sass/doc-src/SCSS_FOR_SASS_USERS.md +155 -0
  162. data/vendor/sass/ext/extconf.rb +10 -0
  163. data/vendor/sass/extra/update_watch.rb +13 -0
  164. data/vendor/sass/init.rb +18 -0
  165. data/vendor/sass/lib/sass.rb +72 -0
  166. data/vendor/sass/lib/sass/cache_stores.rb +15 -0
  167. data/vendor/sass/lib/sass/cache_stores/base.rb +84 -0
  168. data/vendor/sass/lib/sass/cache_stores/chain.rb +33 -0
  169. data/vendor/sass/lib/sass/cache_stores/filesystem.rb +58 -0
  170. data/vendor/sass/lib/sass/cache_stores/memory.rb +47 -0
  171. data/vendor/sass/lib/sass/cache_stores/null.rb +25 -0
  172. data/vendor/sass/lib/sass/callbacks.rb +66 -0
  173. data/vendor/sass/lib/sass/css.rb +294 -0
  174. data/vendor/sass/lib/sass/engine.rb +862 -0
  175. data/vendor/sass/lib/sass/environment.rb +155 -0
  176. data/vendor/sass/lib/sass/error.rb +201 -0
  177. data/vendor/sass/lib/sass/exec.rb +659 -0
  178. data/vendor/sass/lib/sass/importers.rb +22 -0
  179. data/vendor/sass/lib/sass/importers/base.rb +138 -0
  180. data/vendor/sass/lib/sass/importers/filesystem.rb +144 -0
  181. data/vendor/sass/lib/sass/less.rb +382 -0
  182. data/vendor/sass/lib/sass/plugin.rb +136 -0
  183. data/vendor/sass/lib/sass/plugin/compiler.rb +358 -0
  184. data/vendor/sass/lib/sass/plugin/configuration.rb +125 -0
  185. data/vendor/sass/lib/sass/plugin/generic.rb +15 -0
  186. data/vendor/sass/lib/sass/plugin/merb.rb +48 -0
  187. data/vendor/sass/lib/sass/plugin/rack.rb +60 -0
  188. data/vendor/sass/lib/sass/plugin/rails.rb +47 -0
  189. data/vendor/sass/lib/sass/plugin/staleness_checker.rb +173 -0
  190. data/vendor/sass/lib/sass/railtie.rb +9 -0
  191. data/vendor/sass/lib/sass/repl.rb +58 -0
  192. data/vendor/sass/lib/sass/root.rb +7 -0
  193. data/vendor/sass/lib/sass/script.rb +40 -0
  194. data/vendor/sass/lib/sass/script/bool.rb +18 -0
  195. data/vendor/sass/lib/sass/script/color.rb +480 -0
  196. data/vendor/sass/lib/sass/script/css_lexer.rb +29 -0
  197. data/vendor/sass/lib/sass/script/css_parser.rb +31 -0
  198. data/vendor/sass/lib/sass/script/funcall.rb +162 -0
  199. data/vendor/sass/lib/sass/script/functions.rb +1343 -0
  200. data/vendor/sass/lib/sass/script/interpolation.rb +70 -0
  201. data/vendor/sass/lib/sass/script/lexer.rb +334 -0
  202. data/vendor/sass/lib/sass/script/list.rb +76 -0
  203. data/vendor/sass/lib/sass/script/literal.rb +245 -0
  204. data/vendor/sass/lib/sass/script/node.rb +91 -0
  205. data/vendor/sass/lib/sass/script/number.rb +429 -0
  206. data/vendor/sass/lib/sass/script/operation.rb +91 -0
  207. data/vendor/sass/lib/sass/script/parser.rb +467 -0
  208. data/vendor/sass/lib/sass/script/string.rb +51 -0
  209. data/vendor/sass/lib/sass/script/string_interpolation.rb +94 -0
  210. data/vendor/sass/lib/sass/script/unary_operation.rb +57 -0
  211. data/vendor/sass/lib/sass/script/variable.rb +54 -0
  212. data/vendor/sass/lib/sass/scss.rb +17 -0
  213. data/vendor/sass/lib/sass/scss/css_parser.rb +46 -0
  214. data/vendor/sass/lib/sass/scss/parser.rb +920 -0
  215. data/vendor/sass/lib/sass/scss/rx.rb +127 -0
  216. data/vendor/sass/lib/sass/scss/sass_parser.rb +11 -0
  217. data/vendor/sass/lib/sass/scss/script_lexer.rb +15 -0
  218. data/vendor/sass/lib/sass/scss/script_parser.rb +25 -0
  219. data/vendor/sass/lib/sass/scss/static_parser.rb +40 -0
  220. data/vendor/sass/lib/sass/selector.rb +361 -0
  221. data/vendor/sass/lib/sass/selector/abstract_sequence.rb +62 -0
  222. data/vendor/sass/lib/sass/selector/comma_sequence.rb +81 -0
  223. data/vendor/sass/lib/sass/selector/sequence.rb +233 -0
  224. data/vendor/sass/lib/sass/selector/simple.rb +113 -0
  225. data/vendor/sass/lib/sass/selector/simple_sequence.rb +134 -0
  226. data/vendor/sass/lib/sass/shared.rb +78 -0
  227. data/vendor/sass/lib/sass/tree/charset_node.rb +22 -0
  228. data/vendor/sass/lib/sass/tree/comment_node.rb +77 -0
  229. data/vendor/sass/lib/sass/tree/debug_node.rb +18 -0
  230. data/vendor/sass/lib/sass/tree/directive_node.rb +23 -0
  231. data/vendor/sass/lib/sass/tree/each_node.rb +24 -0
  232. data/vendor/sass/lib/sass/tree/extend_node.rb +29 -0
  233. data/vendor/sass/lib/sass/tree/for_node.rb +36 -0
  234. data/vendor/sass/lib/sass/tree/function_node.rb +27 -0
  235. data/vendor/sass/lib/sass/tree/if_node.rb +65 -0
  236. data/vendor/sass/lib/sass/tree/import_node.rb +68 -0
  237. data/vendor/sass/lib/sass/tree/media_node.rb +32 -0
  238. data/vendor/sass/lib/sass/tree/mixin_def_node.rb +27 -0
  239. data/vendor/sass/lib/sass/tree/mixin_node.rb +32 -0
  240. data/vendor/sass/lib/sass/tree/node.rb +204 -0
  241. data/vendor/sass/lib/sass/tree/prop_node.rb +155 -0
  242. data/vendor/sass/lib/sass/tree/return_node.rb +18 -0
  243. data/vendor/sass/lib/sass/tree/root_node.rb +28 -0
  244. data/vendor/sass/lib/sass/tree/rule_node.rb +129 -0
  245. data/vendor/sass/lib/sass/tree/variable_node.rb +30 -0
  246. data/vendor/sass/lib/sass/tree/visitors/base.rb +75 -0
  247. data/vendor/sass/lib/sass/tree/visitors/check_nesting.rb +134 -0
  248. data/vendor/sass/lib/sass/tree/visitors/convert.rb +255 -0
  249. data/vendor/sass/lib/sass/tree/visitors/cssize.rb +175 -0
  250. data/vendor/sass/lib/sass/tree/visitors/perform.rb +301 -0
  251. data/vendor/sass/lib/sass/tree/visitors/to_css.rb +216 -0
  252. data/vendor/sass/lib/sass/tree/warn_node.rb +18 -0
  253. data/vendor/sass/lib/sass/tree/while_node.rb +18 -0
  254. data/vendor/sass/lib/sass/util.rb +669 -0
  255. data/vendor/sass/lib/sass/util/subset_map.rb +101 -0
  256. data/vendor/sass/lib/sass/version.rb +112 -0
  257. data/vendor/sass/rails/init.rb +1 -0
  258. data/vendor/sass/sass.gemspec +32 -0
  259. data/vendor/sass/test/sass/cache_test.rb +74 -0
  260. data/vendor/sass/test/sass/callbacks_test.rb +61 -0
  261. data/vendor/sass/test/sass/conversion_test.rb +1203 -0
  262. data/vendor/sass/test/sass/css2sass_test.rb +364 -0
  263. data/vendor/sass/test/sass/data/hsl-rgb.txt +319 -0
  264. data/vendor/sass/test/sass/engine_test.rb +2469 -0
  265. data/vendor/sass/test/sass/extend_test.rb +1348 -0
  266. data/vendor/sass/test/sass/functions_test.rb +1025 -0
  267. data/vendor/sass/test/sass/importer_test.rb +82 -0
  268. data/vendor/sass/test/sass/less_conversion_test.rb +653 -0
  269. data/vendor/sass/test/sass/mock_importer.rb +49 -0
  270. data/vendor/sass/test/sass/more_results/more1.css +9 -0
  271. data/vendor/sass/test/sass/more_results/more1_with_line_comments.css +26 -0
  272. data/vendor/sass/test/sass/more_results/more_import.css +29 -0
  273. data/vendor/sass/test/sass/more_templates/_more_partial.sass +2 -0
  274. data/vendor/sass/test/sass/more_templates/more1.sass +23 -0
  275. data/vendor/sass/test/sass/more_templates/more_import.sass +11 -0
  276. data/vendor/sass/test/sass/plugin_test.rb +469 -0
  277. data/vendor/sass/test/sass/results/alt.css +4 -0
  278. data/vendor/sass/test/sass/results/basic.css +9 -0
  279. data/vendor/sass/test/sass/results/compact.css +5 -0
  280. data/vendor/sass/test/sass/results/complex.css +86 -0
  281. data/vendor/sass/test/sass/results/compressed.css +1 -0
  282. data/vendor/sass/test/sass/results/expanded.css +19 -0
  283. data/vendor/sass/test/sass/results/if.css +3 -0
  284. data/vendor/sass/test/sass/results/import.css +31 -0
  285. data/vendor/sass/test/sass/results/import_charset.css +4 -0
  286. data/vendor/sass/test/sass/results/import_charset_1_8.css +4 -0
  287. data/vendor/sass/test/sass/results/import_charset_ibm866.css +4 -0
  288. data/vendor/sass/test/sass/results/line_numbers.css +49 -0
  289. data/vendor/sass/test/sass/results/mixins.css +95 -0
  290. data/vendor/sass/test/sass/results/multiline.css +24 -0
  291. data/vendor/sass/test/sass/results/nested.css +22 -0
  292. data/vendor/sass/test/sass/results/options.css +1 -0
  293. data/vendor/sass/test/sass/results/parent_ref.css +13 -0
  294. data/vendor/sass/test/sass/results/script.css +16 -0
  295. data/vendor/sass/test/sass/results/scss_import.css +31 -0
  296. data/vendor/sass/test/sass/results/scss_importee.css +2 -0
  297. data/vendor/sass/test/sass/results/subdir/nested_subdir/nested_subdir.css +1 -0
  298. data/vendor/sass/test/sass/results/subdir/subdir.css +3 -0
  299. data/vendor/sass/test/sass/results/units.css +11 -0
  300. data/vendor/sass/test/sass/results/warn.css +0 -0
  301. data/vendor/sass/test/sass/results/warn_imported.css +0 -0
  302. data/vendor/sass/test/sass/script_conversion_test.rb +283 -0
  303. data/vendor/sass/test/sass/script_test.rb +496 -0
  304. data/vendor/sass/test/sass/scss/css_test.rb +916 -0
  305. data/vendor/sass/test/sass/scss/rx_test.rb +156 -0
  306. data/vendor/sass/test/sass/scss/scss_test.rb +1249 -0
  307. data/vendor/sass/test/sass/scss/test_helper.rb +37 -0
  308. data/vendor/sass/test/sass/templates/_imported_charset_ibm866.sass +4 -0
  309. data/vendor/sass/test/sass/templates/_imported_charset_utf8.sass +4 -0
  310. data/vendor/sass/test/sass/templates/_partial.sass +2 -0
  311. data/vendor/sass/test/sass/templates/alt.sass +16 -0
  312. data/vendor/sass/test/sass/templates/basic.sass +23 -0
  313. data/vendor/sass/test/sass/templates/bork1.sass +2 -0
  314. data/vendor/sass/test/sass/templates/bork2.sass +2 -0
  315. data/vendor/sass/test/sass/templates/bork3.sass +2 -0
  316. data/vendor/sass/test/sass/templates/bork4.sass +2 -0
  317. data/vendor/sass/test/sass/templates/compact.sass +17 -0
  318. data/vendor/sass/test/sass/templates/complex.sass +305 -0
  319. data/vendor/sass/test/sass/templates/compressed.sass +15 -0
  320. data/vendor/sass/test/sass/templates/expanded.sass +17 -0
  321. data/vendor/sass/test/sass/templates/if.sass +11 -0
  322. data/vendor/sass/test/sass/templates/import.sass +12 -0
  323. data/vendor/sass/test/sass/templates/import_charset.sass +7 -0
  324. data/vendor/sass/test/sass/templates/import_charset_1_8.sass +4 -0
  325. data/vendor/sass/test/sass/templates/import_charset_ibm866.sass +9 -0
  326. data/vendor/sass/test/sass/templates/importee.less +2 -0
  327. data/vendor/sass/test/sass/templates/importee.sass +19 -0
  328. data/vendor/sass/test/sass/templates/line_numbers.sass +13 -0
  329. data/vendor/sass/test/sass/templates/mixin_bork.sass +5 -0
  330. data/vendor/sass/test/sass/templates/mixins.sass +76 -0
  331. data/vendor/sass/test/sass/templates/multiline.sass +20 -0
  332. data/vendor/sass/test/sass/templates/nested.sass +25 -0
  333. data/vendor/sass/test/sass/templates/nested_bork1.sass +2 -0
  334. data/vendor/sass/test/sass/templates/nested_bork2.sass +2 -0
  335. data/vendor/sass/test/sass/templates/nested_bork3.sass +2 -0
  336. data/vendor/sass/test/sass/templates/nested_bork4.sass +2 -0
  337. data/vendor/sass/test/sass/templates/nested_import.sass +2 -0
  338. data/vendor/sass/test/sass/templates/nested_mixin_bork.sass +6 -0
  339. data/vendor/sass/test/sass/templates/options.sass +2 -0
  340. data/vendor/sass/test/sass/templates/parent_ref.sass +25 -0
  341. data/vendor/sass/test/sass/templates/script.sass +101 -0
  342. data/vendor/sass/test/sass/templates/scss_import.scss +11 -0
  343. data/vendor/sass/test/sass/templates/scss_importee.scss +1 -0
  344. data/vendor/sass/test/sass/templates/subdir/nested_subdir/_nested_partial.sass +2 -0
  345. data/vendor/sass/test/sass/templates/subdir/nested_subdir/nested_subdir.sass +3 -0
  346. data/vendor/sass/test/sass/templates/subdir/subdir.sass +6 -0
  347. data/vendor/sass/test/sass/templates/units.sass +11 -0
  348. data/vendor/sass/test/sass/templates/warn.sass +3 -0
  349. data/vendor/sass/test/sass/templates/warn_imported.sass +4 -0
  350. data/vendor/sass/test/sass/test_helper.rb +8 -0
  351. data/vendor/sass/test/sass/util/subset_map_test.rb +91 -0
  352. data/vendor/sass/test/sass/util_test.rb +254 -0
  353. data/vendor/sass/test/test_helper.rb +69 -0
  354. data/vendor/sass/yard/callbacks.rb +29 -0
  355. data/vendor/sass/yard/default/fulldoc/html/css/common.sass +26 -0
  356. data/vendor/sass/yard/default/layout/html/footer.erb +12 -0
  357. data/vendor/sass/yard/inherited_hash.rb +41 -0
  358. metadata +458 -0
data/.yardopts ADDED
@@ -0,0 +1,11 @@
1
+ --readme README.md
2
+ --markup markdown
3
+ --markup-provider maruku
4
+ --default-return ""
5
+ --title "Haml Documentation"
6
+ --query 'object.type != :classvariable'
7
+ --query 'object.type != :constant || @api && @api.text == "public"'
8
+ --hide-void-return
9
+ --protected
10
+ --no-private
11
+ --no-highlight
data/CONTRIBUTING ADDED
@@ -0,0 +1,3 @@
1
+ Contributions are welcomed. Please see the following sites for guidelines:
2
+
3
+ http://haml-lang.com/development.html#contributing
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2006-2009 Hampton Catlin and Nathan Weizenbaum
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,68 @@
1
+ # Haml+ejs
2
+
3
+ Haml+ejs is a templating engine for client-side HTML templates.
4
+ It's are designed to make it both easier and more pleasant
5
+ to write HTML documents,
6
+ by eliminating redundancy,
7
+ reflecting the underlying structure that the document represents,
8
+ and providing elegant, easily understandable, and powerful syntax.
9
+
10
+ ## Installing
11
+
12
+ Add the following to your project's Gemfile
13
+
14
+ gem 'haml_ejs'
15
+
16
+ ## Formatting
17
+
18
+ haml+ejs supports all of haml, plus some special EJS-producing directives.
19
+ You can compile Haml+ejs templates to HTML mingled with EJS. For example:
20
+
21
+ %p
22
+ ^= my_var
23
+ ^if sunny
24
+ Nice, eh?
25
+
26
+ compiles to:
27
+
28
+ <p>
29
+ <%= my_var %>
30
+ <% if (my_var) { %>
31
+ Nice eh?
32
+ <% } %>
33
+ </p>
34
+
35
+ The available EJS directives are:
36
+
37
+ <table>
38
+ <tbody>
39
+ <tr>
40
+ <td><tt>^=</tt></td>
41
+ <td>Interpolate a JavaScript variable</td>
42
+ </tr>
43
+ <tr>
44
+ <td><tt>^if</tt></td>
45
+ <td>Output nested content if JavaScript expression is truthy</td>
46
+ </tr>
47
+ <tr>
48
+ <td><tt>^unless</tt></td>
49
+ <td>Output nested content if JavaScript expression is falsy</td>
50
+ </tr>
51
+ <tr>
52
+ <td><tt>^elsif</tt></td>
53
+ <td>Output nested content if preceding JavaScript expression is falsy, and the provided expression is truthy</td>
54
+ </tr>
55
+ <tr>
56
+ <td><tt>^else</tt></td>
57
+ <td>Output nested content if precending JavaScript expression is falsy</td>
58
+ </tr>
59
+ <tr>
60
+ <td><tt>^each</tt></td>
61
+ <td>Iterate over the JavaScript collection, outputing the nested content once for each item in the collection</td>
62
+ </tr>
63
+ </tbody>
64
+ </table>
65
+
66
+
67
+ See the official [Haml documentation](http://beta.haml-lang.com/docs/yardoc/file.HAML_REFERENCE.html)
68
+ for how to use Haml itself.
data/Rakefile ADDED
@@ -0,0 +1,419 @@
1
+ # ----- Utility Functions -----
2
+
3
+ def scope(path)
4
+ File.join(File.dirname(__FILE__), path)
5
+ end
6
+
7
+ # ----- Benchmarking -----
8
+
9
+ desc <<END
10
+ Benchmark haml against ERb.
11
+ TIMES=n sets the number of runs. Defaults to 1000.
12
+ END
13
+ task :benchmark do
14
+ sh "ruby test/benchmark.rb #{ENV['TIMES']}"
15
+ end
16
+
17
+ # ----- Default: Testing ------
18
+
19
+ if ENV["RUN_CODE_RUN"] == "true"
20
+ task :default => :"test:rails_compatibility"
21
+ else
22
+ task :default => :test
23
+ end
24
+
25
+ require 'rake/testtask'
26
+
27
+ Rake::TestTask.new do |t|
28
+ t.libs << 'lib'
29
+ test_files = FileList[scope('test/**/*_test.rb')]
30
+ test_files.exclude(scope('test/rails/*'))
31
+ test_files.exclude(scope('test/plugins/*'))
32
+ test_files.exclude(scope('test/haml/spec/*'))
33
+ t.test_files = test_files
34
+ t.verbose = true
35
+ end
36
+ Rake::Task[:test].send(:add_comment, <<END)
37
+ To run with an alternate version of Rails, make test/rails a symlink to that version.
38
+ END
39
+
40
+ # ----- Packaging -----
41
+
42
+ # Don't use Rake::GemPackageTast because we want prerequisites to run
43
+ # before we load the gemspec.
44
+ desc "Build all the packages."
45
+ task :package => [:revision_file, :submodules, :permissions] do
46
+ version = get_version
47
+ File.open(scope('VERSION'), 'w') {|f| f.puts(version)}
48
+ load scope('haml.gemspec')
49
+ Gem::Builder.new(HAML_GEMSPEC).build
50
+ sh %{git checkout VERSION}
51
+
52
+ pkg = "#{HAML_GEMSPEC.name}-#{HAML_GEMSPEC.version}"
53
+ mkdir_p "pkg"
54
+ verbose(true) {mv "#{pkg}.gem", "pkg/#{pkg}.gem"}
55
+
56
+ sh %{rm -f pkg/#{pkg}.tar.gz}
57
+ verbose(false) {HAML_GEMSPEC.files.each {|f| sh %{tar rf pkg/#{pkg}.tar #{f}}}}
58
+ sh %{gzip pkg/#{pkg}.tar}
59
+ end
60
+
61
+ task :permissions do
62
+ sh %{chmod -R a+rx bin}
63
+ sh %{chmod -R a+r .}
64
+ require 'shellwords'
65
+ Dir.glob('test/**/*_test.rb') do |file|
66
+ next if file =~ %r{^test/haml/spec/}
67
+ sh %{chmod a+rx #{file}}
68
+ end
69
+ end
70
+
71
+ task :revision_file do
72
+ require 'lib/haml'
73
+
74
+ release = Rake.application.top_level_tasks.include?('release') || File.exist?(scope('EDGE_GEM_VERSION'))
75
+ if Haml.version[:rev] && !release
76
+ File.open(scope('REVISION'), 'w') { |f| f.puts Haml.version[:rev] }
77
+ elsif release
78
+ File.open(scope('REVISION'), 'w') { |f| f.puts "(release)" }
79
+ else
80
+ File.open(scope('REVISION'), 'w') { |f| f.puts "(unknown)" }
81
+ end
82
+ end
83
+
84
+ # We also need to get rid of this file after packaging.
85
+ at_exit { File.delete(scope('REVISION')) rescue nil }
86
+
87
+ desc "Install Haml as a gem. Use SUDO=1 to install with sudo."
88
+ task :install => [:package] do
89
+ gem = RUBY_PLATFORM =~ /java/ ? 'jgem' : 'gem'
90
+ sh %{#{'sudo ' if ENV["SUDO"]}#{gem} install --no-ri pkg/haml-#{get_version}}
91
+ end
92
+
93
+ desc "Release a new Haml package to Rubyforge."
94
+ task :release => [:check_release, :package] do
95
+ name = File.read(scope("VERSION_NAME")).strip
96
+ version = File.read(scope("VERSION")).strip
97
+ sh %{rubyforge add_release haml haml "#{name} (v#{version})" pkg/haml-#{version}.gem}
98
+ sh %{rubyforge add_file haml haml "#{name} (v#{version})" pkg/haml-#{version}.tar.gz}
99
+ sh %{gem push pkg/haml-#{version}.gem}
100
+ end
101
+
102
+
103
+ # Ensures that the VERSION file has been updated for a new release.
104
+ task :check_release do
105
+ version = File.read(scope("VERSION")).strip
106
+ raise "There have been changes since current version (#{version})" if changed_since?(version)
107
+ raise "VERSION_NAME must not be 'Bleeding Edge'" if File.read(scope("VERSION_NAME")) == "Bleeding Edge"
108
+ end
109
+
110
+ # Reads a password from the command line.
111
+ #
112
+ # @param name [String] The prompt to use to read the password
113
+ def read_password(prompt)
114
+ require 'readline'
115
+ system "stty -echo"
116
+ Readline.readline("#{prompt}: ").strip
117
+ ensure
118
+ system "stty echo"
119
+ puts
120
+ end
121
+
122
+ # Returns whether or not the repository, or specific files,
123
+ # has/have changed since a given revision.
124
+ #
125
+ # @param rev [String] The revision to check against
126
+ # @param files [Array<String>] The files to check.
127
+ # If this is empty, checks the entire repository
128
+ def changed_since?(rev, *files)
129
+ IO.popen("git diff --exit-code #{rev} #{files.join(' ')}") {}
130
+ return !$?.success?
131
+ end
132
+
133
+ task :submodules do
134
+ if File.exist?(File.dirname(__FILE__) + "/.git")
135
+ sh %{git submodule sync}
136
+ sh %{git submodule update --init --recursive}
137
+ end
138
+ end
139
+
140
+ task :release_edge do
141
+ ensure_git_cleanup do
142
+ puts "#{'=' * 50} Running rake release_edge"
143
+
144
+ sh %{git checkout master}
145
+ sh %{git reset --hard origin/master}
146
+ sh %{rake package}
147
+ version = get_version
148
+ sh %{rubyforge add_release haml haml "Bleeding Edge (v#{version})" pkg/haml-#{version}.gem}
149
+ sh %{gem push pkg/haml-#{version}.gem}
150
+ end
151
+ end
152
+
153
+ # Get the version string. If this is being installed from Git,
154
+ # this includes the proper prerelease version.
155
+ def get_version
156
+ written_version = File.read(scope('VERSION').strip)
157
+ return written_version unless File.exist?(scope('.git'))
158
+
159
+ # Get the current master branch version
160
+ version = written_version.split('.')
161
+ version.map! {|n| n =~ /^[0-9]+$/ ? n.to_i : n}
162
+ return written_version unless version.size == 5 && version[3] == "alpha" # prerelease
163
+
164
+ return written_version if (commit_count = `git log --pretty=oneline --first-parent stable.. | wc -l`).empty?
165
+ version[4] = commit_count.strip
166
+ version.join('.')
167
+ end
168
+
169
+ task :watch_for_update do
170
+ sh %{ruby extra/update_watch.rb}
171
+ end
172
+
173
+ # ----- Documentation -----
174
+
175
+ task :rdoc do
176
+ puts '=' * 100, <<END, '=' * 100
177
+ Haml uses the YARD documentation system (http://github.com/lsegal/yard).
178
+ Install the yard gem and then run "rake doc".
179
+ END
180
+ end
181
+
182
+ begin
183
+ require 'yard'
184
+
185
+ namespace :doc do
186
+ task :sass do
187
+ require 'sass'
188
+ Dir[scope("yard/default/**/*.sass")].each do |sass|
189
+ File.open(sass.gsub(/sass$/, 'css'), 'w') do |f|
190
+ f.write(Sass::Engine.new(File.read(sass)).render)
191
+ end
192
+ end
193
+ end
194
+
195
+ desc "List all undocumented methods and classes."
196
+ task :undocumented do
197
+ opts = ENV["YARD_OPTS"] || ""
198
+ ENV["YARD_OPTS"] = opts.dup + <<OPTS
199
+ --list --query "
200
+ object.docstring.blank? &&
201
+ !(object.type == :method && object.is_alias?)"
202
+ OPTS
203
+ Rake::Task['yard'].execute
204
+ end
205
+ end
206
+
207
+ YARD::Rake::YardocTask.new do |t|
208
+ t.files = FileList.new(scope('lib/**/*.rb')) do |list|
209
+ list.exclude('lib/haml/template/patch.rb')
210
+ list.exclude('lib/haml/template/plugin.rb')
211
+ list.exclude('lib/haml/railtie.rb')
212
+ list.exclude('lib/haml/helpers/action_view_mods.rb')
213
+ list.exclude('lib/haml/helpers/xss_mods.rb')
214
+ end.to_a
215
+ t.options << '--incremental' if Rake.application.top_level_tasks.include?('redoc')
216
+ t.options += FileList.new(scope('yard/*.rb')).to_a.map {|f| ['-e', f]}.flatten
217
+ files = FileList.new(scope('doc-src/*')).to_a.sort_by {|s| s.size} + %w[MIT-LICENSE VERSION]
218
+ t.options << '--files' << files.join(',')
219
+ t.options << '--template-path' << scope('yard')
220
+ t.options << '--title' << ENV["YARD_TITLE"] if ENV["YARD_TITLE"]
221
+
222
+ t.before = lambda do
223
+ if ENV["YARD_OPTS"]
224
+ require 'shellwords'
225
+ t.options.concat(Shellwords.shellwords(ENV["YARD_OPTS"]))
226
+ end
227
+ end
228
+ end
229
+ Rake::Task['yard'].prerequisites.insert(0, 'doc:sass')
230
+ Rake::Task['yard'].instance_variable_set('@comment', nil)
231
+
232
+ desc "Generate Documentation"
233
+ task :doc => :yard
234
+ task :redoc => :yard
235
+ rescue LoadError
236
+ desc "Generate Documentation"
237
+ task :doc => :rdoc
238
+ task :yard => :rdoc
239
+ end
240
+
241
+ task :pages do
242
+ puts "#{'=' * 50} Running rake pages"
243
+ ensure_git_cleanup do
244
+ sh %{git checkout haml-pages}
245
+ sh %{git reset --hard origin/haml-pages}
246
+
247
+ Dir.chdir("/var/www/haml-pages") do
248
+ sh %{git fetch origin}
249
+
250
+ sh %{git checkout stable}
251
+ sh %{git reset --hard origin/stable}
252
+
253
+ sh %{git checkout haml-pages}
254
+ sh %{git reset --hard origin/haml-pages}
255
+ sh %{rake build --trace}
256
+ sh %{mkdir -p tmp}
257
+ sh %{touch tmp/restart.txt}
258
+ end
259
+ end
260
+ end
261
+
262
+ # ----- Coverage -----
263
+
264
+ begin
265
+ require 'rcov/rcovtask'
266
+
267
+ Rcov::RcovTask.new do |t|
268
+ t.test_files = FileList[scope('test/**/*_test.rb')]
269
+ t.rcov_opts << '-x' << '"^\/"'
270
+ if ENV['NON_NATIVE']
271
+ t.rcov_opts << "--no-rcovrt"
272
+ end
273
+ t.verbose = true
274
+ end
275
+ rescue LoadError; end
276
+
277
+ # ----- Profiling -----
278
+
279
+ begin
280
+ require 'ruby-prof'
281
+
282
+ desc <<END
283
+ Run a profile of haml.
284
+ TIMES=n sets the number of runs. Defaults to 1000.
285
+ FILE=str sets the file to profile. Defaults to 'standard'
286
+ OUTPUT=str sets the ruby-prof output format.
287
+ Can be Flat, CallInfo, or Graph. Defaults to Flat. Defaults to Flat.
288
+ END
289
+ task :profile do
290
+ times = (ENV['TIMES'] || '1000').to_i
291
+ file = ENV['FILE']
292
+
293
+ require 'lib/haml'
294
+
295
+ file = File.read(scope("test/haml/templates/#{file || 'standard'}.haml"))
296
+ obj = Object.new
297
+ Haml::Engine.new(file).def_method(obj, :render)
298
+ result = RubyProf.profile { times.times { obj.render } }
299
+
300
+ RubyProf.const_get("#{(ENV['OUTPUT'] || 'Flat').capitalize}Printer").new(result).print
301
+ end
302
+ rescue LoadError; end
303
+
304
+ # ----- Testing Multiple Rails Versions -----
305
+
306
+ rails_versions = [
307
+ "v3.1.0",
308
+ "v3.0.10",
309
+ "v2.3.14",
310
+ "v2.2.3",
311
+ "v2.1.2",
312
+ ]
313
+ rails_versions << "v2.0.5" if RUBY_VERSION =~ /^1\.8/
314
+
315
+ def test_rails_version(version)
316
+ Dir.chdir "test/rails" do
317
+ sh %{git checkout #{version}}
318
+ end
319
+ puts "Testing Rails #{version}"
320
+ Rake::Task['test'].reenable
321
+ Rake::Task['test'].execute
322
+ end
323
+
324
+ def gemfiles
325
+ @gemfiles ||=
326
+ begin
327
+ raise 'Must install bundler to run Rails compatibility tests' if `which bundle`.empty?
328
+ Dir[File.dirname(__FILE__) + '/test/gemfiles/Gemfile.*'].
329
+ reject {|f| f =~ /\.lock$/}.
330
+ reject {|f| RUBY_VERSION !~ /^1\.8/ && f =~ /Gemfile\.rails-2\.[0-2]/}
331
+ end
332
+ end
333
+
334
+ def with_each_gemfile
335
+ old_env = ENV['BUNDLE_GEMFILE']
336
+ gemfiles.each do |gemfile|
337
+ puts "Using gemfile: #{gemfile}"
338
+ ENV['BUNDLE_GEMFILE'] = gemfile
339
+ yield
340
+ end
341
+ ensure
342
+ ENV['BUNDLE_GEMFILE'] = old_env
343
+ end
344
+
345
+ namespace :test do
346
+ namespace :bundles do
347
+ desc "Install all dependencies necessary to test Haml."
348
+ task :install do
349
+ with_each_gemfile {sh "bundle install"}
350
+ end
351
+
352
+ desc "Update all dependencies for testing Haml."
353
+ task :update do
354
+ with_each_gemfile {sh "bundle update"}
355
+ end
356
+ end
357
+
358
+ desc "Test all supported versions of rails. This takes a while."
359
+ task :rails_compatibility => 'test:bundles:install' do
360
+ `rm -rf test/rails`
361
+ `rm -rf test/plugins`
362
+ with_each_gemfile {sh "bundle exec rake test"}
363
+ end
364
+ end
365
+
366
+ # ----- Handling Updates -----
367
+
368
+ def email_on_error
369
+ yield
370
+ rescue Exception => e
371
+ IO.popen("sendmail nex342@gmail.com", "w") do |sm|
372
+ sm << "From: nex3@nex-3.com\n" <<
373
+ "To: nex342@gmail.com\n" <<
374
+ "Subject: Exception when running rake #{Rake.application.top_level_tasks.join(', ')}\n" <<
375
+ e.message << "\n\n" <<
376
+ e.backtrace.join("\n")
377
+ end
378
+ ensure
379
+ raise e if e
380
+ end
381
+
382
+ def ensure_git_cleanup
383
+ email_on_error {yield}
384
+ ensure
385
+ sh %{git reset --hard HEAD}
386
+ sh %{git clean -xdf}
387
+ sh %{git checkout master}
388
+ end
389
+
390
+ task :handle_update do
391
+ email_on_error do
392
+ unless ENV["REF"] =~ %r{^refs/heads/(master|stable|haml-pages)$}
393
+ puts "#{'=' * 20} Ignoring rake handle_update REF=#{ENV["REF"].inspect}"
394
+ next
395
+ end
396
+ branch = $1
397
+
398
+ puts
399
+ puts
400
+ puts '=' * 150
401
+ puts "Running rake handle_update REF=#{ENV["REF"].inspect}"
402
+
403
+ sh %{git fetch origin}
404
+ sh %{git checkout stable}
405
+ sh %{git reset --hard origin/stable}
406
+ sh %{git checkout master}
407
+ sh %{git reset --hard origin/master}
408
+
409
+ case branch
410
+ when "master"
411
+ sh %{rake release_edge --trace}
412
+ when "stable", "haml-pages"
413
+ sh %{rake pages --trace}
414
+ end
415
+
416
+ puts 'Done running handle_update'
417
+ puts '=' * 150
418
+ end
419
+ end