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
@@ -1,66 +0,0 @@
1
- %style
2
- - width = 5 + 17
3
- :sass
4
- p
5
- :border
6
- :style dotted
7
- :width #{width}px
8
- :color #ff00ff
9
- h1
10
- :font-weight normal
11
-
12
- :test
13
- This
14
- Should
15
- Not
16
- Print
17
-
18
- %p
19
- :javascript
20
- function newline(str) {
21
- return "\n" + str;
22
- }
23
-
24
- :plain
25
- This
26
- Is
27
- Plain
28
- Text
29
- %strong right?
30
- \#{not interpolated}
31
- \\#{1 + 2}
32
- \\\#{also not}
33
- \\
34
-
35
- - last = "noitalo"
36
- %p
37
- %pre
38
- :preserve
39
- This pre is pretty deeply
40
- nested.
41
- Does #{"interp" + last.reverse} work?
42
- :preserve
43
- This one is, too.
44
- Nested, that is.
45
-
46
- - num = 10
47
- %ul
48
- :erb
49
- <% num.times do |c| %>
50
- <li><%= (c+97).chr %></li>
51
- <% end %>
52
- <% res = 178 %>
53
-
54
- .res= res
55
-
56
- = "Text!"
57
-
58
- - var = "Hello"
59
- :ruby
60
- printf "%s, World!\n", var
61
- print "How are you doing today?\n"
62
-
63
- :escaped
64
- <div class="foo">
65
- <p>I think &mdash; or do I?</p>
66
- </div>
@@ -1,10 +0,0 @@
1
- %h1 Partial layout used with for block:
2
- - if Haml::Util.ap_geq?("3.2.0.alpha1")
3
- = render :layout => 'layout_for_partial' do
4
- %p Some content within a layout
5
- - elsif Haml::Util.ap_geq_3?
6
- = render :layout => 'layout_for_partial.haml' do
7
- %p Some content within a layout
8
- - else
9
- - render :layout => 'layout_for_partial.haml' do
10
- %p Some content within a layout
@@ -1,300 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require File.dirname(__FILE__) + '/../test_helper'
3
- require 'pathname'
4
-
5
- class UtilTest < Test::Unit::TestCase
6
- include Haml::Util
7
-
8
- class Dumpable
9
- attr_reader :arr
10
- def initialize; @arr = []; end
11
- def _before_dump; @arr << :before; end
12
- def _after_dump; @arr << :after; end
13
- def _around_dump
14
- @arr << :around_before
15
- yield
16
- @arr << :around_after
17
- end
18
- def _after_load; @arr << :loaded; end
19
- end
20
-
21
- def test_scope
22
- assert(File.exist?(scope("Rakefile")))
23
- end
24
-
25
- def test_to_hash
26
- assert_equal({
27
- :foo => 1,
28
- :bar => 2,
29
- :baz => 3
30
- }, to_hash([[:foo, 1], [:bar, 2], [:baz, 3]]))
31
- end
32
-
33
- def test_map_keys
34
- assert_equal({
35
- "foo" => 1,
36
- "bar" => 2,
37
- "baz" => 3
38
- }, map_keys({:foo => 1, :bar => 2, :baz => 3}) {|k| k.to_s})
39
- end
40
-
41
- def test_map_vals
42
- assert_equal({
43
- :foo => "1",
44
- :bar => "2",
45
- :baz => "3"
46
- }, map_vals({:foo => 1, :bar => 2, :baz => 3}) {|k| k.to_s})
47
- end
48
-
49
- def test_map_hash
50
- assert_equal({
51
- "foo" => "1",
52
- "bar" => "2",
53
- "baz" => "3"
54
- }, map_hash({:foo => 1, :bar => 2, :baz => 3}) {|k, v| [k.to_s, v.to_s]})
55
- end
56
-
57
- def test_powerset
58
- return unless Set[Set[]] == Set[Set[]] # There's a bug in Ruby 1.8.6 that breaks nested set equality
59
- assert_equal([[].to_set].to_set,
60
- powerset([]))
61
- assert_equal([[].to_set, [1].to_set].to_set,
62
- powerset([1]))
63
- assert_equal([[].to_set, [1].to_set, [2].to_set, [1, 2].to_set].to_set,
64
- powerset([1, 2]))
65
- assert_equal([[].to_set, [1].to_set, [2].to_set, [3].to_set,
66
- [1, 2].to_set, [2, 3].to_set, [1, 3].to_set, [1, 2, 3].to_set].to_set,
67
- powerset([1, 2, 3]))
68
- end
69
-
70
- def test_restrict
71
- assert_equal(0.5, restrict(0.5, 0..1))
72
- assert_equal(1, restrict(2, 0..1))
73
- assert_equal(1.3, restrict(2, 0..1.3))
74
- assert_equal(0, restrict(-1, 0..1))
75
- end
76
-
77
- def test_merge_adjacent_strings
78
- assert_equal(["foo bar baz", :bang, "biz bop", 12],
79
- merge_adjacent_strings(["foo ", "bar ", "baz", :bang, "biz", " bop", 12]))
80
- str = "foo"
81
- assert_equal(["foo foo foo", :bang, "foo foo", 12],
82
- merge_adjacent_strings([str, " ", str, " ", str, :bang, str, " ", str, 12]))
83
- end
84
-
85
- def test_intersperse
86
- assert_equal(["foo", " ", "bar", " ", "baz"],
87
- intersperse(%w[foo bar baz], " "))
88
- assert_equal([], intersperse([], " "))
89
- end
90
-
91
- def test_substitute
92
- assert_equal(["foo", "bar", "baz", 3, 4],
93
- substitute([1, 2, 3, 4], [1, 2], ["foo", "bar", "baz"]))
94
- assert_equal([1, "foo", "bar", "baz", 4],
95
- substitute([1, 2, 3, 4], [2, 3], ["foo", "bar", "baz"]))
96
- assert_equal([1, 2, "foo", "bar", "baz"],
97
- substitute([1, 2, 3, 4], [3, 4], ["foo", "bar", "baz"]))
98
-
99
- assert_equal([1, "foo", "bar", "baz", 2, 3, 4],
100
- substitute([1, 2, 2, 2, 3, 4], [2, 2], ["foo", "bar", "baz"]))
101
- end
102
-
103
- def test_strip_string_array
104
- assert_equal(["foo ", " bar ", " baz"],
105
- strip_string_array([" foo ", " bar ", " baz "]))
106
- assert_equal([:foo, " bar ", " baz"],
107
- strip_string_array([:foo, " bar ", " baz "]))
108
- assert_equal(["foo ", " bar ", :baz],
109
- strip_string_array([" foo ", " bar ", :baz]))
110
- end
111
-
112
- def test_paths
113
- assert_equal([[1, 3, 5], [2, 3, 5], [1, 4, 5], [2, 4, 5]],
114
- paths([[1, 2], [3, 4], [5]]))
115
- assert_equal([[]], paths([]))
116
- assert_equal([[1, 2, 3]], paths([[1], [2], [3]]))
117
- end
118
-
119
- def test_lcs
120
- assert_equal([1, 2, 3], lcs([1, 2, 3], [1, 2, 3]))
121
- assert_equal([], lcs([], [1, 2, 3]))
122
- assert_equal([], lcs([1, 2, 3], []))
123
- assert_equal([1, 2, 3], lcs([5, 1, 4, 2, 3, 17], [0, 0, 1, 2, 6, 3]))
124
-
125
- assert_equal([1], lcs([1, 2, 3, 4], [4, 3, 2, 1]))
126
- assert_equal([1, 2], lcs([1, 2, 3, 4], [3, 4, 1, 2]))
127
- end
128
-
129
- def test_lcs_with_block
130
- assert_equal(["1", "2", "3"],
131
- lcs([1, 4, 2, 5, 3], [1, 2, 3]) {|a, b| a == b && a.to_s})
132
- assert_equal([-4, 2, 8],
133
- lcs([-5, 3, 2, 8], [-4, 1, 8]) {|a, b| (a - b).abs <= 1 && [a, b].max})
134
- end
135
-
136
- def test_silence_warnings
137
- old_stderr, $stderr = $stderr, StringIO.new
138
- warn "Out"
139
- assert_equal("Out\n", $stderr.string)
140
- silence_warnings {warn "In"}
141
- assert_equal("Out\n", $stderr.string)
142
- ensure
143
- $stderr = old_stderr
144
- end
145
-
146
- def test_haml_warn
147
- assert_warning("Foo!") {haml_warn "Foo!"}
148
- end
149
-
150
- def test_silence_haml_warnings
151
- old_stderr, $stderr = $stderr, StringIO.new
152
- silence_haml_warnings {warn "Out"}
153
- assert_equal("Out\n", $stderr.string)
154
- silence_haml_warnings {haml_warn "In"}
155
- assert_equal("Out\n", $stderr.string)
156
- ensure
157
- $stderr = old_stderr
158
- end
159
-
160
- def test_has
161
- assert(has?(:instance_method, String, :chomp!))
162
- assert(has?(:private_instance_method, Haml::Engine, :set_locals))
163
- end
164
-
165
- def test_enum_with_index
166
- assert_equal(%w[foo0 bar1 baz2],
167
- enum_with_index(%w[foo bar baz]).map {|s, i| "#{s}#{i}"})
168
- end
169
-
170
- def test_enum_cons
171
- assert_equal(%w[foobar barbaz],
172
- enum_cons(%w[foo bar baz], 2).map {|s1, s2| "#{s1}#{s2}"})
173
- end
174
-
175
- def test_ord
176
- assert_equal(102, ord("f"))
177
- assert_equal(98, ord("bar"))
178
- end
179
-
180
- def test_flatten
181
- assert_equal([1, 2, 3], flatten([1, 2, 3], 0))
182
- assert_equal([1, 2, 3], flatten([1, 2, 3], 1))
183
- assert_equal([1, 2, 3], flatten([1, 2, 3], 2))
184
-
185
- assert_equal([[1, 2], 3], flatten([[1, 2], 3], 0))
186
- assert_equal([1, 2, 3], flatten([[1, 2], 3], 1))
187
- assert_equal([1, 2, 3], flatten([[1, 2], 3], 2))
188
-
189
- assert_equal([[[1], 2], [3], 4], flatten([[[1], 2], [3], 4], 0))
190
- assert_equal([[1], 2, 3, 4], flatten([[[1], 2], [3], 4], 1))
191
- assert_equal([1, 2, 3, 4], flatten([[[1], 2], [3], 4], 2))
192
- end
193
-
194
- def test_set_hash
195
- assert(set_hash(Set[1, 2, 3]) == set_hash(Set[3, 2, 1]))
196
- assert(set_hash(Set[1, 2, 3]) == set_hash(Set[1, 2, 3]))
197
-
198
- s1 = Set[]
199
- s1 << 1
200
- s1 << 2
201
- s1 << 3
202
- s2 = Set[]
203
- s2 << 3
204
- s2 << 2
205
- s2 << 1
206
- assert(set_hash(s1) == set_hash(s2))
207
- end
208
-
209
- def test_set_eql
210
- assert(set_eql?(Set[1, 2, 3], Set[3, 2, 1]))
211
- assert(set_eql?(Set[1, 2, 3], Set[1, 2, 3]))
212
-
213
- s1 = Set[]
214
- s1 << 1
215
- s1 << 2
216
- s1 << 3
217
- s2 = Set[]
218
- s2 << 3
219
- s2 << 2
220
- s2 << 1
221
- assert(set_eql?(s1, s2))
222
- end
223
-
224
- def test_caller_info
225
- assert_equal(["/tmp/foo.rb", 12, "fizzle"], caller_info("/tmp/foo.rb:12: in `fizzle'"))
226
- assert_equal(["/tmp/foo.rb", 12, nil], caller_info("/tmp/foo.rb:12"))
227
- assert_equal(["(haml)", 12, "blah"], caller_info("(haml):12: in `blah'"))
228
- assert_equal(["", 12, "boop"], caller_info(":12: in `boop'"))
229
- assert_equal(["/tmp/foo.rb", -12, "fizzle"], caller_info("/tmp/foo.rb:-12: in `fizzle'"))
230
- assert_equal(["/tmp/foo.rb", 12, "fizzle"], caller_info("/tmp/foo.rb:12: in `fizzle {}'"))
231
- end
232
-
233
- def test_version_gt
234
- assert_version_gt("2.0.0", "1.0.0")
235
- assert_version_gt("1.1.0", "1.0.0")
236
- assert_version_gt("1.0.1", "1.0.0")
237
- assert_version_gt("1.0.0", "1.0.0.rc")
238
- assert_version_gt("1.0.0.1", "1.0.0.rc")
239
- assert_version_gt("1.0.0.rc", "0.9.9")
240
- assert_version_gt("1.0.0.beta", "1.0.0.alpha")
241
-
242
- assert_version_eq("1.0.0", "1.0.0")
243
- assert_version_eq("1.0.0", "1.0.0.0")
244
- end
245
-
246
- def assert_version_gt(v1, v2)
247
- #assert(version_gt(v1, v2), "Expected #{v1} > #{v2}")
248
- assert(!version_gt(v2, v1), "Expected #{v2} < #{v1}")
249
- end
250
-
251
- def assert_version_eq(v1, v2)
252
- assert(!version_gt(v1, v2), "Expected #{v1} = #{v2}")
253
- assert(!version_gt(v2, v1), "Expected #{v2} = #{v1}")
254
- end
255
-
256
- def test_dump_and_load
257
- obj = Dumpable.new
258
- data = dump(obj)
259
- assert_equal([:before, :around_before, :around_after, :after], obj.arr)
260
- obj2 = load(data)
261
- assert_equal([:before, :around_before, :loaded], obj2.arr)
262
- end
263
-
264
- class FooBar
265
- def foo
266
- Haml::Util.abstract(self)
267
- end
268
- end
269
-
270
- def test_abstract
271
- assert_raise_message(NotImplementedError,
272
- "UtilTest::FooBar must implement #foo") {FooBar.new.foo}
273
- end
274
-
275
- def test_def_static_method
276
- klass = Class.new
277
- def_static_method(klass, :static_method, [:arg1, :arg2],
278
- :sarg1, :sarg2, <<RUBY)
279
- s = "Always " + arg1
280
- s << " <% if sarg1 %>and<% else %>but never<% end %> " << arg2
281
-
282
- <% if sarg2 %>
283
- s << "."
284
- <% end %>
285
- RUBY
286
- c = klass.new
287
- assert_equal("Always brush your teeth and comb your hair.",
288
- c.send(static_method_name(:static_method, true, true),
289
- "brush your teeth", "comb your hair"))
290
- assert_equal("Always brush your teeth and comb your hair",
291
- c.send(static_method_name(:static_method, true, false),
292
- "brush your teeth", "comb your hair"))
293
- assert_equal("Always brush your teeth but never play with fire.",
294
- c.send(static_method_name(:static_method, false, true),
295
- "brush your teeth", "play with fire"))
296
- assert_equal("Always brush your teeth but never play with fire",
297
- c.send(static_method_name(:static_method, false, false),
298
- "brush your teeth", "play with fire"))
299
- end
300
- end
@@ -1,42 +0,0 @@
1
- # allows testing with edge Rails by creating a test/rails symlink
2
- linked_rails = File.dirname(__FILE__) + '/rails'
3
-
4
- if File.exists?(linked_rails) && !$:.include?(linked_rails + '/activesupport/lib')
5
- puts "[ using linked Rails ]"
6
- $:.unshift linked_rails + '/activesupport/lib'
7
- $:.unshift linked_rails + '/actionpack/lib'
8
- $:.unshift linked_rails + '/railties/lib'
9
- end
10
- require 'rubygems'
11
- require 'action_pack'
12
- require 'action_controller'
13
- require 'action_view'
14
-
15
- if ActionPack::VERSION::MAJOR >= 3
16
- # Necessary for Rails 3
17
- require 'rails'
18
- else
19
- # Necessary for Rails 2.3.*
20
- require 'initializer'
21
- end
22
-
23
- if defined?(Rails::Application) # Rails 3
24
- class TestApp < Rails::Application
25
- config.root = File.join(File.dirname(__FILE__), "../..")
26
- end
27
- Rails.application = TestApp
28
- elsif defined?(RAILS_ROOT)
29
- RAILS_ROOT.replace(File.join(File.dirname(__FILE__), "../.."))
30
- else
31
- RAILS_ROOT = File.join(File.dirname(__FILE__), "../..")
32
- end
33
-
34
- ActionController::Base.logger = Logger.new(nil)
35
-
36
- # Load plugins from test/plugins.
37
- # This will only work with very basic plugins,
38
- # since we don't want to load the entirety of Rails.
39
- Dir[File.dirname(__FILE__) + '/plugins/*'].each do |plugin|
40
- $: << plugin + '/lib'
41
- eval(File.read(plugin + '/init.rb'))
42
- end
@@ -1,3 +0,0 @@
1
- Contributions are welcomed. Please see the following sites for guidelines:
2
-
3
- http://sass-lang.com/development.html#contributing
@@ -1,20 +0,0 @@
1
- Copyright (c) 2006-2009 Hampton Catlin, Nathan Weizenbaum, and Chris Eppstein
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.
@@ -1,201 +0,0 @@
1
- # Sass
2
-
3
- **Sass makes CSS fun again**. Sass is an extension of CSS3,
4
- adding nested rules, variables, mixins, selector inheritance, and more.
5
- It's translated to well-formatted, standard CSS
6
- using the command line tool or a web-framework plugin.
7
-
8
- Sass has two syntaxes. The new main syntax (as of Sass 3)
9
- is known as "SCSS" (for "Sassy CSS"),
10
- and is a superset of CSS3's syntax.
11
- This means that every valid CSS3 stylesheet is valid SCSS as well.
12
- SCSS files use the extension `.scss`.
13
-
14
- The second, older syntax is known as the indented syntax (or just "Sass").
15
- Inspired by Haml's terseness, it's intended for people
16
- who prefer conciseness over similarity to CSS.
17
- Instead of brackets and semicolons,
18
- it uses the indentation of lines to specify blocks.
19
- Although no longer the primary syntax,
20
- the indented syntax will continue to be supported.
21
- Files in the indented syntax use the extension `.sass`.
22
-
23
- ## Using
24
-
25
- Sass can be used from the command line
26
- or as part of a web framework.
27
- The first step is to install the gem:
28
-
29
- gem install sass
30
-
31
- After you convert some CSS to Sass, you can run
32
-
33
- sass style.scss
34
-
35
- to compile it back to CSS.
36
- For more information on these commands, check out
37
-
38
- sass --help
39
-
40
- To install Sass in Rails 2,
41
- just add `config.gem "sass"` to `config/environment.rb`.
42
- In Rails 3, add `gem "sass"` to your Gemfile instead.
43
- `.sass` or `.scss` files should be placed in `public/stylesheets/sass`,
44
- where they'll be automatically compiled
45
- to corresponding CSS files in `public/stylesheets` when needed
46
- (the Sass template directory is customizable...
47
- see [the Sass reference](http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#template_location-option) for details).
48
-
49
- Sass can also be used with any Rack-enabled web framework.
50
- To do so, just add
51
-
52
- require 'sass/plugin/rack'
53
- use Sass::Plugin::Rack
54
-
55
- to `config.ru`.
56
- Then any Sass files in `public/stylesheets/sass`
57
- will be compiled CSS files in `public/stylesheets` on every request.
58
-
59
- To use Sass programatically,
60
- check out the [YARD documentation](http://sass-lang.com/docs/yardoc/).
61
-
62
- ## Formatting
63
-
64
- Sass is an extension of CSS
65
- that adds power and elegance to the basic language.
66
- It allows you to use [variables][vars], [nested rules][nested],
67
- [mixins][mixins], [inline imports][imports],
68
- and more, all with a fully CSS-compatible syntax.
69
- Sass helps keep large stylesheets well-organized,
70
- and get small stylesheets up and running quickly,
71
- particularly with the help of
72
- [the Compass style library](http://compass-style.org).
73
-
74
- [vars]: http://beta.sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#variables_
75
- [nested]: http://beta.sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#nested_rules_
76
- [mixins]: http://beta.sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#mixins
77
- [imports]: http://beta.sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#import
78
-
79
- Sass has two syntaxes.
80
- The one presented here, known as "SCSS" (for "Sassy CSS"),
81
- is fully CSS-compatible.
82
- The other (older) syntax, known as the indented syntax or just "Sass",
83
- is whitespace-sensitive and indentation-based.
84
- For more information, see the [reference documentation][syntax].
85
-
86
- [syntax]: http://beta.sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#syntax
87
-
88
- To run the following examples and see the CSS they produce,
89
- put them in a file called `test.scss` and run `sass test.scss`.
90
-
91
- ### Nesting
92
-
93
- Sass avoids repetition by nesting selectors within one another.
94
- The same thing works for properties.
95
-
96
- table.hl {
97
- margin: 2em 0;
98
- td.ln { text-align: right; }
99
- }
100
-
101
- li {
102
- font: {
103
- family: serif;
104
- weight: bold;
105
- size: 1.2em;
106
- }
107
- }
108
-
109
- ### Variables
110
-
111
- Use the same color all over the place?
112
- Need to do some math with height and width and text size?
113
- Sass supports variables, math operations, and many useful functions.
114
-
115
- $blue: #3bbfce;
116
- $margin: 16px;
117
-
118
- .content_navigation {
119
- border-color: $blue;
120
- color: darken($blue, 10%);
121
- }
122
-
123
- .border {
124
- padding: $margin / 2;
125
- margin: $margin / 2;
126
- border-color: $blue;
127
- }
128
-
129
- ### Mixins
130
-
131
- Even more powerful than variables,
132
- mixins allow you to re-use whole chunks of CSS,
133
- properties or selectors.
134
- You can even give them arguments.
135
-
136
- @mixin table-scaffolding {
137
- th {
138
- text-align: center;
139
- font-weight: bold;
140
- }
141
- td, th { padding: 2px; }
142
- }
143
-
144
- @mixin left($dist) {
145
- float: left;
146
- margin-left: $dist;
147
- }
148
-
149
- #data {
150
- @include left(10px);
151
- @include table-scaffolding;
152
- }
153
-
154
- A comprehensive list of features is available
155
- in the [Sass reference](http://beta.sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html).
156
-
157
- ## Executables
158
-
159
- The Sass gem includes several executables that are useful
160
- for dealing with Sass from the command line.
161
-
162
- ### `sass`
163
-
164
- The `sass` executable transforms a source Sass file into CSS.
165
- See `sass --help` for further information and options.
166
-
167
- ### `sass-convert`
168
-
169
- The `sass-convert` executable converts between CSS, Sass, and SCSS.
170
- When converting from CSS to Sass or SCSS,
171
- nesting is applied where appropriate.
172
- See `sass-convert --help` for further information and options.
173
-
174
- ## Authors
175
-
176
- Sass was envisioned by [Hampton Catlin](http://hamptoncatlin.com) (hcatlin).
177
- However, Hampton doesn't even know his way around the code anymore and now
178
- occasionally consults on the language issues. Hampton lives in Jacksonville,
179
- Florida and is the lead mobile developer for Wikimedia.
180
-
181
- [Nathan Weizenbaum](http://nex-3.com) is the primary developer and architect of
182
- Sass. His hard work has kept the project alive by endlessly answering forum
183
- posts, fixing bugs, refactoring, finding speed improvements, writing
184
- documentation, implementing new features, and getting Hampton coffee (a fitting
185
- task for a boy-genius). Nathan lives in Seattle, Washington and while not being
186
- a student at the University of Washington or working at an internship, he
187
- consults for Unspace Interactive.
188
-
189
- [Chris Eppstein](http://acts-as-architect.blogspot.com) is a core contributor to
190
- Sass and the creator of Compass, the first Sass-based framework. Chris focuses
191
- on making Sass more powerful, easy to use, and on ways to speed its adoption
192
- through the web development community. Chris lives in San Jose, California with
193
- his wife and daughter. He is the Software Architect for
194
- [Caring.com](http://caring.com), a website devoted to the 34 Million caregivers
195
- whose parents are sick or elderly, that uses Haml and Sass.
196
-
197
- If you use this software, you must pay Hampton a compliment. And
198
- buy Nathan some jelly beans. Maybe pet a kitten. Yeah. Pet that kitty.
199
-
200
- Beyond that, the implementation is licensed under the MIT License.
201
- Okay, fine, I guess that means compliments aren't __required__.