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