sass-rails 5.0.0.beta1 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (241) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +13 -1
  3. data/lib/rails/generators/sass/assets/assets_generator.rb +1 -1
  4. data/lib/rails/generators/sass/assets/templates/{stylesheet.css.sass → stylesheet.sass} +0 -0
  5. data/lib/rails/generators/sass_scaffold.rb +1 -2
  6. data/lib/rails/generators/scss/assets/assets_generator.rb +1 -1
  7. data/lib/rails/generators/scss/assets/templates/{stylesheet.css.scss → stylesheet.scss} +0 -0
  8. data/lib/sass/rails/cache_store.rb +31 -0
  9. data/lib/sass/rails/helpers.rb +2 -21
  10. data/lib/sass/rails/importer.rb +119 -69
  11. data/lib/sass/rails/railtie.rb +5 -6
  12. data/lib/sass/rails/template.rb +41 -11
  13. data/lib/sass/rails/version.rb +1 -1
  14. metadata +71 -471
  15. data/.gitignore +0 -6
  16. data/.travis.yml +0 -24
  17. data/Gemfile +0 -8
  18. data/Rakefile +0 -29
  19. data/sass-rails.gemspec +0 -27
  20. data/sass-rails.gemspec.erb +0 -27
  21. data/test/fixtures/alternate_config_project/.gitignore +0 -5
  22. data/test/fixtures/alternate_config_project/Gemfile +0 -7
  23. data/test/fixtures/alternate_config_project/README +0 -261
  24. data/test/fixtures/alternate_config_project/Rakefile +0 -7
  25. data/test/fixtures/alternate_config_project/app/assets/images/1x1.png +0 -0
  26. data/test/fixtures/alternate_config_project/app/assets/images/rails.png +0 -0
  27. data/test/fixtures/alternate_config_project/app/assets/javascripts/application.js +0 -9
  28. data/test/fixtures/alternate_config_project/app/assets/stylesheets/_top_level_partial.css.scss +0 -3
  29. data/test/fixtures/alternate_config_project/app/assets/stylesheets/application.css.scss +0 -32
  30. data/test/fixtures/alternate_config_project/app/assets/stylesheets/css_application.css +0 -7
  31. data/test/fixtures/alternate_config_project/app/assets/stylesheets/globbed/globbed.css.scss +0 -3
  32. data/test/fixtures/alternate_config_project/app/assets/stylesheets/globbed/nested/nested_glob.css.scss +0 -3
  33. data/test/fixtures/alternate_config_project/app/assets/stylesheets/partials/_sass_import.css.sass +0 -5
  34. data/test/fixtures/alternate_config_project/app/assets/stylesheets/partials/_scss_import.css.scss +0 -9
  35. data/test/fixtures/alternate_config_project/app/assets/stylesheets/partials/_without_css_ext.scss +0 -3
  36. data/test/fixtures/alternate_config_project/app/assets/stylesheets/partials/subfolder/_relative_sass.css.sass +0 -2
  37. data/test/fixtures/alternate_config_project/app/assets/stylesheets/partials/subfolder/_relative_scss.css.scss +0 -3
  38. data/test/fixtures/alternate_config_project/app/assets/stylesheets/partials/subfolder/relative_not_a_partial.css.scss +0 -3
  39. data/test/fixtures/alternate_config_project/app/assets/stylesheets/subfolder/another_plain.css +0 -3
  40. data/test/fixtures/alternate_config_project/app/assets/stylesheets/subfolder/plain.css +0 -3
  41. data/test/fixtures/alternate_config_project/app/assets/stylesheets/subfolder/second_level.css.scss +0 -1
  42. data/test/fixtures/alternate_config_project/app/controllers/application_controller.rb +0 -3
  43. data/test/fixtures/alternate_config_project/app/helpers/application_helper.rb +0 -2
  44. data/test/fixtures/alternate_config_project/app/mailers/.gitkeep +0 -0
  45. data/test/fixtures/alternate_config_project/app/models/.gitkeep +0 -0
  46. data/test/fixtures/alternate_config_project/app/views/layouts/application.html.erb +0 -14
  47. data/test/fixtures/alternate_config_project/config.ru +0 -4
  48. data/test/fixtures/alternate_config_project/config/application.rb +0 -49
  49. data/test/fixtures/alternate_config_project/config/boot.rb +0 -6
  50. data/test/fixtures/alternate_config_project/config/database.yml +0 -25
  51. data/test/fixtures/alternate_config_project/config/environment.rb +0 -5
  52. data/test/fixtures/alternate_config_project/config/environments/development.rb +0 -27
  53. data/test/fixtures/alternate_config_project/config/environments/production.rb +0 -56
  54. data/test/fixtures/alternate_config_project/config/environments/test.rb +0 -38
  55. data/test/fixtures/alternate_config_project/config/initializers/backtrace_silencers.rb +0 -7
  56. data/test/fixtures/alternate_config_project/config/initializers/inflections.rb +0 -10
  57. data/test/fixtures/alternate_config_project/config/initializers/mime_types.rb +0 -5
  58. data/test/fixtures/alternate_config_project/config/initializers/secret_token.rb +0 -7
  59. data/test/fixtures/alternate_config_project/config/initializers/session_store.rb +0 -8
  60. data/test/fixtures/alternate_config_project/config/initializers/wrap_parameters.rb +0 -12
  61. data/test/fixtures/alternate_config_project/config/locales/en.yml +0 -5
  62. data/test/fixtures/alternate_config_project/config/routes.rb +0 -58
  63. data/test/fixtures/alternate_config_project/db/seeds.rb +0 -7
  64. data/test/fixtures/alternate_config_project/doc/README_FOR_APP +0 -2
  65. data/test/fixtures/alternate_config_project/lib/tasks/.gitkeep +0 -0
  66. data/test/fixtures/alternate_config_project/log/.gitkeep +0 -0
  67. data/test/fixtures/alternate_config_project/public/404.html +0 -26
  68. data/test/fixtures/alternate_config_project/public/422.html +0 -26
  69. data/test/fixtures/alternate_config_project/public/500.html +0 -26
  70. data/test/fixtures/alternate_config_project/public/favicon.ico +0 -0
  71. data/test/fixtures/alternate_config_project/public/index.html +0 -241
  72. data/test/fixtures/alternate_config_project/public/robots.txt +0 -5
  73. data/test/fixtures/alternate_config_project/script/rails +0 -6
  74. data/test/fixtures/alternate_config_project/vendor/assets/stylesheets/.gitkeep +0 -0
  75. data/test/fixtures/alternate_config_project/vendor/plugins/.gitkeep +0 -0
  76. data/test/fixtures/engine_project/.gitignore +0 -8
  77. data/test/fixtures/engine_project/Gemfile +0 -14
  78. data/test/fixtures/engine_project/MIT-LICENSE +0 -20
  79. data/test/fixtures/engine_project/README.rdoc +0 -3
  80. data/test/fixtures/engine_project/Rakefile +0 -34
  81. data/test/fixtures/engine_project/app/assets/images/engine_project/.keep +0 -0
  82. data/test/fixtures/engine_project/app/assets/javascripts/engine_project/application.js +0 -16
  83. data/test/fixtures/engine_project/app/assets/stylesheets/engine_project/application.css +0 -13
  84. data/test/fixtures/engine_project/app/controllers/engine_project/application_controller.rb +0 -4
  85. data/test/fixtures/engine_project/app/helpers/engine_project/application_helper.rb +0 -4
  86. data/test/fixtures/engine_project/app/views/layouts/engine_project/application.html.erb +0 -14
  87. data/test/fixtures/engine_project/config/routes.rb +0 -2
  88. data/test/fixtures/engine_project/engine_project.gemspec +0 -23
  89. data/test/fixtures/engine_project/lib/engine_project.rb +0 -4
  90. data/test/fixtures/engine_project/lib/engine_project/engine.rb +0 -5
  91. data/test/fixtures/engine_project/lib/engine_project/version.rb +0 -3
  92. data/test/fixtures/engine_project/lib/tasks/engine_project_tasks.rake +0 -4
  93. data/test/fixtures/engine_project/script/rails +0 -8
  94. data/test/fixtures/engine_project/test/dummy/README.rdoc +0 -28
  95. data/test/fixtures/engine_project/test/dummy/Rakefile +0 -6
  96. data/test/fixtures/engine_project/test/dummy/app/assets/javascripts/application.js +0 -16
  97. data/test/fixtures/engine_project/test/dummy/app/assets/stylesheets/application.css +0 -13
  98. data/test/fixtures/engine_project/test/dummy/app/controllers/application_controller.rb +0 -5
  99. data/test/fixtures/engine_project/test/dummy/app/controllers/concerns/.keep +0 -0
  100. data/test/fixtures/engine_project/test/dummy/app/helpers/application_helper.rb +0 -2
  101. data/test/fixtures/engine_project/test/dummy/app/mailers/.keep +0 -0
  102. data/test/fixtures/engine_project/test/dummy/app/models/.keep +0 -0
  103. data/test/fixtures/engine_project/test/dummy/app/models/concerns/.keep +0 -0
  104. data/test/fixtures/engine_project/test/dummy/app/views/layouts/application.html.erb +0 -14
  105. data/test/fixtures/engine_project/test/dummy/bin/bundle +0 -3
  106. data/test/fixtures/engine_project/test/dummy/bin/rails +0 -4
  107. data/test/fixtures/engine_project/test/dummy/bin/rake +0 -4
  108. data/test/fixtures/engine_project/test/dummy/config.ru +0 -4
  109. data/test/fixtures/engine_project/test/dummy/config/application.rb +0 -23
  110. data/test/fixtures/engine_project/test/dummy/config/boot.rb +0 -9
  111. data/test/fixtures/engine_project/test/dummy/config/database.yml +0 -25
  112. data/test/fixtures/engine_project/test/dummy/config/environment.rb +0 -5
  113. data/test/fixtures/engine_project/test/dummy/config/environments/development.rb +0 -27
  114. data/test/fixtures/engine_project/test/dummy/config/environments/production.rb +0 -80
  115. data/test/fixtures/engine_project/test/dummy/config/environments/test.rb +0 -36
  116. data/test/fixtures/engine_project/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
  117. data/test/fixtures/engine_project/test/dummy/config/initializers/filter_parameter_logging.rb +0 -4
  118. data/test/fixtures/engine_project/test/dummy/config/initializers/inflections.rb +0 -16
  119. data/test/fixtures/engine_project/test/dummy/config/initializers/mime_types.rb +0 -5
  120. data/test/fixtures/engine_project/test/dummy/config/initializers/secret_token.rb +0 -12
  121. data/test/fixtures/engine_project/test/dummy/config/initializers/session_store.rb +0 -3
  122. data/test/fixtures/engine_project/test/dummy/config/initializers/wrap_parameters.rb +0 -14
  123. data/test/fixtures/engine_project/test/dummy/config/locales/en.yml +0 -23
  124. data/test/fixtures/engine_project/test/dummy/config/routes.rb +0 -4
  125. data/test/fixtures/engine_project/test/dummy/lib/assets/.keep +0 -0
  126. data/test/fixtures/engine_project/test/dummy/log/.keep +0 -0
  127. data/test/fixtures/engine_project/test/dummy/public/404.html +0 -27
  128. data/test/fixtures/engine_project/test/dummy/public/422.html +0 -26
  129. data/test/fixtures/engine_project/test/dummy/public/500.html +0 -26
  130. data/test/fixtures/engine_project/test/dummy/public/favicon.ico +0 -0
  131. data/test/fixtures/sass_project/.gitignore +0 -5
  132. data/test/fixtures/sass_project/Gemfile +0 -7
  133. data/test/fixtures/sass_project/README +0 -261
  134. data/test/fixtures/sass_project/Rakefile +0 -7
  135. data/test/fixtures/sass_project/app/assets/images/rails.png +0 -0
  136. data/test/fixtures/sass_project/app/assets/javascripts/application.js +0 -9
  137. data/test/fixtures/sass_project/app/assets/stylesheets/application.css +0 -7
  138. data/test/fixtures/sass_project/app/controllers/application_controller.rb +0 -3
  139. data/test/fixtures/sass_project/app/helpers/application_helper.rb +0 -2
  140. data/test/fixtures/sass_project/app/mailers/.gitkeep +0 -0
  141. data/test/fixtures/sass_project/app/models/.gitkeep +0 -0
  142. data/test/fixtures/sass_project/app/views/layouts/application.html.erb +0 -14
  143. data/test/fixtures/sass_project/config.ru +0 -4
  144. data/test/fixtures/sass_project/config/application.rb +0 -52
  145. data/test/fixtures/sass_project/config/boot.rb +0 -6
  146. data/test/fixtures/sass_project/config/database.yml +0 -25
  147. data/test/fixtures/sass_project/config/environment.rb +0 -5
  148. data/test/fixtures/sass_project/config/environments/development.rb +0 -24
  149. data/test/fixtures/sass_project/config/environments/production.rb +0 -54
  150. data/test/fixtures/sass_project/config/environments/test.rb +0 -39
  151. data/test/fixtures/sass_project/config/initializers/backtrace_silencers.rb +0 -7
  152. data/test/fixtures/sass_project/config/initializers/inflections.rb +0 -10
  153. data/test/fixtures/sass_project/config/initializers/mime_types.rb +0 -5
  154. data/test/fixtures/sass_project/config/initializers/secret_token.rb +0 -7
  155. data/test/fixtures/sass_project/config/initializers/session_store.rb +0 -8
  156. data/test/fixtures/sass_project/config/initializers/wrap_parameters.rb +0 -12
  157. data/test/fixtures/sass_project/config/locales/en.yml +0 -5
  158. data/test/fixtures/sass_project/config/routes.rb +0 -58
  159. data/test/fixtures/sass_project/db/seeds.rb +0 -7
  160. data/test/fixtures/sass_project/doc/README_FOR_APP +0 -2
  161. data/test/fixtures/sass_project/lib/tasks/.gitkeep +0 -0
  162. data/test/fixtures/sass_project/log/.gitkeep +0 -0
  163. data/test/fixtures/sass_project/public/404.html +0 -26
  164. data/test/fixtures/sass_project/public/422.html +0 -26
  165. data/test/fixtures/sass_project/public/500.html +0 -26
  166. data/test/fixtures/sass_project/public/favicon.ico +0 -0
  167. data/test/fixtures/sass_project/public/index.html +0 -241
  168. data/test/fixtures/sass_project/public/robots.txt +0 -5
  169. data/test/fixtures/sass_project/script/rails +0 -6
  170. data/test/fixtures/sass_project/vendor/assets/stylesheets/.gitkeep +0 -0
  171. data/test/fixtures/sass_project/vendor/plugins/.gitkeep +0 -0
  172. data/test/fixtures/scss_project/.gitignore +0 -5
  173. data/test/fixtures/scss_project/Gemfile +0 -7
  174. data/test/fixtures/scss_project/README +0 -261
  175. data/test/fixtures/scss_project/Rakefile +0 -7
  176. data/test/fixtures/scss_project/app/assets/images/1x1.png +0 -0
  177. data/test/fixtures/scss_project/app/assets/images/rails.png +0 -0
  178. data/test/fixtures/scss_project/app/assets/javascripts/application.js +0 -9
  179. data/test/fixtures/scss_project/app/assets/stylesheets/_top_level_partial.css.scss +0 -3
  180. data/test/fixtures/scss_project/app/assets/stylesheets/application.css.scss +0 -37
  181. data/test/fixtures/scss_project/app/assets/stylesheets/css_application.css +0 -7
  182. data/test/fixtures/scss_project/app/assets/stylesheets/css_erb_handler.css.erb +0 -3
  183. data/test/fixtures/scss_project/app/assets/stylesheets/css_sass_erb_handler.css.sass.erb +0 -2
  184. data/test/fixtures/scss_project/app/assets/stylesheets/css_scss_erb_handler.css.scss.erb +0 -3
  185. data/test/fixtures/scss_project/app/assets/stylesheets/globbed/globbed.css.scss +0 -3
  186. data/test/fixtures/scss_project/app/assets/stylesheets/globbed/nested/nested_glob.css.scss +0 -3
  187. data/test/fixtures/scss_project/app/assets/stylesheets/partials/_sass_import.css.sass +0 -5
  188. data/test/fixtures/scss_project/app/assets/stylesheets/partials/_scss_import.css.scss +0 -9
  189. data/test/fixtures/scss_project/app/assets/stylesheets/partials/_without_css_ext.scss +0 -3
  190. data/test/fixtures/scss_project/app/assets/stylesheets/partials/subfolder/_relative_sass.css.sass +0 -2
  191. data/test/fixtures/scss_project/app/assets/stylesheets/partials/subfolder/_relative_scss.css.scss +0 -3
  192. data/test/fixtures/scss_project/app/assets/stylesheets/partials/subfolder/relative_not_a_partial.css.scss +0 -3
  193. data/test/fixtures/scss_project/app/assets/stylesheets/sass_erb_handler.sass.erb +0 -2
  194. data/test/fixtures/scss_project/app/assets/stylesheets/scss_erb_handler.scss.erb +0 -3
  195. data/test/fixtures/scss_project/app/assets/stylesheets/subfolder/_defaults.css.scss +0 -3
  196. data/test/fixtures/scss_project/app/assets/stylesheets/subfolder/another_plain.css +0 -3
  197. data/test/fixtures/scss_project/app/assets/stylesheets/subfolder/plain.css +0 -3
  198. data/test/fixtures/scss_project/app/assets/stylesheets/subfolder/second_level.css.scss +0 -2
  199. data/test/fixtures/scss_project/app/controllers/application_controller.rb +0 -3
  200. data/test/fixtures/scss_project/app/helpers/application_helper.rb +0 -2
  201. data/test/fixtures/scss_project/app/mailers/.gitkeep +0 -0
  202. data/test/fixtures/scss_project/app/models/.gitkeep +0 -0
  203. data/test/fixtures/scss_project/app/views/layouts/application.html.erb +0 -14
  204. data/test/fixtures/scss_project/config.ru +0 -4
  205. data/test/fixtures/scss_project/config/application.rb +0 -49
  206. data/test/fixtures/scss_project/config/boot.rb +0 -6
  207. data/test/fixtures/scss_project/config/database.yml +0 -25
  208. data/test/fixtures/scss_project/config/environment.rb +0 -5
  209. data/test/fixtures/scss_project/config/environments/development.rb +0 -23
  210. data/test/fixtures/scss_project/config/environments/production.rb +0 -53
  211. data/test/fixtures/scss_project/config/environments/test.rb +0 -38
  212. data/test/fixtures/scss_project/config/initializers/backtrace_silencers.rb +0 -7
  213. data/test/fixtures/scss_project/config/initializers/inflections.rb +0 -10
  214. data/test/fixtures/scss_project/config/initializers/mime_types.rb +0 -5
  215. data/test/fixtures/scss_project/config/initializers/postprocessor.rb +0 -3
  216. data/test/fixtures/scss_project/config/initializers/secret_token.rb +0 -7
  217. data/test/fixtures/scss_project/config/initializers/session_store.rb +0 -8
  218. data/test/fixtures/scss_project/config/initializers/wrap_parameters.rb +0 -12
  219. data/test/fixtures/scss_project/config/locales/en.yml +0 -5
  220. data/test/fixtures/scss_project/config/routes.rb +0 -58
  221. data/test/fixtures/scss_project/db/seeds.rb +0 -7
  222. data/test/fixtures/scss_project/doc/README_FOR_APP +0 -2
  223. data/test/fixtures/scss_project/lib/tasks/.gitkeep +0 -0
  224. data/test/fixtures/scss_project/log/.gitkeep +0 -0
  225. data/test/fixtures/scss_project/public/404.html +0 -26
  226. data/test/fixtures/scss_project/public/422.html +0 -26
  227. data/test/fixtures/scss_project/public/500.html +0 -26
  228. data/test/fixtures/scss_project/public/favicon.ico +0 -0
  229. data/test/fixtures/scss_project/public/index.html +0 -241
  230. data/test/fixtures/scss_project/public/robots.txt +0 -5
  231. data/test/fixtures/scss_project/script/rails +0 -6
  232. data/test/fixtures/scss_project/vendor/assets/stylesheets/.gitkeep +0 -0
  233. data/test/fixtures/scss_project/vendor/plugins/.gitkeep +0 -0
  234. data/test/gemfiles/Gemfile-4-0-stable +0 -9
  235. data/test/gemfiles/Gemfile-4-1-stable +0 -9
  236. data/test/gemfiles/Gemfile-master +0 -9
  237. data/test/sass_rails_generators_test.rb +0 -62
  238. data/test/sass_rails_logger_test.rb +0 -27
  239. data/test/sass_rails_test.rb +0 -157
  240. data/test/support/sass_rails_test_case.rb +0 -181
  241. data/test/test_helper.rb +0 -25
@@ -1,9 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- # Specify your gem's dependencies in sass-rails.gemspec
4
- gemspec path: '../..'
5
-
6
- gem "rails", github: 'rails/rails', branch: '4-0-stable'
7
- gem "sprockets-rails", github: 'rails/sprockets-rails', branch: '2-1-stable'
8
-
9
- gem "sqlite3"
@@ -1,9 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- # Specify your gem's dependencies in sass-rails.gemspec
4
- gemspec path: '../..'
5
-
6
- gem "rails", github: 'rails/rails', branch: '4-1-stable'
7
- gem "sprockets-rails", github: 'rails/sprockets-rails', branch: '2-1-stable'
8
-
9
- gem "sqlite3"
@@ -1,9 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- # Specify your gem's dependencies in sass-rails.gemspec
4
- gemspec path: '../..'
5
-
6
- gem "rails", github: 'rails/rails', branch: 'master'
7
- gem "sprockets-rails", github: 'rails/sprockets-rails', branch: '2-1-stable'
8
-
9
- gem "sqlite3"
@@ -1,62 +0,0 @@
1
- require 'test_helper'
2
-
3
- class ScaffoldGeneratorTest < Sass::Rails::TestCase
4
- test "scss files are generated during scaffold generation of scss projects" do
5
- within_rails_app "scss_project" do
6
- generate_scaffold
7
- assert_file_exists "app/assets/stylesheets/foos.css.scss"
8
- assert_file_exists "app/assets/stylesheets/scaffolds.css.scss"
9
- assert_not_output /conflict/
10
- end
11
- end
12
-
13
- test "sass files are generated during scaffold generation of sass projects" do
14
- within_rails_app "sass_project" do
15
- generate_scaffold
16
- assert_file_exists "app/assets/stylesheets/foos.css.sass"
17
- assert_file_exists "app/assets/stylesheets/scaffolds.css.sass"
18
- assert_not_output /conflict/
19
- end
20
- end
21
-
22
- test "scss files are generated during scaffold generation of a engine project, if is called with --stylesheet-engine=scss" do
23
- within_rails_app "engine_project" do
24
- generate_scaffold "--stylesheet-engine=scss"
25
- assert_file_exists "app/assets/stylesheets/engine_project/foos.css.scss"
26
- assert_file_exists "app/assets/stylesheets/scaffolds.css.scss"
27
- assert_not_output /conflict/
28
- end
29
- end
30
-
31
- test "sass files are generated during scaffold generation of a engine project, if is called with --stylesheet-engine=sass" do
32
- within_rails_app "engine_project" do
33
- generate_scaffold "--stylesheet-engine=sass"
34
- assert_file_exists "app/assets/stylesheets/engine_project/foos.css.sass"
35
- assert_file_exists "app/assets/stylesheets/scaffolds.css.sass"
36
- assert_not_output /conflict/
37
- end
38
- end
39
-
40
- # DISABLED because we've removed the feature for now.
41
- # test "scss template has correct dasherized css class for namespaced controllers" do
42
- # within_rails_app "scss_project" do
43
- # runcmd "rails generate controller foo/bar"
44
- # assert_file_exists "app/assets/stylesheets/foo/bar.css.scss"
45
- # assert_match /\.foo-bar/, File.read("app/assets/stylesheets/foo/bar.css.scss")
46
- # end
47
- # end
48
- #
49
- # test "sass template has correct dasherized css class for namespaced controllers" do
50
- # within_rails_app "sass_project" do
51
- # runcmd "rails generate controller foo/bar"
52
- # assert_file_exists "app/assets/stylesheets/foo/bar.css.sass"
53
- # assert_match /\.foo-bar/, File.read("app/assets/stylesheets/foo/bar.css.sass")
54
- # end
55
- # end
56
-
57
- private
58
-
59
- def generate_scaffold(args = nil)
60
- runcmd "bundle exec rails generate scaffold foo #{args}"
61
- end
62
- end
@@ -1,27 +0,0 @@
1
- require 'test_helper'
2
-
3
- class SassRailsLoggerTest < Sass::Rails::TestCase
4
- test "setting a sass-rails logger as the sass default logger" do
5
- within_rails_app "scss_project" do
6
- logger_class_name = runcmd 'ruby script/rails runner "print Sass::logger.class.name"'
7
- assert logger_class_name =~ /#{Regexp.escape(Sass::Rails::Logger.name)}/
8
- end
9
- end
10
-
11
- test "sending a log messages to the sass logger writes to the environment log file" do
12
- within_rails_app "scss_project" do |app_root|
13
- [:debug, :warn, :info, :error, :trace].each do |level|
14
- message = "[#{level}]: sass message"
15
-
16
- runner 'development' do
17
- "Sass::logger.log_level = :#{level}; Sass::logger.log(:#{level}, %Q|#{message}|)"
18
- end
19
-
20
- assert File.exists?("#{app_root}/log/development.log"), "log file was not created"
21
-
22
- log_output = File.open("#{app_root}/log/development.log").read
23
- assert log_output.include?(message), "the #{level} log message was not found in the log file"
24
- end
25
- end
26
- end
27
- end
@@ -1,157 +0,0 @@
1
- require 'test_helper'
2
-
3
- class SassRailsTest < Sass::Rails::TestCase
4
- test 'classes are loaded' do
5
- assert_kind_of Module, Sass::Rails
6
- assert_kind_of Class, Sass::Rails::Railtie
7
- end
8
-
9
- test 'style config item is honored in development mode' do
10
- within_rails_app 'alternate_config_project' do
11
- runner 'development' do
12
- "puts Rails.application.config.sass.style"
13
- end
14
-
15
- assert_output /compact/
16
- end
17
- end
18
-
19
- test 'style config item is not honored if environment is not development' do
20
- within_rails_app 'alternate_config_project' do
21
- runner 'production' do
22
- "p Rails.application.config.sass.style"
23
- end
24
-
25
- assert_equal 'nil', $last_output.chomp
26
- end
27
- end
28
-
29
- test 'css_compressor config item is not honored in development mode' do
30
- within_rails_app 'alternate_config_project' do
31
- runner 'development' do
32
- "p Rails.application.config.assets.css_compressor"
33
- end
34
-
35
- assert_equal 'nil', $last_output.chomp
36
- end
37
- end
38
-
39
- test 'css_compressor config item is honored if environment is not development' do
40
- within_rails_app 'alternate_config_project' do
41
- runner 'production' do
42
- "puts Rails.application.config.assets.css_compressor"
43
- end
44
-
45
- assert_output /yui/
46
- end
47
- end
48
-
49
- test 'sass uses expanded style by default in development mode' do
50
- within_rails_app 'scss_project' do
51
- runner 'development' do
52
- "puts Rails.application.config.sass.style"
53
- end
54
-
55
- assert_output /expanded/
56
- end
57
- end
58
-
59
- test 'sass not defines compressor in development mode' do
60
- within_rails_app 'scss_project' do
61
- runner 'development' do
62
- "p Rails.application.config.assets.css_compressor"
63
- end
64
-
65
- assert_equal 'nil', $last_output.chomp
66
- end
67
- end
68
-
69
- test 'sass defines compressor by default in test mode' do
70
- within_rails_app 'scss_project' do
71
- runner 'test' do
72
- "puts Rails.application.config.assets.css_compressor"
73
- end
74
-
75
- assert_equal 'sass', $last_output.chomp
76
- end
77
- end
78
-
79
- test 'sass defines compressor by default in production mode' do
80
- within_rails_app 'scss_project' do
81
- runner 'production' do
82
- "puts Rails.application.config.assets.css_compressor"
83
- end
84
-
85
- assert_equal 'sass', $last_output.chomp
86
- end
87
- end
88
-
89
- test 'sprockets require works correctly' do
90
- css_output = sprockets_render('scss_project', 'css_application.css')
91
- assert_match /globbed/, css_output
92
- end
93
-
94
- test 'sass imports work correctly' do
95
- css_output = sprockets_render('scss_project', 'application.css.scss')
96
- assert_match /main/, css_output
97
- assert_match /top-level/, css_output
98
- assert_match /partial-sass/, css_output
99
- assert_match /partial-scss/, css_output
100
- assert_match /sub-folder-relative-sass/, css_output
101
- assert_match /sub-folder-relative-scss/, css_output
102
- assert_match /not-a-partial/, css_output
103
- assert_match /globbed/, css_output
104
- assert_match /nested-glob/, css_output
105
- assert_match /plain-old-css/, css_output
106
- assert_match /another-plain-old-css/, css_output
107
- assert_match /without-css-ext/, css_output
108
- assert_match /css-erb-handler/, css_output
109
- assert_match /scss-erb-handler/, css_output
110
- assert_match /sass-erb-handler/, css_output
111
- assert_match /css-sass-erb-handler/, css_output
112
- assert_match /css-scss-erb-handler/, css_output
113
- assert_match /default-old-css/, css_output
114
- end
115
-
116
- test 'globbed imports work when new file is added' do
117
- project = 'scss_project'
118
- filename = 'application.css.scss'
119
-
120
- within_rails_app(project) do |tmpdir|
121
- asset_output(filename)
122
-
123
- new_file = File.join(tmpdir, 'app', 'assets', 'stylesheets', 'globbed', 'new.scss')
124
- File.open(new_file, 'w') do |file|
125
- file.puts '.new-file-test { color: #000; }'
126
- end
127
-
128
- css_output = asset_output(filename)
129
- assert_match /new-file-test/, css_output
130
- end
131
- end
132
-
133
- test 'sass asset paths work' do
134
- css_output = sprockets_render('scss_project', 'application.css.scss')
135
- assert_match %r{asset-path:\s*"/assets/rails.png"}, css_output, 'asset-path:\s*"/assets/rails.png"'
136
- assert_match %r{asset-url:\s*url\(/assets/rails.png\)}, css_output, 'asset-url:\s*url\(/assets/rails.png\)'
137
- assert_match %r{image-path:\s*"/assets/rails.png"}, css_output, 'image-path:\s*"/assets/rails.png"'
138
- assert_match %r{image-url:\s*url\(/assets/rails.png\)}, css_output, 'image-url:\s*url\(/assets/rails.png\)'
139
- assert_match %r{video-path:\s*"/videos/rails.mp4"}, css_output, 'video-path:\s*"/videos/rails.mp4"'
140
- assert_match %r{video-url:\s*url\(/videos/rails.mp4\)}, css_output, 'video-url:\s*url\(/videos/rails.mp4\)'
141
- assert_match %r{audio-path:\s*"/audios/rails.mp3"}, css_output, 'audio-path:\s*"/audios/rails.mp3"'
142
- assert_match %r{audio-url:\s*url\(/audios/rails.mp3\)}, css_output, 'audio-url:\s*url\(/audios/rails.mp3\)'
143
- assert_match %r{font-path:\s*"/fonts/rails.ttf"}, css_output, 'font-path:\s*"/fonts/rails.ttf"'
144
- assert_match %r{font-url:\s*url\(/fonts/rails.ttf\)}, css_output, 'font-url:\s*url\(/fonts/rails.ttf\)'
145
- assert_match %r{font-url-with-query-hash:\s*url\(/fonts/rails.ttf\?#iefix\)}, css_output, 'font-url:\s*url\(/fonts/rails.ttf?#iefix\)'
146
- assert_match %r{javascript-path:\s*"/javascripts/rails.js"}, css_output, 'javascript-path:\s*"/javascripts/rails.js"'
147
- assert_match %r{javascript-url:\s*url\(/javascripts/rails.js\)}, css_output, 'javascript-url:\s*url\(/javascripts/rails.js\)'
148
- assert_match %r{stylesheet-path:\s*"/stylesheets/rails.css"}, css_output, 'stylesheet-path:\s*"/stylesheets/rails.css"'
149
- assert_match %r{stylesheet-url:\s*url\(/stylesheets/rails.css\)}, css_output, 'stylesheet-url:\s*url\(/stylesheets/rails.css\)'
150
-
151
- asset_data_url_regexp = %r{asset-data-url:\s*url\((.*?)\)}
152
- assert_match asset_data_url_regexp, css_output, 'asset-data-url:\s*url\((.*?)\)'
153
- asset_data_url_match = css_output.match(asset_data_url_regexp)[1]
154
- asset_data_url_expected = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw%2FeHBhY2tldCBiZWdpbj0i77u%2FIiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8%2BIDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCNzY5NDE1QkQ2NkMxMUUwOUUzM0E5Q0E2RTgyQUExQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCNzY5NDE1Q0Q2NkMxMUUwOUUzM0E5Q0E2RTgyQUExQiI%2BIDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkE3MzcyNTQ2RDY2QjExRTA5RTMzQTlDQTZFODJBQTFCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkI3Njk0MTVBRDY2QzExRTA5RTMzQTlDQTZFODJBQTFCIi8%2BIDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY%2BIDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8%2B0HhJ9AAAABBJREFUeNpi%2BP%2F%2FPwNAgAEACPwC%2FtuiTRYAAAAASUVORK5CYII%3D'
155
- assert_equal asset_data_url_expected, asset_data_url_match
156
- end
157
- end
@@ -1,181 +0,0 @@
1
- unless defined?(Bundler)
2
- $stderr.puts "You didn't run bundle exec did you? Try again: bundle exec rake test"
3
- exit 1
4
- end
5
- require 'fileutils'
6
- require 'tmpdir'
7
-
8
- class Sass::Rails::TestCase < ActiveSupport::TestCase
9
-
10
- class ExecutionError < StandardError
11
- attr_accessor :output
12
-
13
- def initialize(message, output = nil)
14
- super(message)
15
- self.output = output
16
- end
17
-
18
- def message
19
- "#{super}\nOutput was:\n#{output}"
20
- end
21
- end
22
-
23
- module SilentError
24
- attr_accessor :output
25
-
26
- def message
27
- "#{super}\nOutput was:\n#{output}"
28
- end
29
- end
30
-
31
- protected
32
-
33
- def fixture_path(path)
34
- File.expand_path("../../fixtures/#{path}", __FILE__)
35
- end
36
-
37
- module TestAssetPaths
38
- attr_accessor :assets
39
- end
40
-
41
- def sprockets_render(project, filename)
42
- within_rails_app(project) do
43
- asset_output(filename)
44
- end
45
- end
46
-
47
- def asset_output(filename)
48
- runcmd "ruby script/rails runner 'puts Rails.application.assets[#{filename.inspect}]'"
49
- end
50
-
51
- def assert_file_exists(filename)
52
- assert File.exists?(filename), "could not find #{filename}. PWD=#{Dir.pwd}\nDid find: #{Dir.glob(File.dirname(filename)+"/*").join(", ")}"
53
- end
54
-
55
- def assert_not_output(match)
56
- assert_no_match match, $last_output
57
- end
58
-
59
- def assert_output(match)
60
- assert $last_output.to_s =~ match, "#{match} was not found in #{$last_output.inspect}"
61
- end
62
-
63
- def assert_line_count(count)
64
- last_count = $last_output.lines.count
65
- assert last_count == count, "Wrong line count, expected: #{count} but got: #{last_count}"
66
- end
67
- # Copies a rails app fixture to a temp directory
68
- # and changes to that directory during the yield.
69
- #
70
- # Automatically changes back to the working directory
71
- # and removes the temp directory when done.
72
- def within_rails_app(name, without_gems = [], gem_options = $gem_options)
73
- sourcedir = File.expand_path("../../fixtures/#{name}", __FILE__)
74
-
75
- Dir.mktmpdir do |tmpdir|
76
- FileUtils.cp_r "#{sourcedir}/.", tmpdir
77
-
78
- Dir.chdir(tmpdir) do
79
- gem_options.each { |gem_name, options| modify_gem_entry gem_name, options }
80
- without_gems.each { |gem_name| remove_gem name }
81
-
82
- yield tmpdir
83
- end
84
- end
85
- end
86
-
87
- def process_gemfile(gemfile = "Gemfile", &blk)
88
- gem_contents = File.readlines(gemfile)
89
- gem_contents.map!(&blk)
90
- gem_contents.compact!
91
-
92
- File.open(gemfile, "w") do |f|
93
- f.print(gem_contents.join(""))
94
- end
95
- end
96
-
97
- def modify_gem_entry(gemname, options, gemfile = "Gemfile")
98
- found = false
99
-
100
- process_gemfile(gemfile) do |line|
101
- if line =~ /gem *(["'])#{Regexp.escape(gemname)}\1/
102
- found = true
103
- gem_entry(gemname, options) + "\n"
104
- else
105
- line
106
- end
107
- end
108
-
109
- unless found
110
- File.open(gemfile, "a") do |f|
111
- f.print("\n#{gem_entry(gemname, options)}\n")
112
- end
113
- end
114
- end
115
-
116
- def gem_entry(gemname, options)
117
- entry = %Q{gem "#{gemname}", "~> #{options[:version]}"}
118
- entry += ", :path => #{options[:path].inspect}" if options[:path]
119
- entry
120
- end
121
-
122
- def remove_gem(gemname)
123
- process_gemfile(gemfile) do |line|
124
- line unless line =~ /gem *(["'])#{Regexp.escape(gemname)}\1/
125
- end
126
- end
127
-
128
- def silently
129
- output = StringIO.new
130
- $stderr, old_stderr = output, $stderr
131
- $stdout, old_stdout = output, $stdout
132
-
133
- begin
134
- yield
135
- rescue ExecutionError => e
136
- raise
137
- rescue => e
138
- e.extend(SilentError)
139
- e.output = output.string
140
- raise
141
- end
142
- ensure
143
- $stderr = old_stderr
144
- $stdout = old_stdout
145
- end
146
-
147
- # executes a system command
148
- # raises an error if it does not complete successfully
149
- # returns the output as a string if it does complete successfully
150
- def runcmd(cmd, working_directory = Dir.pwd, clean_env = true, gemfile = "Gemfile", env = {})
151
- # There's a bug in bundler where with_clean_env doesn't clear out the BUNDLE_GEMFILE environment setting
152
- # https://github.com/carlhuda/bundler/issues/1133
153
- env["BUNDLE_GEMFILE"] = "#{working_directory}/#{gemfile}" if clean_env
154
-
155
- todo = Proc.new do
156
- r, w = IO.pipe
157
- Kernel.spawn(env, cmd, :out => w , :err => w, :chdir => working_directory)
158
- w.close
159
- Process.wait
160
- output = r.read
161
- r.close
162
-
163
- unless $?.exitstatus == 0
164
- raise ExecutionError, "Command failed with exit status #{$?.exitstatus}: #{cmd}", output
165
- end
166
-
167
- $last_output = output
168
- end
169
-
170
- if clean_env
171
- Bundler.with_clean_env(&todo)
172
- else
173
- todo.call
174
- end
175
- end
176
-
177
- # A thin wrapper around runcmd to be DRY in tests
178
- def runner(environment)
179
- runcmd "ruby script/rails runner '#{yield}'", Dir.pwd, true, 'Gemfile', {'RAILS_ENV' => environment}
180
- end
181
- end