classiccms 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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