classiccms 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (369) hide show
  1. data/lib/classiccms/application.rb +2 -3
  2. data/lib/classiccms/cli.rb +6 -0
  3. data/lib/classiccms/scaffold/Gemfile +4 -0
  4. data/lib/classiccms/{mongoid.yml → scaffold/config/mongoid.yml} +3 -4
  5. data/lib/classiccms/scaffold/spec/models/article_spec.rb +8 -0
  6. data/lib/classiccms/scaffold/spec/spec_helper.rb +24 -0
  7. data/lib/classiccms/version.rb +1 -1
  8. data/spec/cli_spec.rb +8 -0
  9. data/vendor/bundle/gems/libv8-3.3.10.4-x86_64-darwin-11/lib/libv8/build/v8/libv8.a +0 -0
  10. data/vendor/bundle/gems/libv8-3.3.10.4-x86_64-darwin-11/lib/libv8/build/v8/libv8preparser.a +0 -0
  11. data/vendor/bundle/gems/libv8-3.3.10.4-x86_64-darwin-11/lib/libv8/v8/include/v8-debug.h +395 -0
  12. data/vendor/bundle/gems/libv8-3.3.10.4-x86_64-darwin-11/lib/libv8/v8/include/v8-preparser.h +117 -0
  13. data/vendor/bundle/gems/libv8-3.3.10.4-x86_64-darwin-11/lib/libv8/v8/include/v8-profiler.h +505 -0
  14. data/vendor/bundle/gems/libv8-3.3.10.4-x86_64-darwin-11/lib/libv8/v8/include/v8-testing.h +104 -0
  15. data/vendor/bundle/gems/libv8-3.3.10.4-x86_64-darwin-11/lib/libv8/v8/include/v8.h +4124 -0
  16. data/vendor/bundle/gems/libv8-3.3.10.4-x86_64-darwin-11/lib/libv8/v8/include/v8stdint.h +53 -0
  17. data/vendor/bundle/gems/libv8-3.3.10.4-x86_64-darwin-11/lib/libv8/version.rb +6 -0
  18. data/vendor/bundle/gems/libv8-3.3.10.4-x86_64-darwin-11/lib/libv8.rb +15 -0
  19. data/vendor/bundle/gems/sass-3.1.19/.yardopts +11 -0
  20. data/vendor/bundle/gems/sass-3.1.19/CONTRIBUTING +3 -0
  21. data/vendor/bundle/gems/sass-3.1.19/MIT-LICENSE +20 -0
  22. data/vendor/bundle/gems/sass-3.1.19/README.md +200 -0
  23. data/vendor/bundle/gems/sass-3.1.19/REVISION +1 -0
  24. data/vendor/bundle/gems/sass-3.1.19/Rakefile +339 -0
  25. data/vendor/bundle/gems/sass-3.1.19/VERSION +1 -0
  26. data/vendor/bundle/gems/sass-3.1.19/VERSION_NAME +1 -0
  27. data/vendor/bundle/gems/sass-3.1.19/bin/sass +8 -0
  28. data/vendor/bundle/gems/sass-3.1.19/bin/sass-convert +7 -0
  29. data/vendor/bundle/gems/sass-3.1.19/bin/scss +8 -0
  30. data/vendor/bundle/gems/sass-3.1.19/extra/update_watch.rb +13 -0
  31. data/vendor/bundle/gems/sass-3.1.19/init.rb +18 -0
  32. data/vendor/bundle/gems/sass-3.1.19/lib/sass/cache_stores/base.rb +86 -0
  33. data/vendor/bundle/gems/sass-3.1.19/lib/sass/cache_stores/chain.rb +33 -0
  34. data/vendor/bundle/gems/sass-3.1.19/lib/sass/cache_stores/filesystem.rb +61 -0
  35. data/vendor/bundle/gems/sass-3.1.19/lib/sass/cache_stores/memory.rb +47 -0
  36. data/vendor/bundle/gems/sass-3.1.19/lib/sass/cache_stores/null.rb +25 -0
  37. data/vendor/bundle/gems/sass-3.1.19/lib/sass/cache_stores.rb +15 -0
  38. data/vendor/bundle/gems/sass-3.1.19/lib/sass/callbacks.rb +66 -0
  39. data/vendor/bundle/gems/sass-3.1.19/lib/sass/css.rb +390 -0
  40. data/vendor/bundle/gems/sass-3.1.19/lib/sass/engine.rb +880 -0
  41. data/vendor/bundle/gems/sass-3.1.19/lib/sass/environment.rb +180 -0
  42. data/vendor/bundle/gems/sass-3.1.19/lib/sass/error.rb +201 -0
  43. data/vendor/bundle/gems/sass-3.1.19/lib/sass/exec.rb +682 -0
  44. data/vendor/bundle/gems/sass-3.1.19/lib/sass/importers/base.rb +139 -0
  45. data/vendor/bundle/gems/sass-3.1.19/lib/sass/importers/filesystem.rb +149 -0
  46. data/vendor/bundle/gems/sass-3.1.19/lib/sass/importers.rb +22 -0
  47. data/vendor/bundle/gems/sass-3.1.19/lib/sass/less.rb +382 -0
  48. data/vendor/bundle/gems/sass-3.1.19/lib/sass/logger/base.rb +32 -0
  49. data/vendor/bundle/gems/sass-3.1.19/lib/sass/logger/log_level.rb +49 -0
  50. data/vendor/bundle/gems/sass-3.1.19/lib/sass/logger.rb +15 -0
  51. data/vendor/bundle/gems/sass-3.1.19/lib/sass/plugin/compiler.rb +384 -0
  52. data/vendor/bundle/gems/sass-3.1.19/lib/sass/plugin/configuration.rb +123 -0
  53. data/vendor/bundle/gems/sass-3.1.19/lib/sass/plugin/generic.rb +15 -0
  54. data/vendor/bundle/gems/sass-3.1.19/lib/sass/plugin/merb.rb +48 -0
  55. data/vendor/bundle/gems/sass-3.1.19/lib/sass/plugin/rack.rb +60 -0
  56. data/vendor/bundle/gems/sass-3.1.19/lib/sass/plugin/rails.rb +47 -0
  57. data/vendor/bundle/gems/sass-3.1.19/lib/sass/plugin/staleness_checker.rb +183 -0
  58. data/vendor/bundle/gems/sass-3.1.19/lib/sass/plugin.rb +132 -0
  59. data/vendor/bundle/gems/sass-3.1.19/lib/sass/railtie.rb +9 -0
  60. data/vendor/bundle/gems/sass-3.1.19/lib/sass/repl.rb +57 -0
  61. data/vendor/bundle/gems/sass-3.1.19/lib/sass/root.rb +7 -0
  62. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script/bool.rb +18 -0
  63. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script/color.rb +475 -0
  64. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script/css_lexer.rb +29 -0
  65. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script/css_parser.rb +31 -0
  66. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script/funcall.rb +175 -0
  67. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script/functions.rb +1381 -0
  68. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script/interpolation.rb +79 -0
  69. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script/lexer.rb +337 -0
  70. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script/list.rb +84 -0
  71. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script/literal.rb +230 -0
  72. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script/node.rb +99 -0
  73. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script/number.rb +452 -0
  74. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script/operation.rb +107 -0
  75. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script/parser.rb +474 -0
  76. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script/string.rb +51 -0
  77. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script/string_interpolation.rb +103 -0
  78. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script/unary_operation.rb +64 -0
  79. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script/variable.rb +58 -0
  80. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script.rb +39 -0
  81. data/vendor/bundle/gems/sass-3.1.19/lib/sass/scss/css_parser.rb +46 -0
  82. data/vendor/bundle/gems/sass-3.1.19/lib/sass/scss/parser.rb +1055 -0
  83. data/vendor/bundle/gems/sass-3.1.19/lib/sass/scss/rx.rb +137 -0
  84. data/vendor/bundle/gems/sass-3.1.19/lib/sass/scss/sass_parser.rb +11 -0
  85. data/vendor/bundle/gems/sass-3.1.19/lib/sass/scss/script_lexer.rb +15 -0
  86. data/vendor/bundle/gems/sass-3.1.19/lib/sass/scss/script_parser.rb +25 -0
  87. data/vendor/bundle/gems/sass-3.1.19/lib/sass/scss/static_parser.rb +40 -0
  88. data/vendor/bundle/gems/sass-3.1.19/lib/sass/scss.rb +17 -0
  89. data/vendor/bundle/gems/sass-3.1.19/lib/sass/selector/abstract_sequence.rb +71 -0
  90. data/vendor/bundle/gems/sass-3.1.19/lib/sass/selector/comma_sequence.rb +86 -0
  91. data/vendor/bundle/gems/sass-3.1.19/lib/sass/selector/sequence.rb +296 -0
  92. data/vendor/bundle/gems/sass-3.1.19/lib/sass/selector/simple.rb +119 -0
  93. data/vendor/bundle/gems/sass-3.1.19/lib/sass/selector/simple_sequence.rb +154 -0
  94. data/vendor/bundle/gems/sass-3.1.19/lib/sass/selector.rb +373 -0
  95. data/vendor/bundle/gems/sass-3.1.19/lib/sass/shared.rb +76 -0
  96. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/charset_node.rb +22 -0
  97. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/comment_node.rb +90 -0
  98. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/debug_node.rb +18 -0
  99. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/directive_node.rb +28 -0
  100. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/each_node.rb +24 -0
  101. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/extend_node.rb +29 -0
  102. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/for_node.rb +36 -0
  103. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/function_node.rb +27 -0
  104. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/if_node.rb +52 -0
  105. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/import_node.rb +68 -0
  106. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/media_node.rb +32 -0
  107. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/mixin_def_node.rb +27 -0
  108. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/mixin_node.rb +32 -0
  109. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/node.rb +188 -0
  110. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/prop_node.rb +148 -0
  111. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/return_node.rb +18 -0
  112. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/root_node.rb +28 -0
  113. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/rule_node.rb +127 -0
  114. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/variable_node.rb +30 -0
  115. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/visitors/base.rb +75 -0
  116. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/visitors/check_nesting.rb +127 -0
  117. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/visitors/convert.rb +262 -0
  118. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/visitors/cssize.rb +206 -0
  119. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/visitors/deep_copy.rb +87 -0
  120. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/visitors/extend.rb +42 -0
  121. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/visitors/perform.rb +357 -0
  122. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/visitors/set_options.rb +97 -0
  123. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/visitors/to_css.rb +219 -0
  124. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/warn_node.rb +18 -0
  125. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/while_node.rb +18 -0
  126. data/vendor/bundle/gems/sass-3.1.19/lib/sass/util/multibyte_string_scanner.rb +134 -0
  127. data/vendor/bundle/gems/sass-3.1.19/lib/sass/util/subset_map.rb +101 -0
  128. data/vendor/bundle/gems/sass-3.1.19/lib/sass/util.rb +800 -0
  129. data/vendor/bundle/gems/sass-3.1.19/lib/sass/version.rb +112 -0
  130. data/vendor/bundle/gems/sass-3.1.19/lib/sass.rb +73 -0
  131. data/vendor/bundle/gems/sass-3.1.19/rails/init.rb +1 -0
  132. data/vendor/bundle/gems/sass-3.1.19/test/Gemfile +4 -0
  133. data/vendor/bundle/gems/sass-3.1.19/test/sass/cache_test.rb +89 -0
  134. data/vendor/bundle/gems/sass-3.1.19/test/sass/callbacks_test.rb +61 -0
  135. data/vendor/bundle/gems/sass-3.1.19/test/sass/conversion_test.rb +1245 -0
  136. data/vendor/bundle/gems/sass-3.1.19/test/sass/css2sass_test.rb +397 -0
  137. data/vendor/bundle/gems/sass-3.1.19/test/sass/data/hsl-rgb.txt +319 -0
  138. data/vendor/bundle/gems/sass-3.1.19/test/sass/engine_test.rb +2730 -0
  139. data/vendor/bundle/gems/sass-3.1.19/test/sass/extend_test.rb +1663 -0
  140. data/vendor/bundle/gems/sass-3.1.19/test/sass/fixtures/test_staleness_check_across_importers.css +1 -0
  141. data/vendor/bundle/gems/sass-3.1.19/test/sass/fixtures/test_staleness_check_across_importers.scss +1 -0
  142. data/vendor/bundle/gems/sass-3.1.19/test/sass/functions_test.rb +1047 -0
  143. data/vendor/bundle/gems/sass-3.1.19/test/sass/importer_test.rb +192 -0
  144. data/vendor/bundle/gems/sass-3.1.19/test/sass/less_conversion_test.rb +653 -0
  145. data/vendor/bundle/gems/sass-3.1.19/test/sass/logger_test.rb +58 -0
  146. data/vendor/bundle/gems/sass-3.1.19/test/sass/mock_importer.rb +49 -0
  147. data/vendor/bundle/gems/sass-3.1.19/test/sass/more_results/more1.css +9 -0
  148. data/vendor/bundle/gems/sass-3.1.19/test/sass/more_results/more1_with_line_comments.css +26 -0
  149. data/vendor/bundle/gems/sass-3.1.19/test/sass/more_results/more_import.css +29 -0
  150. data/vendor/bundle/gems/sass-3.1.19/test/sass/more_templates/_more_partial.sass +2 -0
  151. data/vendor/bundle/gems/sass-3.1.19/test/sass/more_templates/more1.sass +23 -0
  152. data/vendor/bundle/gems/sass-3.1.19/test/sass/more_templates/more_import.sass +11 -0
  153. data/vendor/bundle/gems/sass-3.1.19/test/sass/plugin_test.rb +496 -0
  154. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/alt.css +4 -0
  155. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/basic.css +9 -0
  156. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/compact.css +5 -0
  157. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/complex.css +86 -0
  158. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/compressed.css +1 -0
  159. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/expanded.css +19 -0
  160. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/if.css +3 -0
  161. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/import.css +31 -0
  162. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/import_charset.css +5 -0
  163. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/import_charset_1_8.css +5 -0
  164. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/import_charset_ibm866.css +5 -0
  165. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/line_numbers.css +49 -0
  166. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/mixins.css +95 -0
  167. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/multiline.css +24 -0
  168. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/nested.css +22 -0
  169. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/options.css +1 -0
  170. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/parent_ref.css +13 -0
  171. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/script.css +16 -0
  172. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/scss_import.css +31 -0
  173. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/scss_importee.css +2 -0
  174. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/subdir/nested_subdir/nested_subdir.css +1 -0
  175. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/subdir/subdir.css +3 -0
  176. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/units.css +11 -0
  177. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/warn.css +0 -0
  178. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/warn_imported.css +0 -0
  179. data/vendor/bundle/gems/sass-3.1.19/test/sass/script_conversion_test.rb +285 -0
  180. data/vendor/bundle/gems/sass-3.1.19/test/sass/script_test.rb +519 -0
  181. data/vendor/bundle/gems/sass-3.1.19/test/sass/scss/css_test.rb +975 -0
  182. data/vendor/bundle/gems/sass-3.1.19/test/sass/scss/rx_test.rb +156 -0
  183. data/vendor/bundle/gems/sass-3.1.19/test/sass/scss/scss_test.rb +1308 -0
  184. data/vendor/bundle/gems/sass-3.1.19/test/sass/scss/test_helper.rb +37 -0
  185. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/_double_import_loop2.sass +1 -0
  186. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/_imported_charset_ibm866.sass +4 -0
  187. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/_imported_charset_utf8.sass +4 -0
  188. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/_partial.sass +2 -0
  189. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/alt.sass +16 -0
  190. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/basic.sass +23 -0
  191. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/bork1.sass +2 -0
  192. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/bork2.sass +2 -0
  193. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/bork3.sass +2 -0
  194. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/bork4.sass +2 -0
  195. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/bork5.sass +3 -0
  196. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/compact.sass +17 -0
  197. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/complex.sass +305 -0
  198. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/compressed.sass +15 -0
  199. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/double_import_loop1.sass +1 -0
  200. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/expanded.sass +17 -0
  201. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/if.sass +11 -0
  202. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/import.sass +12 -0
  203. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/import_charset.sass +9 -0
  204. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/import_charset_1_8.sass +6 -0
  205. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/import_charset_ibm866.sass +11 -0
  206. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/importee.less +2 -0
  207. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/importee.sass +19 -0
  208. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/line_numbers.sass +13 -0
  209. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/mixin_bork.sass +5 -0
  210. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/mixins.sass +76 -0
  211. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/multiline.sass +20 -0
  212. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/nested.sass +25 -0
  213. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/nested_bork1.sass +2 -0
  214. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/nested_bork2.sass +2 -0
  215. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/nested_bork3.sass +2 -0
  216. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/nested_bork4.sass +2 -0
  217. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/nested_bork5.sass +2 -0
  218. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/nested_import.sass +2 -0
  219. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/nested_mixin_bork.sass +6 -0
  220. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/options.sass +2 -0
  221. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/parent_ref.sass +25 -0
  222. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/script.sass +101 -0
  223. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/scss_import.scss +11 -0
  224. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/scss_importee.scss +1 -0
  225. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/single_import_loop.sass +1 -0
  226. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/subdir/nested_subdir/_nested_partial.sass +2 -0
  227. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/subdir/nested_subdir/nested_subdir.sass +3 -0
  228. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/subdir/subdir.sass +6 -0
  229. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/units.sass +11 -0
  230. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/warn.sass +3 -0
  231. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/warn_imported.sass +4 -0
  232. data/vendor/bundle/gems/sass-3.1.19/test/sass/test_helper.rb +8 -0
  233. data/vendor/bundle/gems/sass-3.1.19/test/sass/util/multibyte_string_scanner_test.rb +147 -0
  234. data/vendor/bundle/gems/sass-3.1.19/test/sass/util/subset_map_test.rb +91 -0
  235. data/vendor/bundle/gems/sass-3.1.19/test/sass/util_test.rb +282 -0
  236. data/vendor/bundle/gems/sass-3.1.19/test/test_helper.rb +70 -0
  237. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/CHANGELOG.md +90 -0
  238. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/Gemfile +35 -0
  239. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/Guardfile +8 -0
  240. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/LICENSE +20 -0
  241. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/README.md +312 -0
  242. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/Rakefile +47 -0
  243. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/Vagrantfile +96 -0
  244. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/lib/listen/adapter.rb +167 -0
  245. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/lib/listen/adapters/darwin.rb +84 -0
  246. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/lib/listen/adapters/linux.rb +110 -0
  247. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/lib/listen/adapters/polling.rb +66 -0
  248. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/lib/listen/adapters/windows.rb +81 -0
  249. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/lib/listen/directory_record.rb +317 -0
  250. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/lib/listen/listener.rb +203 -0
  251. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/lib/listen/multi_listener.rb +121 -0
  252. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/lib/listen/turnstile.rb +28 -0
  253. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/lib/listen/version.rb +3 -0
  254. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/lib/listen.rb +38 -0
  255. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/listen.gemspec +26 -0
  256. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/spec/listen/adapter_spec.rb +142 -0
  257. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/spec/listen/adapters/darwin_spec.rb +31 -0
  258. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/spec/listen/adapters/linux_spec.rb +41 -0
  259. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/spec/listen/adapters/polling_spec.rb +68 -0
  260. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/spec/listen/adapters/windows_spec.rb +24 -0
  261. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/spec/listen/directory_record_spec.rb +1034 -0
  262. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/spec/listen/listener_spec.rb +155 -0
  263. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/spec/listen/multi_listener_spec.rb +156 -0
  264. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/spec/listen/turnstile_spec.rb +56 -0
  265. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/spec/listen_spec.rb +73 -0
  266. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/spec/spec_helper.rb +16 -0
  267. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/spec/support/adapter_helper.rb +716 -0
  268. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/spec/support/directory_record_helper.rb +55 -0
  269. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/spec/support/fixtures_helper.rb +29 -0
  270. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/spec/support/listeners_helper.rb +144 -0
  271. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/spec/support/platform_helper.rb +11 -0
  272. data/vendor/bundle/gems/therubyracer-0.10.1/.gitignore +13 -0
  273. data/vendor/bundle/gems/therubyracer-0.10.1/.gitmodules +3 -0
  274. data/vendor/bundle/gems/therubyracer-0.10.1/.travis.yml +9 -0
  275. data/vendor/bundle/gems/therubyracer-0.10.1/.yardopts +1 -0
  276. data/vendor/bundle/gems/therubyracer-0.10.1/Changelog.md +196 -0
  277. data/vendor/bundle/gems/therubyracer-0.10.1/Gemfile +1 -0
  278. data/vendor/bundle/gems/therubyracer-0.10.1/README.md +167 -0
  279. data/vendor/bundle/gems/therubyracer-0.10.1/Rakefile +23 -0
  280. data/vendor/bundle/gems/therubyracer-0.10.1/bin/therubyracer +11 -0
  281. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/Makefile +213 -0
  282. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/extconf.rb +26 -0
  283. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/gem_make.out +156 -0
  284. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/rr.cpp +189 -0
  285. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/rr.h +41 -0
  286. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8.cpp +48 -0
  287. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_array.cpp +48 -0
  288. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_array.h +8 -0
  289. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_callbacks.cpp +81 -0
  290. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_callbacks.h +8 -0
  291. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_context.cpp +92 -0
  292. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_context.h +6 -0
  293. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_date.cpp +34 -0
  294. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_date.h +6 -0
  295. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_debug.cpp +17 -0
  296. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_debug.h +6 -0
  297. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_exception.cpp +133 -0
  298. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_exception.h +11 -0
  299. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_external.cpp +70 -0
  300. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_external.h +8 -0
  301. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_function.cpp +69 -0
  302. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_function.h +11 -0
  303. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_handle.cpp +186 -0
  304. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_handle.h +48 -0
  305. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_locker.cpp +139 -0
  306. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_locker.h +6 -0
  307. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_message.cpp +67 -0
  308. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_message.h +10 -0
  309. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_object.cpp +122 -0
  310. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_object.h +10 -0
  311. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_script.cpp +36 -0
  312. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_script.h +8 -0
  313. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_string.cpp +52 -0
  314. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_string.h +9 -0
  315. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_template.cpp +344 -0
  316. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_template.h +8 -0
  317. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_try_catch.cpp +70 -0
  318. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_try_catch.h +5 -0
  319. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_v8.cpp +35 -0
  320. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_v8.h +6 -0
  321. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_value.cpp +175 -0
  322. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_value.h +10 -0
  323. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_weakref.cpp +61 -0
  324. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_weakref.h +29 -0
  325. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8/access.rb +87 -0
  326. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8/array.rb +17 -0
  327. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8/c/locker.rb +18 -0
  328. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8/cli.rb +133 -0
  329. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8/context.rb +111 -0
  330. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8/error.rb +130 -0
  331. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8/function.rb +44 -0
  332. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8/object.rb +69 -0
  333. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8/portal/caller.rb +37 -0
  334. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8/portal/constructor.rb +98 -0
  335. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8/portal/function.rb +63 -0
  336. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8/portal/interceptors.rb +152 -0
  337. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8/portal/proxies.rb +151 -0
  338. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8/portal/templates.rb +73 -0
  339. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8/portal.rb +86 -0
  340. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8/stack.rb +66 -0
  341. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8/tap.rb +9 -0
  342. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8/version.rb +3 -0
  343. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8.rb +23 -0
  344. data/vendor/bundle/gems/therubyracer-0.10.1/spec/ext/array_spec.rb +15 -0
  345. data/vendor/bundle/gems/therubyracer-0.10.1/spec/ext/cxt_spec.rb +57 -0
  346. data/vendor/bundle/gems/therubyracer-0.10.1/spec/ext/ext_spec_helper.rb +27 -0
  347. data/vendor/bundle/gems/therubyracer-0.10.1/spec/ext/func_spec.rb +64 -0
  348. data/vendor/bundle/gems/therubyracer-0.10.1/spec/ext/object_spec.rb +10 -0
  349. data/vendor/bundle/gems/therubyracer-0.10.1/spec/ext/string_spec.rb +11 -0
  350. data/vendor/bundle/gems/therubyracer-0.10.1/spec/ext/try_catch_spec.rb +60 -0
  351. data/vendor/bundle/gems/therubyracer-0.10.1/spec/redjs/.gitignore +1 -0
  352. data/vendor/bundle/gems/therubyracer-0.10.1/spec/redjs/README.txt +8 -0
  353. data/vendor/bundle/gems/therubyracer-0.10.1/spec/redjs/jsapi_spec.rb +922 -0
  354. data/vendor/bundle/gems/therubyracer-0.10.1/spec/redjs/loadme.js +1 -0
  355. data/vendor/bundle/gems/therubyracer-0.10.1/spec/redjs_helper.rb +3 -0
  356. data/vendor/bundle/gems/therubyracer-0.10.1/spec/spec_helper.rb +9 -0
  357. data/vendor/bundle/gems/therubyracer-0.10.1/spec/v8/error_spec.rb +131 -0
  358. data/vendor/bundle/gems/therubyracer-0.10.1/spec/v8/portal/proxies_spec.rb +106 -0
  359. data/vendor/bundle/gems/therubyracer-0.10.1/specmem/handle_memspec.rb +41 -0
  360. data/vendor/bundle/gems/therubyracer-0.10.1/specmem/object_memspec.rb +14 -0
  361. data/vendor/bundle/gems/therubyracer-0.10.1/specmem/proxies_memspec.rb +49 -0
  362. data/vendor/bundle/gems/therubyracer-0.10.1/specmem/spec_helper.rb +24 -0
  363. data/vendor/bundle/gems/therubyracer-0.10.1/specthread/spec_helper.rb +2 -0
  364. data/vendor/bundle/gems/therubyracer-0.10.1/specthread/threading_spec.rb +13 -0
  365. data/vendor/bundle/gems/therubyracer-0.10.1/thefrontside.png +0 -0
  366. data/vendor/bundle/gems/therubyracer-0.10.1/therubyracer.gemspec +29 -0
  367. data/vendor/bundle/specifications/libv8-3.3.10.4-x86_64-darwin-11.gemspec +33 -0
  368. data/vendor/bundle/specifications/sass-3.1.19.gemspec +35 -0
  369. metadata +365 -3
@@ -0,0 +1,1245 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../test_helper'
3
+
4
+ class ConversionTest < Test::Unit::TestCase
5
+ def test_basic
6
+ assert_renders <<SASS, <<SCSS
7
+ foo bar
8
+ baz: bang
9
+ bip: bop
10
+ SASS
11
+ foo bar {
12
+ baz: bang;
13
+ bip: bop; }
14
+ SCSS
15
+ assert_renders <<SASS, <<SCSS, :old => true
16
+ foo bar
17
+ :baz bang
18
+ :bip bop
19
+ SASS
20
+ foo bar {
21
+ baz: bang;
22
+ bip: bop; }
23
+ SCSS
24
+ end
25
+
26
+ def test_empty_selector
27
+ assert_renders "foo bar", "foo bar {}"
28
+ end
29
+
30
+ def test_empty_directive
31
+ assert_scss_to_sass "@media screen", "@media screen {}"
32
+ assert_scss_to_scss "@media screen {}"
33
+ end
34
+
35
+ def test_empty_control_directive
36
+ assert_renders "@if false", "@if false {}"
37
+ end
38
+
39
+ def test_nesting
40
+ assert_renders <<SASS, <<SCSS
41
+ foo bar
42
+ baz bang
43
+ baz: bang
44
+ bip: bop
45
+ blat: boo
46
+ SASS
47
+ foo bar {
48
+ baz bang {
49
+ baz: bang;
50
+ bip: bop; }
51
+ blat: boo; }
52
+ SCSS
53
+ end
54
+
55
+ def test_nesting_with_parent_ref
56
+ assert_renders <<SASS, <<SCSS
57
+ foo bar
58
+ &:hover
59
+ baz: bang
60
+ SASS
61
+ foo bar {
62
+ &:hover {
63
+ baz: bang; } }
64
+ SCSS
65
+ end
66
+
67
+ def test_selector_interpolation
68
+ assert_renders <<SASS, <<SCSS
69
+ foo \#{$bar + "baz"}.bip
70
+ baz: bang
71
+ SASS
72
+ foo \#{$bar + "baz"}.bip {
73
+ baz: bang; }
74
+ SCSS
75
+ end
76
+
77
+ def test_multiline_selector_with_commas
78
+ assert_renders <<SASS, <<SCSS
79
+ foo bar,
80
+ baz bang
81
+ baz: bang
82
+ SASS
83
+ foo bar,
84
+ baz bang {
85
+ baz: bang; }
86
+ SCSS
87
+
88
+ assert_renders <<SASS, <<SCSS
89
+ blat
90
+ foo bar,
91
+ baz bang
92
+ baz: bang
93
+ SASS
94
+ blat {
95
+ foo bar,
96
+ baz bang {
97
+ baz: bang; } }
98
+ SCSS
99
+ end
100
+
101
+ def test_multiline_selector_without_commas
102
+ assert_scss_to_sass <<SASS, <<SCSS
103
+ foo bar baz bang
104
+ baz: bang
105
+ SASS
106
+ foo bar
107
+ baz bang {
108
+ baz: bang; }
109
+ SCSS
110
+
111
+ assert_scss_to_scss <<SCSS
112
+ foo bar
113
+ baz bang {
114
+ baz: bang; }
115
+ SCSS
116
+ end
117
+
118
+ def test_escaped_selector
119
+ assert_renders <<SASS, <<SCSS
120
+ foo bar
121
+ \\:hover
122
+ baz: bang
123
+ SASS
124
+ foo bar {
125
+ :hover {
126
+ baz: bang; } }
127
+ SCSS
128
+ end
129
+
130
+ def test_property_name_interpolation
131
+ assert_renders <<SASS, <<SCSS
132
+ foo bar
133
+ baz\#{$bang}bip\#{$bop}: 12
134
+ SASS
135
+ foo bar {
136
+ baz\#{$bang}bip\#{$bop}: 12; }
137
+ SCSS
138
+ end
139
+
140
+ def test_property_name_interpolation
141
+ assert_renders <<SASS, <<SCSS
142
+ foo bar
143
+ baz\#{$bang}bip\#{$bop}: 12
144
+ SASS
145
+ foo bar {
146
+ baz\#{$bang}bip\#{$bop}: 12; }
147
+ SCSS
148
+ end
149
+
150
+ def test_property_value_interpolation
151
+ assert_renders <<SASS, <<SCSS
152
+ foo bar
153
+ baz: 12 \#{$bang} bip \#{"bop"} blat
154
+ SASS
155
+ foo bar {
156
+ baz: 12 \#{$bang} bip \#{"bop"} blat; }
157
+ SCSS
158
+ end
159
+
160
+ def test_dynamic_properties
161
+ assert_renders <<SASS, <<SCSS
162
+ foo bar
163
+ baz: 12 $bang "bip"
164
+ SASS
165
+ foo bar {
166
+ baz: 12 $bang "bip"; }
167
+ SCSS
168
+ end
169
+
170
+ def test_dynamic_properties_with_old
171
+ assert_renders <<SASS, <<SCSS, :old => true
172
+ foo bar
173
+ :baz 12 $bang "bip"
174
+ SASS
175
+ foo bar {
176
+ baz: 12 $bang "bip"; }
177
+ SCSS
178
+ end
179
+
180
+ def test_multiline_properties
181
+ assert_scss_to_sass <<SASS, <<SCSS
182
+ foo bar
183
+ baz: bip bam boon
184
+ SASS
185
+ foo bar {
186
+ baz:
187
+ bip
188
+ bam
189
+ boon; }
190
+ SCSS
191
+
192
+ assert_scss_to_scss <<OUT, <<IN
193
+ foo bar {
194
+ baz: bip bam boon; }
195
+ OUT
196
+ foo bar {
197
+ baz:
198
+ bip
199
+ bam
200
+ boon; }
201
+ IN
202
+ end
203
+
204
+ def test_multiline_dynamic_properties
205
+ assert_scss_to_sass <<SASS, <<SCSS
206
+ foo bar
207
+ baz: $bip "bam" 12px
208
+ SASS
209
+ foo bar {
210
+ baz:
211
+ $bip
212
+ "bam"
213
+ 12px; }
214
+ SCSS
215
+
216
+ assert_scss_to_scss <<OUT, <<IN
217
+ foo bar {
218
+ baz: $bip "bam" 12px; }
219
+ OUT
220
+ foo bar {
221
+ baz:
222
+ $bip
223
+ "bam"
224
+ 12px; }
225
+ IN
226
+ end
227
+
228
+ def test_silent_comments
229
+ assert_renders <<SASS, <<SCSS
230
+ // foo
231
+
232
+ // bar
233
+
234
+ // baz
235
+
236
+ foo bar
237
+ a: b
238
+ SASS
239
+ // foo
240
+
241
+ // bar
242
+
243
+ // baz
244
+
245
+ foo bar {
246
+ a: b; }
247
+ SCSS
248
+
249
+ assert_renders <<SASS, <<SCSS
250
+ // foo
251
+ // bar
252
+ // baz
253
+ // bang
254
+
255
+ foo bar
256
+ a: b
257
+ SASS
258
+ // foo
259
+ // bar
260
+ // baz
261
+ // bang
262
+
263
+ foo bar {
264
+ a: b; }
265
+ SCSS
266
+
267
+ assert_sass_to_scss <<SCSS, <<SASS
268
+ // foo
269
+ // bar
270
+ // baz
271
+ // bang
272
+
273
+ foo bar {
274
+ a: b; }
275
+ SCSS
276
+ // foo
277
+ // bar
278
+ // baz
279
+ // bang
280
+
281
+ foo bar
282
+ a: b
283
+ SASS
284
+ end
285
+
286
+ def test_nested_silent_comments
287
+ assert_renders <<SASS, <<SCSS
288
+ foo
289
+ bar: baz
290
+ // bip bop
291
+ // beep boop
292
+ bang: bizz
293
+ // bubble bubble
294
+ // toil trouble
295
+ SASS
296
+ foo {
297
+ bar: baz;
298
+ // bip bop
299
+ // beep boop
300
+ bang: bizz;
301
+ // bubble bubble
302
+ // toil trouble
303
+ }
304
+ SCSS
305
+
306
+ assert_sass_to_scss <<SCSS, <<SASS
307
+ foo {
308
+ bar: baz;
309
+ // bip bop
310
+ // beep boop
311
+ // bap blimp
312
+ bang: bizz;
313
+ // bubble bubble
314
+ // toil trouble
315
+ // gorp
316
+ }
317
+ SCSS
318
+ foo
319
+ bar: baz
320
+ // bip bop
321
+ beep boop
322
+ bap blimp
323
+ bang: bizz
324
+ // bubble bubble
325
+ toil trouble
326
+ gorp
327
+ SASS
328
+ end
329
+
330
+ def test_loud_comments
331
+ assert_renders <<SASS, <<SCSS
332
+ /* foo
333
+
334
+ /* bar
335
+
336
+ /* baz
337
+
338
+ foo bar
339
+ a: b
340
+ SASS
341
+ /* foo */
342
+
343
+ /* bar */
344
+
345
+ /* baz */
346
+
347
+ foo bar {
348
+ a: b; }
349
+ SCSS
350
+
351
+ assert_scss_to_sass <<SASS, <<SCSS
352
+ /* foo
353
+ * bar
354
+ * baz
355
+ * bang
356
+
357
+ foo bar
358
+ a: b
359
+ SASS
360
+ /* foo
361
+ bar
362
+ baz
363
+ bang */
364
+
365
+ foo bar {
366
+ a: b; }
367
+ SCSS
368
+
369
+ assert_scss_to_scss <<SCSS
370
+ /* foo
371
+ bar
372
+ baz
373
+ bang */
374
+
375
+ foo bar {
376
+ a: b; }
377
+ SCSS
378
+
379
+ assert_renders <<SASS, <<SCSS
380
+ /* foo
381
+ * bar
382
+ * baz
383
+ * bang
384
+
385
+ foo bar
386
+ a: b
387
+ SASS
388
+ /* foo
389
+ * bar
390
+ * baz
391
+ * bang */
392
+
393
+ foo bar {
394
+ a: b; }
395
+ SCSS
396
+ end
397
+
398
+ def test_nested_loud_comments
399
+ assert_renders <<SASS, <<SCSS
400
+ foo
401
+ bar: baz
402
+ /* bip bop
403
+ * beep boop
404
+ bang: bizz
405
+ /* bubble bubble
406
+ * toil trouble
407
+ SASS
408
+ foo {
409
+ bar: baz;
410
+ /* bip bop
411
+ * beep boop */
412
+ bang: bizz;
413
+ /* bubble bubble
414
+ * toil trouble */ }
415
+ SCSS
416
+
417
+ assert_sass_to_scss <<SCSS, <<SASS
418
+ foo {
419
+ bar: baz;
420
+ /* bip bop
421
+ * beep boop
422
+ * bap blimp */
423
+ bang: bizz;
424
+ /* bubble bubble
425
+ * toil trouble
426
+ * gorp */ }
427
+ SCSS
428
+ foo
429
+ bar: baz
430
+ /* bip bop
431
+ beep boop
432
+ bap blimp
433
+ bang: bizz
434
+ /* bubble bubble
435
+ toil trouble
436
+ gorp
437
+ SASS
438
+ end
439
+
440
+ def test_loud_comments_with_weird_indentation
441
+ assert_scss_to_sass <<SASS, <<SCSS
442
+ foo
443
+ /* foo
444
+ * bar
445
+ * baz
446
+ a: b
447
+ SASS
448
+ foo {
449
+ /* foo
450
+ bar
451
+ baz */
452
+ a: b; }
453
+ SCSS
454
+
455
+ assert_sass_to_scss <<SCSS, <<SASS
456
+ foo {
457
+ /* foo
458
+ * bar
459
+ * baz */
460
+ a: b; }
461
+ SCSS
462
+ foo
463
+ /* foo
464
+ bar
465
+ baz
466
+ a: b
467
+ SASS
468
+ end
469
+
470
+ def test_immediately_preceding_comments
471
+ assert_renders <<SASS, <<SCSS
472
+ /* Foo
473
+ * Bar
474
+ * Baz
475
+ .foo#bar
476
+ a: b
477
+ SASS
478
+ /* Foo
479
+ * Bar
480
+ * Baz */
481
+ .foo#bar {
482
+ a: b; }
483
+ SCSS
484
+
485
+ assert_renders <<SASS, <<SCSS
486
+ // Foo
487
+ // Bar
488
+ // Baz
489
+ =foo
490
+ a: b
491
+ SASS
492
+ // Foo
493
+ // Bar
494
+ // Baz
495
+ @mixin foo {
496
+ a: b; }
497
+ SCSS
498
+ end
499
+
500
+ def test_debug
501
+ assert_renders <<SASS, <<SCSS
502
+ foo
503
+ @debug 12px
504
+ bar: baz
505
+ SASS
506
+ foo {
507
+ @debug 12px;
508
+ bar: baz; }
509
+ SCSS
510
+ end
511
+
512
+ def test_directive_without_children
513
+ assert_renders <<SASS, <<SCSS
514
+ foo
515
+ @foo #bar "baz"
516
+ bar: baz
517
+ SASS
518
+ foo {
519
+ @foo #bar "baz";
520
+ bar: baz; }
521
+ SCSS
522
+ end
523
+
524
+ def test_directive_with_prop_children
525
+ assert_renders <<SASS, <<SCSS
526
+ foo
527
+ @foo #bar "baz"
528
+ a: b
529
+ c: d
530
+
531
+ bar: baz
532
+ SASS
533
+ foo {
534
+ @foo #bar "baz" {
535
+ a: b;
536
+ c: d; }
537
+
538
+ bar: baz; }
539
+ SCSS
540
+ end
541
+
542
+ def test_directive_with_rule_children
543
+ assert_renders <<SASS, <<SCSS
544
+ foo
545
+ @foo #bar "baz"
546
+ #blat
547
+ a: b
548
+ .bang
549
+ c: d
550
+ e: f
551
+
552
+ bar: baz
553
+ SASS
554
+ foo {
555
+ @foo #bar "baz" {
556
+ #blat {
557
+ a: b; }
558
+ .bang {
559
+ c: d;
560
+ e: f; } }
561
+
562
+ bar: baz; }
563
+ SCSS
564
+ end
565
+
566
+ def test_directive_with_rule_and_prop_children
567
+ assert_renders <<SASS, <<SCSS
568
+ foo
569
+ @foo #bar "baz"
570
+ g: h
571
+ #blat
572
+ a: b
573
+ .bang
574
+ c: d
575
+ e: f
576
+ i: j
577
+
578
+ bar: baz
579
+ SASS
580
+ foo {
581
+ @foo #bar "baz" {
582
+ g: h;
583
+ #blat {
584
+ a: b; }
585
+ .bang {
586
+ c: d;
587
+ e: f; }
588
+ i: j; }
589
+
590
+ bar: baz; }
591
+ SCSS
592
+ end
593
+
594
+ def test_charset
595
+ assert_renders <<SASS, <<SCSS
596
+ @charset "utf-8"
597
+ SASS
598
+ @charset "utf-8";
599
+ SCSS
600
+ end
601
+
602
+ def test_for
603
+ assert_renders <<SASS, <<SCSS
604
+ foo
605
+ @for $a from $b to $c
606
+ a: b
607
+ @for $c from 1 to 16
608
+ d: e
609
+ f: g
610
+ SASS
611
+ foo {
612
+ @for $a from $b to $c {
613
+ a: b; }
614
+ @for $c from 1 to 16 {
615
+ d: e;
616
+ f: g; } }
617
+ SCSS
618
+ end
619
+
620
+ def test_while
621
+ assert_renders <<SASS, <<SCSS
622
+ foo
623
+ @while flaz($a + $b)
624
+ a: b
625
+ @while 1
626
+ d: e
627
+ f: g
628
+ SASS
629
+ foo {
630
+ @while flaz($a + $b) {
631
+ a: b; }
632
+ @while 1 {
633
+ d: e;
634
+ f: g; } }
635
+ SCSS
636
+ end
637
+
638
+ def test_if
639
+ assert_renders <<SASS, <<SCSS
640
+ foo
641
+ @if $foo or $bar
642
+ a: b
643
+ @if $baz
644
+ d: e
645
+ @else if $bang
646
+ f: g
647
+ @else
648
+ h: i
649
+ SASS
650
+ foo {
651
+ @if $foo or $bar {
652
+ a: b; }
653
+ @if $baz {
654
+ d: e; }
655
+ @else if $bang {
656
+ f: g; }
657
+ @else {
658
+ h: i; } }
659
+ SCSS
660
+ end
661
+
662
+ def test_each
663
+ assert_renders <<SASS, <<SCSS
664
+ a
665
+ @each $number in 1px 2px 3px 4px
666
+ b: $number
667
+
668
+ c
669
+ @each $str in foo, bar, baz, bang
670
+ d: $str
671
+ SASS
672
+ a {
673
+ @each $number in 1px 2px 3px 4px {
674
+ b: $number; } }
675
+
676
+ c {
677
+ @each $str in foo, bar, baz, bang {
678
+ d: $str; } }
679
+ SCSS
680
+ end
681
+
682
+ def test_import
683
+ assert_renders <<SASS, <<SCSS
684
+ @import foo
685
+
686
+ @import url(bar.css)
687
+
688
+ foo
689
+ bar: baz
690
+ SASS
691
+ @import "foo";
692
+
693
+ @import url(bar.css);
694
+
695
+ foo {
696
+ bar: baz; }
697
+ SCSS
698
+
699
+ assert_renders <<SASS, <<SCSS
700
+ @import foo.css
701
+
702
+ @import url(bar.css)
703
+
704
+ foo
705
+ bar: baz
706
+ SASS
707
+ @import "foo.css";
708
+
709
+ @import url(bar.css);
710
+
711
+ foo {
712
+ bar: baz; }
713
+ SCSS
714
+ end
715
+
716
+ def test_import_as_directive_in_sass
717
+ assert_equal "@import foo.css\n", to_sass('@import "foo.css"')
718
+ end
719
+
720
+ def test_import_as_directive_in_scss
721
+ assert_renders <<SASS, <<SCSS
722
+ @import "foo.css" print
723
+ SASS
724
+ @import "foo.css" print;
725
+ SCSS
726
+
727
+ assert_renders <<SASS, <<SCSS
728
+ @import url(foo.css) screen, print
729
+ SASS
730
+ @import url(foo.css) screen, print;
731
+ SCSS
732
+ end
733
+
734
+ def test_adjacent_imports
735
+ assert_renders <<SASS, <<SCSS
736
+ @import foo.sass
737
+ @import bar.scss
738
+ @import baz
739
+ SASS
740
+ @import "foo.sass";
741
+ @import "bar.scss";
742
+ @import "baz";
743
+ SCSS
744
+ end
745
+
746
+ def test_non_adjacent_imports
747
+ assert_renders <<SASS, <<SCSS
748
+ @import foo.sass
749
+
750
+ @import bar.scss
751
+
752
+ @import baz
753
+ SASS
754
+ @import "foo.sass";
755
+
756
+ @import "bar.scss";
757
+
758
+ @import "baz";
759
+ SCSS
760
+ end
761
+
762
+ def test_extend
763
+ assert_renders <<SASS, <<SCSS
764
+ .foo
765
+ @extend .bar
766
+ @extend .baz:bang
767
+ SASS
768
+ .foo {
769
+ @extend .bar;
770
+ @extend .baz:bang; }
771
+ SCSS
772
+ end
773
+
774
+ def test_comma_extendee
775
+ assert_renders <<SASS, <<SCSS
776
+ .baz
777
+ @extend .foo, .bar
778
+ SASS
779
+ .baz {
780
+ @extend .foo, .bar; }
781
+ SCSS
782
+ end
783
+
784
+ def test_argless_mixin_definition
785
+ assert_renders <<SASS, <<SCSS
786
+ =foo-bar
787
+ baz
788
+ a: b
789
+ SASS
790
+ @mixin foo-bar {
791
+ baz {
792
+ a: b; } }
793
+ SCSS
794
+
795
+ assert_scss_to_sass <<SASS, <<SCSS
796
+ =foo-bar
797
+ baz
798
+ a: b
799
+ SASS
800
+ @mixin foo-bar() {
801
+ baz {
802
+ a: b; } }
803
+ SCSS
804
+
805
+ assert_sass_to_scss <<SCSS, <<SASS
806
+ @mixin foo-bar {
807
+ baz {
808
+ a: b; } }
809
+ SCSS
810
+ =foo-bar()
811
+ baz
812
+ a: b
813
+ SASS
814
+ end
815
+
816
+ def test_mixin_definition_without_defaults
817
+ assert_renders <<SASS, <<SCSS
818
+ =foo-bar($baz, $bang)
819
+ baz
820
+ a: $baz $bang
821
+ SASS
822
+ @mixin foo-bar($baz, $bang) {
823
+ baz {
824
+ a: $baz $bang; } }
825
+ SCSS
826
+ end
827
+
828
+ def test_mixin_definition_with_defaults
829
+ assert_renders <<SASS, <<SCSS
830
+ =foo-bar($baz, $bang: 12px)
831
+ baz
832
+ a: $baz $bang
833
+ SASS
834
+ @mixin foo-bar($baz, $bang: 12px) {
835
+ baz {
836
+ a: $baz $bang; } }
837
+ SCSS
838
+
839
+ assert_sass_to_scss <<SCSS, <<SASS
840
+ @mixin foo-bar($baz, $bang: foo) {
841
+ baz {
842
+ a: $baz $bang; } }
843
+ SCSS
844
+ =foo-bar($baz, $bang: foo)
845
+ baz
846
+ a: $baz $bang
847
+ SASS
848
+ end
849
+
850
+ def test_argless_mixin_include
851
+ assert_renders <<SASS, <<SCSS
852
+ foo
853
+ +foo-bar
854
+ a: blip
855
+ SASS
856
+ foo {
857
+ @include foo-bar;
858
+ a: blip; }
859
+ SCSS
860
+ end
861
+
862
+ def test_mixin_include
863
+ assert_renders <<SASS, <<SCSS
864
+ foo
865
+ +foo-bar(12px, "blaz")
866
+ a: blip
867
+ SASS
868
+ foo {
869
+ @include foo-bar(12px, "blaz");
870
+ a: blip; }
871
+ SCSS
872
+ end
873
+
874
+ def test_mixin_include_with_keyword_args
875
+ assert_renders <<SASS, <<SCSS
876
+ foo
877
+ +foo-bar(12px, "blaz", $blip: blap, $bloop: blop)
878
+ +foo-bar($blip: blap, $bloop: blop)
879
+ a: blip
880
+ SASS
881
+ foo {
882
+ @include foo-bar(12px, "blaz", $blip: blap, $bloop: blop);
883
+ @include foo-bar($blip: blap, $bloop: blop);
884
+ a: blip; }
885
+ SCSS
886
+ end
887
+
888
+ def test_argless_function_definition
889
+ assert_renders <<SASS, <<SCSS
890
+ @function foo()
891
+ $var: 1 + 1
892
+ @return $var
893
+ SASS
894
+ @function foo() {
895
+ $var: 1 + 1;
896
+ @return $var; }
897
+ SCSS
898
+ end
899
+
900
+ def test_function_definition_without_defaults
901
+ assert_renders <<SASS, <<SCSS
902
+ @function foo($var1, $var2)
903
+ @if $var1
904
+ @return $var1 + $var2
905
+ SASS
906
+ @function foo($var1, $var2) {
907
+ @if $var1 {
908
+ @return $var1 + $var2; } }
909
+ SCSS
910
+ end
911
+
912
+ def test_function_definition_with_defaults
913
+ assert_renders <<SASS, <<SCSS
914
+ @function foo($var1, $var2: foo)
915
+ @if $var1
916
+ @return $var1 + $var2
917
+ SASS
918
+ @function foo($var1, $var2: foo) {
919
+ @if $var1 {
920
+ @return $var1 + $var2; } }
921
+ SCSS
922
+ end
923
+
924
+ def test_variable_definition
925
+ assert_renders <<SASS, <<SCSS
926
+ $var1: 12px + 15px
927
+
928
+ foo
929
+ $var2: flaz(#abcdef)
930
+ val: $var1 $var2
931
+ SASS
932
+ $var1: 12px + 15px;
933
+
934
+ foo {
935
+ $var2: flaz(#abcdef);
936
+ val: $var1 $var2; }
937
+ SCSS
938
+ end
939
+
940
+ def test_guarded_variable_definition
941
+ assert_renders <<SASS, <<SCSS
942
+ $var1: 12px + 15px !default
943
+
944
+ foo
945
+ $var2: flaz(#abcdef) !default
946
+ val: $var1 $var2
947
+ SASS
948
+ $var1: 12px + 15px !default;
949
+
950
+ foo {
951
+ $var2: flaz(#abcdef) !default;
952
+ val: $var1 $var2; }
953
+ SCSS
954
+ end
955
+
956
+ def test_multiple_variable_definitions
957
+ assert_renders <<SASS, <<SCSS
958
+ $var1: foo
959
+ $var2: bar
960
+ $var3: baz
961
+
962
+ $var4: bip
963
+ $var5: bap
964
+ SASS
965
+ $var1: foo;
966
+ $var2: bar;
967
+ $var3: baz;
968
+
969
+ $var4: bip;
970
+ $var5: bap;
971
+ SCSS
972
+ end
973
+
974
+ def test_division_asserted_with_parens
975
+ assert_renders <<SASS, <<SCSS
976
+ foo
977
+ a: (1px / 2px)
978
+ SASS
979
+ foo {
980
+ a: (1px / 2px); }
981
+ SCSS
982
+ end
983
+
984
+ def test_division_not_asserted_when_unnecessary
985
+ assert_renders <<SASS, <<SCSS
986
+ $var: 1px / 2px
987
+
988
+ foo
989
+ a: $var
990
+ SASS
991
+ $var: 1px / 2px;
992
+
993
+ foo {
994
+ a: $var; }
995
+ SCSS
996
+
997
+ assert_renders <<SASS, <<SCSS
998
+ $var: 1px
999
+
1000
+ foo
1001
+ a: $var / 2px
1002
+ SASS
1003
+ $var: 1px;
1004
+
1005
+ foo {
1006
+ a: $var / 2px; }
1007
+ SCSS
1008
+
1009
+ assert_renders <<SASS, <<SCSS
1010
+ foo
1011
+ a: 1 + 1px / 2px
1012
+ SASS
1013
+ foo {
1014
+ a: 1 + 1px / 2px; }
1015
+ SCSS
1016
+ end
1017
+
1018
+ def test_literal_slash
1019
+ assert_renders <<SASS, <<SCSS
1020
+ foo
1021
+ a: 1px / 2px
1022
+ SASS
1023
+ foo {
1024
+ a: 1px / 2px; }
1025
+ SCSS
1026
+ end
1027
+
1028
+ # Hacks
1029
+
1030
+ def test_declaration_hacks
1031
+ assert_renders <<SASS, <<SCSS
1032
+ foo
1033
+ _name: val
1034
+ *name: val
1035
+ #name: val
1036
+ .name: val
1037
+ name/**/: val
1038
+ name/*\\**/: val
1039
+ name: val
1040
+ SASS
1041
+ foo {
1042
+ _name: val;
1043
+ *name: val;
1044
+ #name: val;
1045
+ .name: val;
1046
+ name/**/: val;
1047
+ name/*\\**/: val;
1048
+ name: val; }
1049
+ SCSS
1050
+ end
1051
+
1052
+ def test_old_declaration_hacks
1053
+ assert_renders <<SASS, <<SCSS, :old => true
1054
+ foo
1055
+ :_name val
1056
+ :*name val
1057
+ :#name val
1058
+ :.name val
1059
+ :name val
1060
+ SASS
1061
+ foo {
1062
+ _name: val;
1063
+ *name: val;
1064
+ #name: val;
1065
+ .name: val;
1066
+ name: val; }
1067
+ SCSS
1068
+ end
1069
+
1070
+ def test_selector_hacks
1071
+ assert_selector_renders = lambda do |s|
1072
+ assert_renders <<SASS, <<SCSS
1073
+ #{s}
1074
+ a: b
1075
+ SASS
1076
+ #{s} {
1077
+ a: b; }
1078
+ SCSS
1079
+ end
1080
+
1081
+ assert_selector_renders['> E']
1082
+ assert_selector_renders['+ E']
1083
+ assert_selector_renders['~ E']
1084
+ assert_selector_renders['> > E']
1085
+
1086
+ assert_selector_renders['E*']
1087
+ assert_selector_renders['E*.foo']
1088
+ assert_selector_renders['E*:hover']
1089
+ end
1090
+
1091
+ def test_disallowed_colon_hack
1092
+ assert_raise_message(Sass::SyntaxError, 'The ":name: val" hack is not allowed in the Sass indented syntax') do
1093
+ to_sass("foo {:name: val;}", :syntax => :scss)
1094
+ end
1095
+ end
1096
+
1097
+ def test_nested_properties
1098
+ assert_renders <<SASS, <<SCSS
1099
+ div
1100
+ before: before
1101
+ background:
1102
+ color: blue
1103
+ repeat: no-repeat
1104
+ after: after
1105
+ SASS
1106
+ div {
1107
+ before: before;
1108
+ background: {
1109
+ color: blue;
1110
+ repeat: no-repeat; };
1111
+ after: after; }
1112
+
1113
+ SCSS
1114
+ end
1115
+
1116
+ def test_dasherize
1117
+ assert_sass_to_scss(<<SCSS, <<SASS, :dasherize => true)
1118
+ @mixin under-scored-mixin($under-scored-arg: $under-scored-default) {
1119
+ bar: $under-scored-arg; }
1120
+
1121
+ div {
1122
+ foo: under-scored-fn($under-scored-var + "before\#{$another-under-scored-var}after");
1123
+ @include under-scored-mixin($passed-arg);
1124
+ selector-\#{$under-scored-interp}: bold; }
1125
+
1126
+ @if $under-scored {
1127
+ @for $for-var from $from-var to $to-var {
1128
+ @while $while-var == true {
1129
+ $while-var: false; } } }
1130
+ SCSS
1131
+ =under_scored_mixin($under_scored_arg: $under_scored_default)
1132
+ bar: $under_scored_arg
1133
+ div
1134
+ foo: under_scored_fn($under_scored_var + "before\#{$another_under_scored_var}after")
1135
+ +under_scored_mixin($passed_arg)
1136
+ selector-\#{$under_scored_interp}: bold
1137
+ @if $under_scored
1138
+ @for $for_var from $from_var to $to_var
1139
+ @while $while_var == true
1140
+ $while_var : false
1141
+ SASS
1142
+ end
1143
+
1144
+ def test_loud_comment_conversion
1145
+ assert_renders(<<SASS, <<SCSS)
1146
+ /*! \#{"interpolated"}
1147
+ SASS
1148
+ /*! \#{"interpolated"} */
1149
+ SCSS
1150
+ silence_warnings {assert_renders(<<SASS, <<SCSS)}
1151
+ //! \#{"interpolated"}
1152
+ //!
1153
+ //! \#{"also interpolated"}
1154
+ SASS
1155
+ //! \#{"interpolated"}
1156
+ //!
1157
+ //! \#{"also interpolated"}
1158
+ SCSS
1159
+ end
1160
+
1161
+ ## Regression Tests
1162
+
1163
+ def test_empty_lists
1164
+ assert_renders(<<SASS, <<SCSS)
1165
+ $foo: ()
1166
+ SASS
1167
+ $foo: ();
1168
+ SCSS
1169
+ end
1170
+
1171
+ def test_nested_if_statements
1172
+ assert_renders(<<SASS, <<SCSS)
1173
+ @if $foo
1174
+ one
1175
+ a: b
1176
+ @else
1177
+ @if $bar
1178
+ two
1179
+ a: b
1180
+ @else
1181
+ three
1182
+ a: b
1183
+ SASS
1184
+ @if $foo {
1185
+ one {
1186
+ a: b; } }
1187
+ @else {
1188
+ @if $bar {
1189
+ two {
1190
+ a: b; } }
1191
+ @else {
1192
+ three {
1193
+ a: b; } } }
1194
+ SCSS
1195
+ end
1196
+
1197
+ private
1198
+
1199
+ def assert_sass_to_sass(sass, options = {})
1200
+ assert_equal(sass.rstrip, to_sass(sass, options).rstrip,
1201
+ "Expected Sass to transform to itself")
1202
+ end
1203
+
1204
+ def assert_scss_to_sass(sass, scss, options = {})
1205
+ assert_equal(sass.rstrip, to_sass(scss, options.merge(:syntax => :scss)).rstrip,
1206
+ "Expected SCSS to transform to Sass")
1207
+ end
1208
+
1209
+ def assert_scss_to_scss(scss, in_scss = nil, options = nil)
1210
+ if in_scss.is_a?(Hash)
1211
+ options = in_scss
1212
+ in_scss = nil
1213
+ end
1214
+
1215
+ in_scss ||= scss
1216
+ options ||= {}
1217
+
1218
+ assert_equal(scss.rstrip, to_scss(in_scss, options.merge(:syntax => :scss)).rstrip,
1219
+ "Expected SCSS to transform to #{scss == in_scss ? 'itself' : 'SCSS'}k")
1220
+ end
1221
+
1222
+ def assert_sass_to_scss(scss, sass, options = {})
1223
+ assert_equal(scss.rstrip, to_scss(sass, options).rstrip,
1224
+ "Expected Sass to transform to SCSS")
1225
+ end
1226
+
1227
+ def assert_renders(sass, scss, options = {})
1228
+ assert_sass_to_sass(sass, options)
1229
+ assert_scss_to_sass(sass, scss, options)
1230
+ assert_scss_to_scss(scss, options)
1231
+ assert_sass_to_scss(scss, sass, options)
1232
+ end
1233
+
1234
+ def to_sass(scss, options = {})
1235
+ Sass::Util.silence_sass_warnings do
1236
+ Sass::Engine.new(scss, options).to_tree.to_sass(options)
1237
+ end
1238
+ end
1239
+
1240
+ def to_scss(sass, options = {})
1241
+ Sass::Util.silence_sass_warnings do
1242
+ Sass::Engine.new(sass, options).to_tree.to_scss(options)
1243
+ end
1244
+ end
1245
+ end