haml_ejs 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -0,0 +1,82 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../test_helper'
3
+ require File.dirname(__FILE__) + '/test_helper'
4
+
5
+ class ImporterTest < Test::Unit::TestCase
6
+
7
+ class FruitImporter < Sass::Importers::Base
8
+ def find(name, context = nil)
9
+ if name =~ %r{fruits/(\w+)(\.s[ac]ss)?}
10
+ fruit = $1
11
+ color = case $1
12
+ when "apple"
13
+ "red"
14
+ when "orange"
15
+ "orange"
16
+ else
17
+ "blue"
18
+ end
19
+ contents = %Q{
20
+ $#{fruit}-color: #{color} !default;
21
+ @mixin #{fruit} {
22
+ color: $#{fruit}-color;
23
+ }
24
+ }
25
+ Sass::Engine.new(contents, :filename => name, :syntax => :scss, :importer => self)
26
+ end
27
+ end
28
+
29
+ def key(name, context)
30
+ [self.class.name, name]
31
+ end
32
+ end
33
+
34
+ # This class proves that you can override the extension scheme for importers
35
+ class ReversedExtImporter < Sass::Importers::Filesystem
36
+ def extensions
37
+ {"sscs" => :scss, "ssas" => :sass}
38
+ end
39
+ end
40
+
41
+ def test_can_resolve_generated_imports
42
+ scss_file = %Q{
43
+ $pear-color: green;
44
+ @import "fruits/apple"; @import "fruits/orange"; @import "fruits/pear";
45
+ .apple { @include apple; }
46
+ .orange { @include orange; }
47
+ .pear { @include pear; }
48
+ }
49
+ css_file = <<CSS
50
+ .apple { color: red; }
51
+
52
+ .orange { color: orange; }
53
+
54
+ .pear { color: green; }
55
+ CSS
56
+ options = {:style => :compact, :load_paths => [FruitImporter.new], :syntax => :scss}
57
+ assert_equal css_file, Sass::Engine.new(scss_file, options).render
58
+ end
59
+
60
+ def test_extension_overrides
61
+ FileUtils.mkdir_p(absolutize("tmp"))
62
+ open(absolutize("tmp/foo.ssas"), "w") {|f| f.write(".foo\n reversed: true\n")}
63
+ open(absolutize("tmp/bar.sscs"), "w") {|f| f.write(".bar {reversed: true}\n")}
64
+ scss_file = %Q{
65
+ @import "foo", "bar";
66
+ @import "foo.ssas", "bar.sscs";
67
+ }
68
+ css_file = <<CSS
69
+ .foo { reversed: true; }
70
+
71
+ .bar { reversed: true; }
72
+
73
+ .foo { reversed: true; }
74
+
75
+ .bar { reversed: true; }
76
+ CSS
77
+ options = {:style => :compact, :load_paths => [ReversedExtImporter.new(absolutize("tmp"))], :syntax => :scss}
78
+ assert_equal css_file, Sass::Engine.new(scss_file, options).render
79
+ ensure
80
+ FileUtils.rm_rf(absolutize("tmp"))
81
+ end
82
+ end
@@ -0,0 +1,653 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../test_helper'
3
+
4
+ begin
5
+ require 'sass/less'
6
+
7
+ class LessConversionTest < Test::Unit::TestCase
8
+ def test_variable_declarations
9
+ assert_renders <<SCSS, <<LESS
10
+ $var1: 2px 3px;
11
+ $var2: $var1 + 7px;
12
+
13
+ $var3: fizz;
14
+
15
+ foo {
16
+ prop: $var1 $var2 $var3; }
17
+ SCSS
18
+ @var1: 2px 3px;
19
+ @var2: @var1 + 7px;
20
+
21
+ @var3: fizz;
22
+
23
+ foo {prop: @var1 @var2 @var3}
24
+ LESS
25
+ end
26
+
27
+ def test_nested_variable_declarations
28
+ assert_renders <<SCSS, <<LESS
29
+ .foo {
30
+ $var: 2px;
31
+ prop: $var; }
32
+ SCSS
33
+ .foo {
34
+ @var: 2px;
35
+ prop: @var; }
36
+ LESS
37
+ end
38
+
39
+ def test_import
40
+ path = relative_path_to(File.dirname(__FILE__) + "/templates/importee.less")
41
+ resolved_path = relative_path_to(File.dirname(__FILE__) + "/templates/importee")
42
+ assert_renders <<SCSS, <<LESS
43
+ @import "#{resolved_path}";
44
+ @import "#{resolved_path}";
45
+
46
+ @import "#{resolved_path}";
47
+ @import "#{resolved_path}";
48
+ @import "#{resolved_path}";
49
+ SCSS
50
+ @import url(#{path});
51
+ @import url("#{path}");
52
+
53
+ @import url('#{path}');
54
+ @import '#{path}';
55
+ @import "#{path}";
56
+ LESS
57
+ end
58
+
59
+ def test_mixins_found_through_import
60
+ path = relative_path_to(File.dirname(__FILE__) + "/templates/importee.less")
61
+ resolved_path = relative_path_to(File.dirname(__FILE__) + "/templates/importee")
62
+ assert_renders <<SCSS, <<LESS
63
+ @import "#{resolved_path}";
64
+
65
+ .baz {
66
+ @extend .foo;
67
+ @include bar; }
68
+ SCSS
69
+ @import "#{path}";
70
+
71
+ .baz {.foo; .bar;}
72
+ LESS
73
+ end
74
+
75
+ # Selectors
76
+
77
+ def test_element_selector
78
+ assert_renders <<SCSS, <<LESS
79
+ foo {
80
+ a: b; }
81
+ SCSS
82
+ foo {a: b}
83
+ LESS
84
+ end
85
+
86
+ def test_class_selector
87
+ assert_renders <<SCSS, <<LESS
88
+ .foo {
89
+ a: b; }
90
+ SCSS
91
+ .foo {a: b}
92
+ LESS
93
+ end
94
+
95
+ def test_id_selector
96
+ assert_renders <<SCSS, <<LESS
97
+ #foo {
98
+ a: b; }
99
+ SCSS
100
+ #foo {a: b}
101
+ LESS
102
+ end
103
+
104
+ def test_pseudoclass_selector
105
+ assert_renders <<SCSS, <<LESS
106
+ :foo {
107
+ a: b; }
108
+ SCSS
109
+ :foo {a: b}
110
+ LESS
111
+ end
112
+
113
+ def test_pseudoelement_selector
114
+ assert_renders <<SCSS, <<LESS
115
+ ::foo {
116
+ a: b; }
117
+ SCSS
118
+ ::foo {a: b}
119
+ LESS
120
+ end
121
+
122
+ def test_comma_selector
123
+ assert_renders <<SCSS, <<LESS
124
+ foo, .bar .baz, :bang {
125
+ a: b; }
126
+ SCSS
127
+ foo, .bar .baz, :bang {a: b}
128
+ LESS
129
+ end
130
+
131
+ def test_nested_comma_selector
132
+ assert_renders <<SCSS, <<LESS
133
+ foo bar, .baz {
134
+ .bang, &:bip bap {
135
+ a: b; } }
136
+ SCSS
137
+ foo bar, .baz {
138
+ .bang, :bip bap {a: b} }
139
+ LESS
140
+ end
141
+
142
+ def test_simple_selector_sequence
143
+ assert_renders <<SCSS, <<LESS
144
+ a.foo#bar[attr=val] {
145
+ a: b; }
146
+ SCSS
147
+ a.foo#bar[attr=val] {a: b}
148
+ LESS
149
+ end
150
+
151
+ def test_descendant_selector
152
+ assert_renders <<SCSS, <<LESS
153
+ .foo .bar {
154
+ a: b; }
155
+ SCSS
156
+ .foo .bar {a: b}
157
+ LESS
158
+ end
159
+
160
+ def test_child_selector
161
+ assert_renders <<SCSS, <<LESS
162
+ .foo > .bar {
163
+ a: b; }
164
+ SCSS
165
+ .foo > .bar {a: b}
166
+ LESS
167
+ end
168
+
169
+ def test_adjacent_selector
170
+ assert_renders <<SCSS, <<LESS
171
+ .foo + .bar {
172
+ a: b; }
173
+ SCSS
174
+ .foo + .bar {a: b}
175
+ LESS
176
+ end
177
+
178
+ def test_pseudoclass_in_sequence
179
+ assert_renders <<SCSS, <<LESS
180
+ .foo:bar {
181
+ a: b; }
182
+ SCSS
183
+ .foo:bar {a: b}
184
+ LESS
185
+ end
186
+
187
+ def test_pseudoelement_in_sequence
188
+ assert_renders <<SCSS, <<LESS
189
+ .foo::bar {
190
+ a: b; }
191
+ SCSS
192
+ .foo::bar {a: b}
193
+ LESS
194
+ end
195
+
196
+ # Properties
197
+
198
+ def test_space_separated_props
199
+ assert_renders <<SCSS, <<LESS
200
+ foo {
201
+ a: foo bar baz; }
202
+ SCSS
203
+ foo {a: foo bar baz}
204
+ LESS
205
+ end
206
+
207
+ def test_comma_separated_props
208
+ assert_renders <<SCSS, <<LESS
209
+ foo {
210
+ a: foo, bar, baz; }
211
+ SCSS
212
+ foo {a: foo, bar, baz}
213
+ LESS
214
+ end
215
+
216
+ def test_numbers
217
+ assert_renders <<SCSS, <<LESS
218
+ foo {
219
+ a: 1 2.3 -8 5px 3%; }
220
+ SCSS
221
+ foo {a: 1 2.3 -8 5px 3%}
222
+ LESS
223
+ end
224
+
225
+ def test_colors
226
+ assert_renders <<SCSS, <<LESS
227
+ foo {
228
+ a: red #abcdef blue; }
229
+ SCSS
230
+ foo {a: #f00 #abcdef blue}
231
+ LESS
232
+ end
233
+
234
+ def test_strings
235
+ assert_renders <<SCSS, <<LESS
236
+ foo {
237
+ a: "foo @var bar" "baz bang" "quote'quote" 'quote"quote'; }
238
+ SCSS
239
+ foo {a: "foo @var bar" 'baz bang' "quote'quote" 'quote"quote'}
240
+ LESS
241
+ end
242
+
243
+ def test_slash
244
+ assert_renders <<SCSS, <<LESS
245
+ foo {
246
+ a: small/8px 7em/8px;
247
+ b: 8/4;
248
+ c: (8 / 4); }
249
+ SCSS
250
+ foo {
251
+ a: small/8px 7em/8px;
252
+ b: 8/4;
253
+ c: 8 / 4; }
254
+ LESS
255
+ end
256
+
257
+ def test_url
258
+ assert_renders <<SCSS, <<LESS
259
+ foo {
260
+ a: url("http://foobar.com/fizzle.html?foo=bar&bar=baz");
261
+ b: url("http://foobar.com/fizzle.html?foo=bar&bar=baz");
262
+ c: url("http://foobar.com/fizzle.html?foo=bar&bar=baz"); }
263
+ SCSS
264
+ foo {
265
+ a: url(http://foobar.com/fizzle.html?foo=bar&bar=baz);
266
+ b: url("http://foobar.com/fizzle.html?foo=bar&bar=baz");
267
+ c: url('http://foobar.com/fizzle.html?foo=bar&bar=baz'); }
268
+ LESS
269
+ end
270
+
271
+ def test_functions
272
+ assert_renders <<SCSS, <<LESS
273
+ foo {
274
+ a: baz(12px) rgba(80, 70 120, 0.76);
275
+ b: faz(1px + 3px) bang($var, #aaaaaa * 3); }
276
+ SCSS
277
+ foo {
278
+ a: baz(12px) rgba(80, 70 120, 0.76);
279
+ b: faz(1px + 3px) bang(@var, #aaa * 3); }
280
+ LESS
281
+ end
282
+
283
+ def test_alpha_function
284
+ assert_renders <<SCSS, <<LESS
285
+ foo {
286
+ a: alpha(opacity=2px);
287
+ b: alpha(opacity = $var); }
288
+ SCSS
289
+ foo {
290
+ a: alpha(opacity=2px);
291
+ b: alpha(opacity=@var); }
292
+ LESS
293
+ end
294
+
295
+ def test_variables
296
+ assert_renders <<SCSS, <<LESS
297
+ foo {
298
+ a: $var1 $var-foo; }
299
+ SCSS
300
+ foo {a: @var1 @var-foo}
301
+ LESS
302
+ end
303
+
304
+ def test_operators
305
+ assert_renders <<SCSS, <<LESS
306
+ foo {
307
+ a: 1px + 2px;
308
+ b: #bbaa88 - #aa1122;
309
+ c: 5 * 3;
310
+ d: (8 / 4); }
311
+ SCSS
312
+ foo {
313
+ a: 1px + 2px;
314
+ b: #ba8 - #a12;
315
+ c: 5 * 3;
316
+ d: 8 / 4; }
317
+ LESS
318
+ end
319
+
320
+ def test_operator_precedence
321
+ assert_renders <<SCSS, <<LESS
322
+ foo {
323
+ a: 1 + 2 * 3 + 4;
324
+ b: 1 * 2 + 3 * 4;
325
+ c: 1 - 2 + 2 - 4;
326
+ d: 1 + 2 - 3 + 4;
327
+ e: 1 / 2 - 3 / 4;
328
+ f: 1 - 2 / 3 - 4;
329
+ g: 1 / 2 * 3 / 4;
330
+ h: (1 + 2) * (3 + 4);
331
+ i: 1 * (2 + 3) * 4;
332
+ j: 1 - (2 + 2) - 4;
333
+ k: 1 + 2 - (3 + 4);
334
+ l: 1 / (2 - 3) / 4;
335
+ m: (1 - 2) / (3 - 4);
336
+ n: 1 / (2 * 3) / 4; }
337
+ SCSS
338
+ foo {
339
+ a: 1 + 2 * 3 + 4;
340
+ b: 1 * 2 + 3 * 4;
341
+ c: 1 - 2 + 2 - 4;
342
+ d: 1 + 2 - 3 + 4;
343
+ e: 1 / 2 - 3 / 4;
344
+ f: 1 - 2 / 3 - 4;
345
+ g: 1 / 2 * 3 / 4;
346
+ h: (1 + 2) * (3 + 4);
347
+ i: 1 * (2 + 3) * 4;
348
+ j: 1 - (2 + 2) - 4;
349
+ k: 1 + 2 - (3 + 4);
350
+ l: 1 / (2 - 3) / 4;
351
+ m: (1 - 2) / (3 - 4);
352
+ n: 1 / (2 * 3) / 4; }
353
+ LESS
354
+ end
355
+
356
+ def test_operators_with_parens
357
+ assert_renders <<SCSS, <<LESS
358
+ foo {
359
+ a: 1px + 2px * 3;
360
+ b: (1px - 2px) / 3; }
361
+ SCSS
362
+ foo {
363
+ a: 1px + (2px * 3);
364
+ b: (1px - (2px)) / 3; }
365
+ LESS
366
+ end
367
+
368
+ def test_unary_minus
369
+ assert_renders <<SCSS, <<LESS
370
+ foo {
371
+ a: 1px + -3px; }
372
+ SCSS
373
+ foo {a: 1px + (- 3px)}
374
+ LESS
375
+ end
376
+
377
+ # Nested Rules
378
+
379
+ def test_single_nested_rule
380
+ assert_renders <<SCSS, <<LESS
381
+ foo bar {
382
+ a: b; }
383
+ SCSS
384
+ foo {bar {a: b}}
385
+ LESS
386
+ end
387
+
388
+ def test_single_nested_rule_with_props
389
+ assert_renders <<SCSS, <<LESS
390
+ foo {
391
+ bar {
392
+ a: b; }
393
+ c: d;
394
+ e: f; }
395
+ SCSS
396
+ foo {
397
+ bar {a: b}
398
+ c: d;
399
+ e: f; }
400
+ LESS
401
+ end
402
+
403
+ def test_two_nested_rules
404
+ assert_renders <<SCSS, <<LESS
405
+ foo {
406
+ bar {
407
+ a: b; }
408
+ baz {
409
+ c: d; } }
410
+ SCSS
411
+ foo {
412
+ bar {a: b}
413
+ baz {c: d} }
414
+ LESS
415
+ end
416
+
417
+ def test_two_nested_rules_with_props
418
+ assert_renders <<SCSS, <<LESS
419
+ foo {
420
+ bar {
421
+ a: b; }
422
+ baz {
423
+ c: d; }
424
+ e: f;
425
+ g: h; }
426
+ SCSS
427
+ foo {
428
+ bar {a: b}
429
+ baz {c: d}
430
+ e: f;
431
+ g: h; }
432
+ LESS
433
+ end
434
+
435
+ def test_nested_rules_with_combinators
436
+ assert_renders <<SCSS, <<LESS
437
+ foo {
438
+ > bar {
439
+ a: b; }
440
+ + baz {
441
+ c: d; } }
442
+ SCSS
443
+ foo {
444
+ > bar {a: b}
445
+ + baz {c: d} }
446
+ LESS
447
+ end
448
+
449
+ def test_nested_pseudo_rules
450
+ assert_renders <<SCSS, <<LESS
451
+ foo {
452
+ &:bar {
453
+ a: b; }
454
+ &::baz {
455
+ c: d; } }
456
+ SCSS
457
+ foo {
458
+ :bar {a: b}
459
+ ::baz {c: d} }
460
+ LESS
461
+ end
462
+
463
+ # Mixins
464
+
465
+ def test_class_inheritance
466
+ assert_renders <<SCSS, <<LESS
467
+ .foo {
468
+ a: b; }
469
+
470
+ .bar {
471
+ @extend .foo; }
472
+ SCSS
473
+ .foo {a: b}
474
+ .bar {.foo;}
475
+ LESS
476
+ end
477
+
478
+ def test_multiple_class_inheritance
479
+ assert_renders <<SCSS, <<LESS
480
+ .foo {
481
+ a: b; }
482
+
483
+ .bar {
484
+ c: d; }
485
+
486
+ .baz {
487
+ @extend .foo;
488
+ @extend .bar; }
489
+ SCSS
490
+ .foo {a: b}
491
+ .bar {c: d}
492
+ .baz {.foo, .bar;}
493
+ LESS
494
+ end
495
+
496
+ def test_pseudoclass_inheritance
497
+ assert_renders <<SCSS, <<LESS
498
+ :foo {
499
+ a: b; }
500
+
501
+ :bar {
502
+ @extend :foo; }
503
+ SCSS
504
+ :foo {a: b}
505
+ :bar {:foo;}
506
+ LESS
507
+ end
508
+
509
+ def test_multiple_pseudoclass_inheritance
510
+ assert_renders <<SCSS, <<LESS
511
+ :foo:bar {
512
+ a: b; }
513
+
514
+ :baz {
515
+ @extend :foo:bar; }
516
+ SCSS
517
+ :foo:bar {a: b}
518
+ :baz {:foo:bar;}
519
+ LESS
520
+ end
521
+
522
+ def test_abstract_mixin
523
+ assert_renders <<SCSS, <<LESS
524
+ @mixin foo {
525
+ a: b; }
526
+
527
+ .bar {
528
+ @include foo; }
529
+ SCSS
530
+ .foo() {a: b}
531
+ .bar {.foo;}
532
+ LESS
533
+ end
534
+
535
+ def test_mixin_with_args
536
+ assert_renders <<SCSS, <<LESS
537
+ @mixin foo($a: 2px, $b: red) {
538
+ a: $a; }
539
+
540
+ .bar {
541
+ @include foo; }
542
+ SCSS
543
+ .foo(@a: 2px, @b: #f00) {a: @a}
544
+ .bar {.foo;}
545
+ LESS
546
+
547
+ assert_renders <<SCSS, <<LESS
548
+ @mixin foo($a: 2px + 3px, $b: red) {
549
+ a: $a; }
550
+
551
+ .bar {
552
+ @include foo(5px); }
553
+ SCSS
554
+ .foo(@a: 2px + 3px, @b: #f00) {a: @a}
555
+ .bar {.foo(5px);}
556
+ LESS
557
+ end
558
+
559
+ ## Disallowed Mixins
560
+
561
+ def test_nested_mixin
562
+ assert_warning(<<WARN) {assert_renders <<SCSS, <<LESS}
563
+ WARNING: Sass doesn't support mixing in selector sequences.
564
+ Replacing ".foo .bar" with "@extend .bar"
565
+ WARN
566
+ .foo .bar {
567
+ a: b; }
568
+
569
+ .bar {
570
+ // .foo .bar;
571
+ @extend .bar; }
572
+ SCSS
573
+ .foo .bar {a: b}
574
+ .bar {.foo .bar;}
575
+ LESS
576
+ end
577
+
578
+ def test_child_selector_mixin
579
+ assert_warning(<<WARN) {assert_renders <<SCSS, <<LESS}
580
+ WARNING: Sass doesn't support mixing in selector sequences.
581
+ Replacing "> .bar" with "@extend .bar"
582
+ WARN
583
+ .foo > .bar {
584
+ a: b; }
585
+
586
+ .bar {
587
+ // > .bar;
588
+ @extend .bar; }
589
+ SCSS
590
+ .foo > .bar {a: b}
591
+ .bar {> .bar;}
592
+ LESS
593
+ end
594
+
595
+ # Accessors
596
+
597
+ def test_property_accessor
598
+ assert_warning(<<WARN) {assert_renders <<SCSS, <<LESS}
599
+ WARNING: Sass doesn't support attribute accessors.
600
+ Ignoring .magic-box['content']
601
+ WARN
602
+ .magic-box {
603
+ content: "gold"; }
604
+
605
+ .foo {
606
+ content: /* .magic-box['content'] */; }
607
+ SCSS
608
+ .magic-box {content: "gold"}
609
+ .foo {content: .magic-box['content']}
610
+ LESS
611
+ end
612
+
613
+ def test_variable_accessor
614
+ assert_warning(<<WARN) {assert_renders <<SCSS, <<LESS}
615
+ WARNING: Sass doesn't support attribute accessors.
616
+ Ignoring .magic-box[@content]
617
+ WARN
618
+ .magic-box {
619
+ $content: "gold";
620
+ content: $content; }
621
+
622
+ .foo {
623
+ content: /* .magic-box[@content] */; }
624
+ SCSS
625
+ .magic-box {@content: "gold"; content: @content}
626
+ .foo {content: .magic-box[@content]}
627
+ LESS
628
+ end
629
+
630
+ private
631
+
632
+ def assert_renders(scss, less)
633
+ assert_equal(scss, Less::Engine.new(less).to_tree.to_sass_tree.to_scss)
634
+ end
635
+
636
+ # Necessary because Less can't import absolute files
637
+ def relative_path_to(file)
638
+ file = Pathname.new(file)
639
+ pwd = file.absolute? ? Dir.pwd : "."
640
+ file.relative_path_from(Pathname.new(pwd))
641
+ end
642
+ end
643
+
644
+ rescue LoadError => e
645
+ unless defined?(Gem)
646
+ begin
647
+ require 'rubygems'
648
+ retry
649
+ rescue Exception
650
+ end
651
+ end
652
+ puts "\nCouldn't require less, skipping some tests."
653
+ end