1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349
|
Description: Restore compatibility with sprockets >= 2.12
This patch is a combination of the following upstream commits:
- e56c2fbf60ef2bd879aae6f6163c90326b4017be
- bd63297c31aceb079595c3a3d9007b0e4df505b6
- a62bdf85e56a678aa5fded3d4ed0d10bbc0b7a7b
.
Changes to non-essential files such as Gemfile's were dropped.
.
metadata.yml, which is specific to the Debian package, was modified to reflect
the changes to sass-rails.gemspec.
Author:
Rafael Mendonça França <rafaelmfranca@gmail.com>,
Matthew Draper <matthew@trebex.net>,
Reviewed-By: Antonio Terceiro <terceiro@debian.org>
--- a/lib/sass/rails/railtie.rb
+++ b/lib/sass/rails/railtie.rb
@@ -52,6 +52,9 @@ module Sass::Rails
end
if app.assets
+ app.assets.register_engine '.sass', Sass::Rails::SassTemplate
+ app.assets.register_engine '.scss', Sass::Rails::ScssTemplate
+
app.assets.context_class.extend(SassContext)
app.assets.context_class.sass_config = app.config.sass
end
--- a/lib/sass/rails/template.rb
+++ b/lib/sass/rails/template.rb
@@ -1,28 +1,42 @@
require "sprockets/sass_template"
-module Sprockets
- class SassTemplate
- def evaluate(context, locals, &block)
- cache_store = SassCacheStore.new(context.environment)
-
- options = {
- :filename => eval_file,
- :line => line,
- :syntax => syntax,
- :cache_store => cache_store,
- :importer => SassImporter.new(context, context.pathname),
- :load_paths => context.environment.paths.map { |path| SassImporter.new(context, path) },
- :sprockets => {
- :context => context,
- :environment => context.environment
+module Sass
+ module Rails
+ class SassTemplate < Sprockets::SassTemplate
+
+ def evaluate(context, locals, &block)
+ cache_store = Sprockets::SassCacheStore.new(context.environment)
+
+ options = {
+ :filename => eval_file,
+ :line => line,
+ :syntax => syntax,
+ :cache_store => cache_store,
+ :importer => SassImporter.new(context, context.pathname.to_s),
+ :load_paths => context.environment.paths.map { |path| SassImporter.new(context, path.to_s) },
+ :sprockets => {
+ :context => context,
+ :environment => context.environment
+ }
}
- }
- sass_config = context.environment.context_class.sass_config.merge(options)
- ::Sass::Engine.new(data, sass_config).render
- rescue ::Sass::SyntaxError => e
- context.__LINE__ = e.sass_backtrace.first[:line]
- raise e
+ sass_config = context.environment.context_class.sass_config.merge(options)
+
+ ::Sass::Engine.new(data, sass_config).render
+ rescue ::Sass::SyntaxError => e
+ context.__LINE__ = e.sass_backtrace.first[:line]
+ raise e
+ end
+ end
+
+ class ScssTemplate < SassTemplate
+ def self.default_mime_type
+ 'text/css'
+ end
+
+ def syntax
+ :scss
+ end
end
end
end
--- a/sass-rails.gemspec
+++ b/sass-rails.gemspec
@@ -15,10 +15,10 @@ Gem::Specification.new do |s|
s.rubyforge_project = "sass-rails"
- s.add_dependency 'sass', '~> 3.2.0'
+ s.add_dependency 'sass', '~> 3.2'
s.add_dependency 'railties', '>= 4.0.0', '< 5.0'
s.add_dependency 'sprockets-rails', '~> 2.0'
- s.add_dependency 'sprockets', '~> 2.8', '<= 2.11.0'
+ s.add_dependency 'sprockets', '~> 2.12'
s.files = [".gitignore",".travis.yml","CHANGELOG.md","Gemfile","MIT-LICENSE","README.md","Rakefile","lib/rails/generators/sass/assets/assets_generator.rb","lib/rails/generators/sass/assets/templates/stylesheet.css.sass","lib/rails/generators/sass/scaffold/scaffold_generator.rb","lib/rails/generators/sass_scaffold.rb","lib/rails/generators/scss/assets/assets_generator.rb","lib/rails/generators/scss/assets/templates/stylesheet.css.scss","lib/rails/generators/scss/scaffold/scaffold_generator.rb","lib/sass-rails.rb","lib/sass/rails.rb","lib/sass/rails/helpers.rb","lib/sass/rails/importer.rb","lib/sass/rails/logger.rb","lib/sass/rails/railtie.rb","lib/sass/rails/template.rb","lib/sass/rails/version.rb","sass-rails.gemspec","sass-rails.gemspec.erb","test/fixtures/alternate_config_project/.gitignore","test/fixtures/alternate_config_project/Gemfile","test/fixtures/alternate_config_project/README","test/fixtures/alternate_config_project/Rakefile","test/fixtures/alternate_config_project/app/assets/images/1x1.png","test/fixtures/alternate_config_project/app/assets/images/rails.png","test/fixtures/alternate_config_project/app/assets/javascripts/application.js","test/fixtures/alternate_config_project/app/assets/stylesheets/_top_level_partial.css.scss","test/fixtures/alternate_config_project/app/assets/stylesheets/application.css.scss","test/fixtures/alternate_config_project/app/assets/stylesheets/css_application.css","test/fixtures/alternate_config_project/app/assets/stylesheets/globbed/globbed.css.scss","test/fixtures/alternate_config_project/app/assets/stylesheets/globbed/nested/nested_glob.css.scss","test/fixtures/alternate_config_project/app/assets/stylesheets/partials/_sass_import.css.sass","test/fixtures/alternate_config_project/app/assets/stylesheets/partials/_scss_import.css.scss","test/fixtures/alternate_config_project/app/assets/stylesheets/partials/_without_css_ext.scss","test/fixtures/alternate_config_project/app/assets/stylesheets/partials/subfolder/_relative_sass.css.sass","test/fixtures/alternate_config_project/app/assets/stylesheets/partials/subfolder/_relative_scss.css.scss","test/fixtures/alternate_config_project/app/assets/stylesheets/partials/subfolder/relative_not_a_partial.css.scss","test/fixtures/alternate_config_project/app/assets/stylesheets/subfolder/another_plain.css","test/fixtures/alternate_config_project/app/assets/stylesheets/subfolder/plain.css","test/fixtures/alternate_config_project/app/assets/stylesheets/subfolder/second_level.css.scss","test/fixtures/alternate_config_project/app/controllers/application_controller.rb","test/fixtures/alternate_config_project/app/helpers/application_helper.rb","test/fixtures/alternate_config_project/app/mailers/.gitkeep","test/fixtures/alternate_config_project/app/models/.gitkeep","test/fixtures/alternate_config_project/app/views/layouts/application.html.erb","test/fixtures/alternate_config_project/config.ru","test/fixtures/alternate_config_project/config/application.rb","test/fixtures/alternate_config_project/config/boot.rb","test/fixtures/alternate_config_project/config/database.yml","test/fixtures/alternate_config_project/config/environment.rb","test/fixtures/alternate_config_project/config/environments/development.rb","test/fixtures/alternate_config_project/config/environments/production.rb","test/fixtures/alternate_config_project/config/environments/test.rb","test/fixtures/alternate_config_project/config/initializers/backtrace_silencers.rb","test/fixtures/alternate_config_project/config/initializers/inflections.rb","test/fixtures/alternate_config_project/config/initializers/mime_types.rb","test/fixtures/alternate_config_project/config/initializers/secret_token.rb","test/fixtures/alternate_config_project/config/initializers/session_store.rb","test/fixtures/alternate_config_project/config/initializers/wrap_parameters.rb","test/fixtures/alternate_config_project/config/locales/en.yml","test/fixtures/alternate_config_project/config/routes.rb","test/fixtures/alternate_config_project/db/seeds.rb","test/fixtures/alternate_config_project/doc/README_FOR_APP","test/fixtures/alternate_config_project/lib/tasks/.gitkeep","test/fixtures/alternate_config_project/log/.gitkeep","test/fixtures/alternate_config_project/public/404.html","test/fixtures/alternate_config_project/public/422.html","test/fixtures/alternate_config_project/public/500.html","test/fixtures/alternate_config_project/public/favicon.ico","test/fixtures/alternate_config_project/public/index.html","test/fixtures/alternate_config_project/public/robots.txt","test/fixtures/alternate_config_project/script/rails","test/fixtures/alternate_config_project/vendor/assets/stylesheets/.gitkeep","test/fixtures/alternate_config_project/vendor/plugins/.gitkeep","test/fixtures/engine_project/.gitignore","test/fixtures/engine_project/Gemfile","test/fixtures/engine_project/MIT-LICENSE","test/fixtures/engine_project/README.rdoc","test/fixtures/engine_project/Rakefile","test/fixtures/engine_project/app/assets/images/engine_project/.keep","test/fixtures/engine_project/app/assets/javascripts/engine_project/application.js","test/fixtures/engine_project/app/assets/stylesheets/engine_project/application.css","test/fixtures/engine_project/app/controllers/engine_project/application_controller.rb","test/fixtures/engine_project/app/helpers/engine_project/application_helper.rb","test/fixtures/engine_project/app/views/layouts/engine_project/application.html.erb","test/fixtures/engine_project/config/routes.rb","test/fixtures/engine_project/engine_project.gemspec","test/fixtures/engine_project/lib/engine_project.rb","test/fixtures/engine_project/lib/engine_project/engine.rb","test/fixtures/engine_project/lib/engine_project/version.rb","test/fixtures/engine_project/lib/tasks/engine_project_tasks.rake","test/fixtures/engine_project/script/rails","test/fixtures/engine_project/test/dummy/README.rdoc","test/fixtures/engine_project/test/dummy/Rakefile","test/fixtures/engine_project/test/dummy/app/assets/javascripts/application.js","test/fixtures/engine_project/test/dummy/app/assets/stylesheets/application.css","test/fixtures/engine_project/test/dummy/app/controllers/application_controller.rb","test/fixtures/engine_project/test/dummy/app/controllers/concerns/.keep","test/fixtures/engine_project/test/dummy/app/helpers/application_helper.rb","test/fixtures/engine_project/test/dummy/app/mailers/.keep","test/fixtures/engine_project/test/dummy/app/models/.keep","test/fixtures/engine_project/test/dummy/app/models/concerns/.keep","test/fixtures/engine_project/test/dummy/app/views/layouts/application.html.erb","test/fixtures/engine_project/test/dummy/bin/bundle","test/fixtures/engine_project/test/dummy/bin/rails","test/fixtures/engine_project/test/dummy/bin/rake","test/fixtures/engine_project/test/dummy/config.ru","test/fixtures/engine_project/test/dummy/config/application.rb","test/fixtures/engine_project/test/dummy/config/boot.rb","test/fixtures/engine_project/test/dummy/config/database.yml","test/fixtures/engine_project/test/dummy/config/environment.rb","test/fixtures/engine_project/test/dummy/config/environments/development.rb","test/fixtures/engine_project/test/dummy/config/environments/production.rb","test/fixtures/engine_project/test/dummy/config/environments/test.rb","test/fixtures/engine_project/test/dummy/config/initializers/backtrace_silencers.rb","test/fixtures/engine_project/test/dummy/config/initializers/filter_parameter_logging.rb","test/fixtures/engine_project/test/dummy/config/initializers/inflections.rb","test/fixtures/engine_project/test/dummy/config/initializers/mime_types.rb","test/fixtures/engine_project/test/dummy/config/initializers/secret_token.rb","test/fixtures/engine_project/test/dummy/config/initializers/session_store.rb","test/fixtures/engine_project/test/dummy/config/initializers/wrap_parameters.rb","test/fixtures/engine_project/test/dummy/config/locales/en.yml","test/fixtures/engine_project/test/dummy/config/routes.rb","test/fixtures/engine_project/test/dummy/lib/assets/.keep","test/fixtures/engine_project/test/dummy/log/.keep","test/fixtures/engine_project/test/dummy/public/404.html","test/fixtures/engine_project/test/dummy/public/422.html","test/fixtures/engine_project/test/dummy/public/500.html","test/fixtures/engine_project/test/dummy/public/favicon.ico","test/fixtures/sass_project/.gitignore","test/fixtures/sass_project/Gemfile","test/fixtures/sass_project/README","test/fixtures/sass_project/Rakefile","test/fixtures/sass_project/app/assets/images/rails.png","test/fixtures/sass_project/app/assets/javascripts/application.js","test/fixtures/sass_project/app/assets/stylesheets/application.css","test/fixtures/sass_project/app/controllers/application_controller.rb","test/fixtures/sass_project/app/helpers/application_helper.rb","test/fixtures/sass_project/app/mailers/.gitkeep","test/fixtures/sass_project/app/models/.gitkeep","test/fixtures/sass_project/app/views/layouts/application.html.erb","test/fixtures/sass_project/config.ru","test/fixtures/sass_project/config/application.rb","test/fixtures/sass_project/config/boot.rb","test/fixtures/sass_project/config/database.yml","test/fixtures/sass_project/config/environment.rb","test/fixtures/sass_project/config/environments/development.rb","test/fixtures/sass_project/config/environments/production.rb","test/fixtures/sass_project/config/environments/test.rb","test/fixtures/sass_project/config/initializers/backtrace_silencers.rb","test/fixtures/sass_project/config/initializers/inflections.rb","test/fixtures/sass_project/config/initializers/mime_types.rb","test/fixtures/sass_project/config/initializers/secret_token.rb","test/fixtures/sass_project/config/initializers/session_store.rb","test/fixtures/sass_project/config/initializers/wrap_parameters.rb","test/fixtures/sass_project/config/locales/en.yml","test/fixtures/sass_project/config/routes.rb","test/fixtures/sass_project/db/seeds.rb","test/fixtures/sass_project/doc/README_FOR_APP","test/fixtures/sass_project/lib/tasks/.gitkeep","test/fixtures/sass_project/log/.gitkeep","test/fixtures/sass_project/public/404.html","test/fixtures/sass_project/public/422.html","test/fixtures/sass_project/public/500.html","test/fixtures/sass_project/public/favicon.ico","test/fixtures/sass_project/public/index.html","test/fixtures/sass_project/public/robots.txt","test/fixtures/sass_project/script/rails","test/fixtures/sass_project/vendor/assets/stylesheets/.gitkeep","test/fixtures/sass_project/vendor/plugins/.gitkeep","test/fixtures/scss_project/.gitignore","test/fixtures/scss_project/Gemfile","test/fixtures/scss_project/README","test/fixtures/scss_project/Rakefile","test/fixtures/scss_project/app/assets/images/1x1.png","test/fixtures/scss_project/app/assets/images/rails.png","test/fixtures/scss_project/app/assets/javascripts/application.js","test/fixtures/scss_project/app/assets/stylesheets/_top_level_partial.css.scss","test/fixtures/scss_project/app/assets/stylesheets/application.css.scss","test/fixtures/scss_project/app/assets/stylesheets/css_application.css","test/fixtures/scss_project/app/assets/stylesheets/css_erb_handler.css.erb","test/fixtures/scss_project/app/assets/stylesheets/css_sass_erb_handler.css.sass.erb","test/fixtures/scss_project/app/assets/stylesheets/css_scss_erb_handler.css.scss.erb","test/fixtures/scss_project/app/assets/stylesheets/globbed/globbed.css.scss","test/fixtures/scss_project/app/assets/stylesheets/globbed/nested/nested_glob.css.scss","test/fixtures/scss_project/app/assets/stylesheets/partials/_sass_import.css.sass","test/fixtures/scss_project/app/assets/stylesheets/partials/_scss_import.css.scss","test/fixtures/scss_project/app/assets/stylesheets/partials/_without_css_ext.scss","test/fixtures/scss_project/app/assets/stylesheets/partials/subfolder/_relative_sass.css.sass","test/fixtures/scss_project/app/assets/stylesheets/partials/subfolder/_relative_scss.css.scss","test/fixtures/scss_project/app/assets/stylesheets/partials/subfolder/relative_not_a_partial.css.scss","test/fixtures/scss_project/app/assets/stylesheets/sass_erb_handler.sass.erb","test/fixtures/scss_project/app/assets/stylesheets/scss_erb_handler.scss.erb","test/fixtures/scss_project/app/assets/stylesheets/subfolder/_defaults.css.scss","test/fixtures/scss_project/app/assets/stylesheets/subfolder/another_plain.css","test/fixtures/scss_project/app/assets/stylesheets/subfolder/plain.css","test/fixtures/scss_project/app/assets/stylesheets/subfolder/second_level.css.scss","test/fixtures/scss_project/app/controllers/application_controller.rb","test/fixtures/scss_project/app/helpers/application_helper.rb","test/fixtures/scss_project/app/mailers/.gitkeep","test/fixtures/scss_project/app/models/.gitkeep","test/fixtures/scss_project/app/views/layouts/application.html.erb","test/fixtures/scss_project/config.ru","test/fixtures/scss_project/config/application.rb","test/fixtures/scss_project/config/boot.rb","test/fixtures/scss_project/config/database.yml","test/fixtures/scss_project/config/environment.rb","test/fixtures/scss_project/config/environments/development.rb","test/fixtures/scss_project/config/environments/production.rb","test/fixtures/scss_project/config/environments/test.rb","test/fixtures/scss_project/config/initializers/backtrace_silencers.rb","test/fixtures/scss_project/config/initializers/inflections.rb","test/fixtures/scss_project/config/initializers/mime_types.rb","test/fixtures/scss_project/config/initializers/postprocessor.rb","test/fixtures/scss_project/config/initializers/secret_token.rb","test/fixtures/scss_project/config/initializers/session_store.rb","test/fixtures/scss_project/config/initializers/wrap_parameters.rb","test/fixtures/scss_project/config/locales/en.yml","test/fixtures/scss_project/config/routes.rb","test/fixtures/scss_project/db/seeds.rb","test/fixtures/scss_project/doc/README_FOR_APP","test/fixtures/scss_project/lib/tasks/.gitkeep","test/fixtures/scss_project/log/.gitkeep","test/fixtures/scss_project/public/404.html","test/fixtures/scss_project/public/422.html","test/fixtures/scss_project/public/500.html","test/fixtures/scss_project/public/favicon.ico","test/fixtures/scss_project/public/index.html","test/fixtures/scss_project/public/robots.txt","test/fixtures/scss_project/script/rails","test/fixtures/scss_project/vendor/assets/stylesheets/.gitkeep","test/fixtures/scss_project/vendor/plugins/.gitkeep","test/gemfiles/Gemfile-master","test/sass_rails_generators_test.rb","test/sass_rails_logger_test.rb","test/sass_rails_test.rb","test/support/sass_rails_test_case.rb","test/test_helper.rb"]
s.test_files = ["test/fixtures/alternate_config_project/.gitignore","test/fixtures/alternate_config_project/Gemfile","test/fixtures/alternate_config_project/README","test/fixtures/alternate_config_project/Rakefile","test/fixtures/alternate_config_project/app/assets/images/1x1.png","test/fixtures/alternate_config_project/app/assets/images/rails.png","test/fixtures/alternate_config_project/app/assets/javascripts/application.js","test/fixtures/alternate_config_project/app/assets/stylesheets/_top_level_partial.css.scss","test/fixtures/alternate_config_project/app/assets/stylesheets/application.css.scss","test/fixtures/alternate_config_project/app/assets/stylesheets/css_application.css","test/fixtures/alternate_config_project/app/assets/stylesheets/globbed/globbed.css.scss","test/fixtures/alternate_config_project/app/assets/stylesheets/globbed/nested/nested_glob.css.scss","test/fixtures/alternate_config_project/app/assets/stylesheets/partials/_sass_import.css.sass","test/fixtures/alternate_config_project/app/assets/stylesheets/partials/_scss_import.css.scss","test/fixtures/alternate_config_project/app/assets/stylesheets/partials/_without_css_ext.scss","test/fixtures/alternate_config_project/app/assets/stylesheets/partials/subfolder/_relative_sass.css.sass","test/fixtures/alternate_config_project/app/assets/stylesheets/partials/subfolder/_relative_scss.css.scss","test/fixtures/alternate_config_project/app/assets/stylesheets/partials/subfolder/relative_not_a_partial.css.scss","test/fixtures/alternate_config_project/app/assets/stylesheets/subfolder/another_plain.css","test/fixtures/alternate_config_project/app/assets/stylesheets/subfolder/plain.css","test/fixtures/alternate_config_project/app/assets/stylesheets/subfolder/second_level.css.scss","test/fixtures/alternate_config_project/app/controllers/application_controller.rb","test/fixtures/alternate_config_project/app/helpers/application_helper.rb","test/fixtures/alternate_config_project/app/mailers/.gitkeep","test/fixtures/alternate_config_project/app/models/.gitkeep","test/fixtures/alternate_config_project/app/views/layouts/application.html.erb","test/fixtures/alternate_config_project/config.ru","test/fixtures/alternate_config_project/config/application.rb","test/fixtures/alternate_config_project/config/boot.rb","test/fixtures/alternate_config_project/config/database.yml","test/fixtures/alternate_config_project/config/environment.rb","test/fixtures/alternate_config_project/config/environments/development.rb","test/fixtures/alternate_config_project/config/environments/production.rb","test/fixtures/alternate_config_project/config/environments/test.rb","test/fixtures/alternate_config_project/config/initializers/backtrace_silencers.rb","test/fixtures/alternate_config_project/config/initializers/inflections.rb","test/fixtures/alternate_config_project/config/initializers/mime_types.rb","test/fixtures/alternate_config_project/config/initializers/secret_token.rb","test/fixtures/alternate_config_project/config/initializers/session_store.rb","test/fixtures/alternate_config_project/config/initializers/wrap_parameters.rb","test/fixtures/alternate_config_project/config/locales/en.yml","test/fixtures/alternate_config_project/config/routes.rb","test/fixtures/alternate_config_project/db/seeds.rb","test/fixtures/alternate_config_project/doc/README_FOR_APP","test/fixtures/alternate_config_project/lib/tasks/.gitkeep","test/fixtures/alternate_config_project/log/.gitkeep","test/fixtures/alternate_config_project/public/404.html","test/fixtures/alternate_config_project/public/422.html","test/fixtures/alternate_config_project/public/500.html","test/fixtures/alternate_config_project/public/favicon.ico","test/fixtures/alternate_config_project/public/index.html","test/fixtures/alternate_config_project/public/robots.txt","test/fixtures/alternate_config_project/script/rails","test/fixtures/alternate_config_project/vendor/assets/stylesheets/.gitkeep","test/fixtures/alternate_config_project/vendor/plugins/.gitkeep","test/fixtures/engine_project/.gitignore","test/fixtures/engine_project/Gemfile","test/fixtures/engine_project/MIT-LICENSE","test/fixtures/engine_project/README.rdoc","test/fixtures/engine_project/Rakefile","test/fixtures/engine_project/app/assets/images/engine_project/.keep","test/fixtures/engine_project/app/assets/javascripts/engine_project/application.js","test/fixtures/engine_project/app/assets/stylesheets/engine_project/application.css","test/fixtures/engine_project/app/controllers/engine_project/application_controller.rb","test/fixtures/engine_project/app/helpers/engine_project/application_helper.rb","test/fixtures/engine_project/app/views/layouts/engine_project/application.html.erb","test/fixtures/engine_project/config/routes.rb","test/fixtures/engine_project/engine_project.gemspec","test/fixtures/engine_project/lib/engine_project.rb","test/fixtures/engine_project/lib/engine_project/engine.rb","test/fixtures/engine_project/lib/engine_project/version.rb","test/fixtures/engine_project/lib/tasks/engine_project_tasks.rake","test/fixtures/engine_project/script/rails","test/fixtures/engine_project/test/dummy/README.rdoc","test/fixtures/engine_project/test/dummy/Rakefile","test/fixtures/engine_project/test/dummy/app/assets/javascripts/application.js","test/fixtures/engine_project/test/dummy/app/assets/stylesheets/application.css","test/fixtures/engine_project/test/dummy/app/controllers/application_controller.rb","test/fixtures/engine_project/test/dummy/app/controllers/concerns/.keep","test/fixtures/engine_project/test/dummy/app/helpers/application_helper.rb","test/fixtures/engine_project/test/dummy/app/mailers/.keep","test/fixtures/engine_project/test/dummy/app/models/.keep","test/fixtures/engine_project/test/dummy/app/models/concerns/.keep","test/fixtures/engine_project/test/dummy/app/views/layouts/application.html.erb","test/fixtures/engine_project/test/dummy/bin/bundle","test/fixtures/engine_project/test/dummy/bin/rails","test/fixtures/engine_project/test/dummy/bin/rake","test/fixtures/engine_project/test/dummy/config.ru","test/fixtures/engine_project/test/dummy/config/application.rb","test/fixtures/engine_project/test/dummy/config/boot.rb","test/fixtures/engine_project/test/dummy/config/database.yml","test/fixtures/engine_project/test/dummy/config/environment.rb","test/fixtures/engine_project/test/dummy/config/environments/development.rb","test/fixtures/engine_project/test/dummy/config/environments/production.rb","test/fixtures/engine_project/test/dummy/config/environments/test.rb","test/fixtures/engine_project/test/dummy/config/initializers/backtrace_silencers.rb","test/fixtures/engine_project/test/dummy/config/initializers/filter_parameter_logging.rb","test/fixtures/engine_project/test/dummy/config/initializers/inflections.rb","test/fixtures/engine_project/test/dummy/config/initializers/mime_types.rb","test/fixtures/engine_project/test/dummy/config/initializers/secret_token.rb","test/fixtures/engine_project/test/dummy/config/initializers/session_store.rb","test/fixtures/engine_project/test/dummy/config/initializers/wrap_parameters.rb","test/fixtures/engine_project/test/dummy/config/locales/en.yml","test/fixtures/engine_project/test/dummy/config/routes.rb","test/fixtures/engine_project/test/dummy/lib/assets/.keep","test/fixtures/engine_project/test/dummy/log/.keep","test/fixtures/engine_project/test/dummy/public/404.html","test/fixtures/engine_project/test/dummy/public/422.html","test/fixtures/engine_project/test/dummy/public/500.html","test/fixtures/engine_project/test/dummy/public/favicon.ico","test/fixtures/sass_project/.gitignore","test/fixtures/sass_project/Gemfile","test/fixtures/sass_project/README","test/fixtures/sass_project/Rakefile","test/fixtures/sass_project/app/assets/images/rails.png","test/fixtures/sass_project/app/assets/javascripts/application.js","test/fixtures/sass_project/app/assets/stylesheets/application.css","test/fixtures/sass_project/app/controllers/application_controller.rb","test/fixtures/sass_project/app/helpers/application_helper.rb","test/fixtures/sass_project/app/mailers/.gitkeep","test/fixtures/sass_project/app/models/.gitkeep","test/fixtures/sass_project/app/views/layouts/application.html.erb","test/fixtures/sass_project/config.ru","test/fixtures/sass_project/config/application.rb","test/fixtures/sass_project/config/boot.rb","test/fixtures/sass_project/config/database.yml","test/fixtures/sass_project/config/environment.rb","test/fixtures/sass_project/config/environments/development.rb","test/fixtures/sass_project/config/environments/production.rb","test/fixtures/sass_project/config/environments/test.rb","test/fixtures/sass_project/config/initializers/backtrace_silencers.rb","test/fixtures/sass_project/config/initializers/inflections.rb","test/fixtures/sass_project/config/initializers/mime_types.rb","test/fixtures/sass_project/config/initializers/secret_token.rb","test/fixtures/sass_project/config/initializers/session_store.rb","test/fixtures/sass_project/config/initializers/wrap_parameters.rb","test/fixtures/sass_project/config/locales/en.yml","test/fixtures/sass_project/config/routes.rb","test/fixtures/sass_project/db/seeds.rb","test/fixtures/sass_project/doc/README_FOR_APP","test/fixtures/sass_project/lib/tasks/.gitkeep","test/fixtures/sass_project/log/.gitkeep","test/fixtures/sass_project/public/404.html","test/fixtures/sass_project/public/422.html","test/fixtures/sass_project/public/500.html","test/fixtures/sass_project/public/favicon.ico","test/fixtures/sass_project/public/index.html","test/fixtures/sass_project/public/robots.txt","test/fixtures/sass_project/script/rails","test/fixtures/sass_project/vendor/assets/stylesheets/.gitkeep","test/fixtures/sass_project/vendor/plugins/.gitkeep","test/fixtures/scss_project/.gitignore","test/fixtures/scss_project/Gemfile","test/fixtures/scss_project/README","test/fixtures/scss_project/Rakefile","test/fixtures/scss_project/app/assets/images/1x1.png","test/fixtures/scss_project/app/assets/images/rails.png","test/fixtures/scss_project/app/assets/javascripts/application.js","test/fixtures/scss_project/app/assets/stylesheets/_top_level_partial.css.scss","test/fixtures/scss_project/app/assets/stylesheets/application.css.scss","test/fixtures/scss_project/app/assets/stylesheets/css_application.css","test/fixtures/scss_project/app/assets/stylesheets/css_erb_handler.css.erb","test/fixtures/scss_project/app/assets/stylesheets/css_sass_erb_handler.css.sass.erb","test/fixtures/scss_project/app/assets/stylesheets/css_scss_erb_handler.css.scss.erb","test/fixtures/scss_project/app/assets/stylesheets/globbed/globbed.css.scss","test/fixtures/scss_project/app/assets/stylesheets/globbed/nested/nested_glob.css.scss","test/fixtures/scss_project/app/assets/stylesheets/partials/_sass_import.css.sass","test/fixtures/scss_project/app/assets/stylesheets/partials/_scss_import.css.scss","test/fixtures/scss_project/app/assets/stylesheets/partials/_without_css_ext.scss","test/fixtures/scss_project/app/assets/stylesheets/partials/subfolder/_relative_sass.css.sass","test/fixtures/scss_project/app/assets/stylesheets/partials/subfolder/_relative_scss.css.scss","test/fixtures/scss_project/app/assets/stylesheets/partials/subfolder/relative_not_a_partial.css.scss","test/fixtures/scss_project/app/assets/stylesheets/sass_erb_handler.sass.erb","test/fixtures/scss_project/app/assets/stylesheets/scss_erb_handler.scss.erb","test/fixtures/scss_project/app/assets/stylesheets/subfolder/_defaults.css.scss","test/fixtures/scss_project/app/assets/stylesheets/subfolder/another_plain.css","test/fixtures/scss_project/app/assets/stylesheets/subfolder/plain.css","test/fixtures/scss_project/app/assets/stylesheets/subfolder/second_level.css.scss","test/fixtures/scss_project/app/controllers/application_controller.rb","test/fixtures/scss_project/app/helpers/application_helper.rb","test/fixtures/scss_project/app/mailers/.gitkeep","test/fixtures/scss_project/app/models/.gitkeep","test/fixtures/scss_project/app/views/layouts/application.html.erb","test/fixtures/scss_project/config.ru","test/fixtures/scss_project/config/application.rb","test/fixtures/scss_project/config/boot.rb","test/fixtures/scss_project/config/database.yml","test/fixtures/scss_project/config/environment.rb","test/fixtures/scss_project/config/environments/development.rb","test/fixtures/scss_project/config/environments/production.rb","test/fixtures/scss_project/config/environments/test.rb","test/fixtures/scss_project/config/initializers/backtrace_silencers.rb","test/fixtures/scss_project/config/initializers/inflections.rb","test/fixtures/scss_project/config/initializers/mime_types.rb","test/fixtures/scss_project/config/initializers/postprocessor.rb","test/fixtures/scss_project/config/initializers/secret_token.rb","test/fixtures/scss_project/config/initializers/session_store.rb","test/fixtures/scss_project/config/initializers/wrap_parameters.rb","test/fixtures/scss_project/config/locales/en.yml","test/fixtures/scss_project/config/routes.rb","test/fixtures/scss_project/db/seeds.rb","test/fixtures/scss_project/doc/README_FOR_APP","test/fixtures/scss_project/lib/tasks/.gitkeep","test/fixtures/scss_project/log/.gitkeep","test/fixtures/scss_project/public/404.html","test/fixtures/scss_project/public/422.html","test/fixtures/scss_project/public/500.html","test/fixtures/scss_project/public/favicon.ico","test/fixtures/scss_project/public/index.html","test/fixtures/scss_project/public/robots.txt","test/fixtures/scss_project/script/rails","test/fixtures/scss_project/vendor/assets/stylesheets/.gitkeep","test/fixtures/scss_project/vendor/plugins/.gitkeep","test/gemfiles/Gemfile-master","test/sass_rails_generators_test.rb","test/sass_rails_logger_test.rb","test/sass_rails_test.rb","test/support/sass_rails_test_case.rb","test/test_helper.rb"]
--- a/sass-rails.gemspec.erb
+++ b/sass-rails.gemspec.erb
@@ -15,10 +15,10 @@ Gem::Specification.new do |s|
s.rubyforge_project = "sass-rails"
- s.add_dependency 'sass', '~> 3.2.0'
+ s.add_dependency 'sass', '~> 3.2'
s.add_dependency 'railties', '>= 4.0.0', '< 5.0'
s.add_dependency 'sprockets-rails', '~> 2.0'
- s.add_dependency 'sprockets', '~> 2.8', '<= 2.11.0'
+ s.add_dependency 'sprockets', '~> 2.12'
s.files = [<%= files.map(&:inspect).join ',' %>]
s.test_files = [<%= test_files.map(&:inspect).join ',' %>]
--- a/lib/sass/rails/importer.rb
+++ b/lib/sass/rails/importer.rb
@@ -1,104 +1,96 @@
require 'sprockets/sass_importer'
-module Sprockets
- class SassImporter < Sass::Importers::Filesystem
- GLOB = /\*|\[.+\]/
-
- attr_reader :context
- private :context
-
- def extensions
- {
- 'css' => :scss,
- 'css.scss' => :scss,
- 'css.sass' => :sass,
- 'css.erb' => :scss,
- 'scss.erb' => :scss,
- 'sass.erb' => :sass,
- 'css.scss.erb' => :scss,
- 'css.sass.erb' => :sass
- }.merge!(super)
- end
-
- def find_relative(name, base, options)
- if name =~ GLOB
- glob_imports(name, Pathname.new(base), options)
- else
- engine_from_path(name, File.dirname(base), options)
- end
- end
-
- def find(name, options)
- if name =~ GLOB
- nil # globs must be relative
- else
- engine_from_path(name, root, options)
- end
- end
-
- def each_globbed_file(glob, base_pathname, options)
- Dir["#{base_pathname}/#{glob}"].sort.each do |filename|
- next if filename == options[:filename]
- yield filename if File.directory?(filename) || context.asset_requirable?(filename)
+module Sass
+ module Rails
+ class SassImporter < Sass::Importers::Filesystem
+ GLOB = /\*|\[.+\]/
+
+ attr_reader :context
+ def initialize(context, *args)
+ @context = context
+ super(*args)
+ end
+
+ def extensions
+ {
+ 'css' => :scss,
+ 'css.scss' => :scss,
+ 'css.sass' => :sass,
+ 'css.erb' => :scss,
+ 'scss.erb' => :scss,
+ 'sass.erb' => :sass,
+ 'css.scss.erb' => :scss,
+ 'css.sass.erb' => :sass
+ }.merge!(super)
+ end
+
+ def find_relative(name, base, options)
+ if name =~ GLOB
+ glob_imports(name, Pathname.new(base), options)
+ else
+ engine_from_path(name, File.dirname(base), options)
+ end
end
- end
- def glob_imports(glob, base_pathname, options)
- contents = ""
- each_globbed_file(glob, base_pathname.dirname, options) do |filename|
- if File.directory?(filename)
- depend_on(filename)
- elsif context.asset_requirable?(filename)
- depend_on(filename)
- contents << "@import #{Pathname.new(filename).relative_path_from(base_pathname.dirname).to_s.inspect};\n"
+ def find(name, options)
+ if name =~ GLOB
+ nil # globs must be relative
+ else
+ engine_from_path(name, root, options)
end
end
- return nil if contents.empty?
- Sass::Engine.new(contents, options.merge(
- :filename => base_pathname.to_s,
- :importer => self,
- :syntax => :scss
- ))
- end
- private
+ private
- def depend_on(filename)
- context.depend_on(filename)
- context.depend_on(globbed_file_parent(filename))
- end
+ def each_globbed_file(glob, base_pathname, options)
+ Dir["#{base_pathname}/#{glob}"].sort.each do |filename|
+ next if filename == options[:filename]
+ if File.directory?(filename)
+ context.depend_on(filename)
+ context.depend_on(File.expand_path('..', filename))
+ elsif context.asset_requirable?(filename)
+ context.depend_on(File.dirname(filename))
+ yield filename
+ end
+ end
+ end
- def globbed_file_parent(filename)
- if File.directory?(filename)
- File.expand_path('..', filename)
- else
- File.dirname(filename)
+ def glob_imports(glob, base_pathname, options)
+ contents = ""
+ each_globbed_file(glob, base_pathname.dirname, options) do |filename|
+ contents << "@import #{Pathname.new(filename).relative_path_from(base_pathname.dirname).to_s.inspect};\n"
+ end
+ return nil if contents.empty?
+ Sass::Engine.new(contents, options.merge(
+ :filename => base_pathname.to_s,
+ :importer => self,
+ :syntax => :scss
+ ))
end
- end
- def engine_from_path(name, dir, options)
- full_filename, syntax = Sass::Util.destructure(find_real_file(dir, name, options))
- return unless full_filename && File.readable?(full_filename)
- engine = Sass::Engine.new(evaluate(full_filename), options.merge(
- syntax: syntax,
- filename: full_filename,
- importer: self
- ))
+ def engine_from_path(name, dir, options)
+ full_filename, syntax = Sass::Util.destructure(find_real_file(dir, name, options))
+ return unless full_filename && File.readable?(full_filename)
+
+ context.depend_on full_filename
+ engine = Sass::Engine.new(evaluate(full_filename), options.merge(
+ syntax: syntax,
+ filename: full_filename,
+ importer: self
+ ))
- if engine && (filename = engine.options[:filename])
- @context.depend_on(filename)
+ engine
end
- engine
- end
+ def evaluate(filename)
+ attributes = context.environment.attributes_for(filename)
+ processors = context.environment.preprocessors(attributes.content_type) +
+ attributes.engines.reverse - [Sass::Rails::ScssTemplate, Sass::Rails::SassTemplate]
- def evaluate(filename)
- attributes = context.environment.attributes_for(filename)
- processors = context.environment.preprocessors(attributes.content_type) +
- attributes.engines.reverse - [Sprockets::ScssTemplate, Sprockets::SassTemplate]
+ context.evaluate(filename, processors: processors)
+ end
- context.evaluate(filename, processors: processors)
- end
+ end
end
end
--- a/metadata.yml
+++ b/metadata.yml
@@ -17,14 +17,14 @@ dependencies:
requirements:
- - "~>"
- !ruby/object:Gem::Version
- version: 3.2.0
+ version: '3.2'
type: :runtime
prerelease: false
version_requirements: !ruby/object:Gem::Requirement
requirements:
- - "~>"
- !ruby/object:Gem::Version
- version: 3.2.0
+ version: '3.2'
- !ruby/object:Gem::Dependency
name: railties
requirement: !ruby/object:Gem::Requirement
@@ -65,20 +65,14 @@ dependencies:
requirements:
- - "~>"
- !ruby/object:Gem::Version
- version: '2.8'
- - - "<="
- - !ruby/object:Gem::Version
- version: 2.11.0
+ version: '2.12'
type: :runtime
prerelease: false
version_requirements: !ruby/object:Gem::Requirement
requirements:
- - "~>"
- !ruby/object:Gem::Version
- version: '2.8'
- - - "<="
- - !ruby/object:Gem::Version
- version: 2.11.0
+ version: '2.12'
description: Sass adapter for the Rails asset pipeline.
email:
- wycats@gmail.com
|