Skip to content

Commit 0da8b2e

Browse files
authored
Merge pull request #382 from rails/schneems/fix-deprecations
[close #381] Avoid Sprockets deprecations
2 parents 6569899 + 625fb9e commit 0da8b2e

File tree

8 files changed

+54
-8
lines changed

8 files changed

+54
-8
lines changed

.travis.yml

+3
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ gemfile:
1717
- gemfiles/Gemfile-sprockets-2-12
1818
- gemfiles/Gemfile-sprockets-2-8
1919
- gemfiles/Gemfile-sprockets-3-0
20+
- gemfiles/Gemfile-sprockets-4-0
2021
- gemfiles/Gemfile-sprockets-rails-2-2
2122
- gemfiles/Gemfile-sprockets-rails-master
2223
- gemfiles/Gemfile-sass-3-1
@@ -36,6 +37,8 @@ matrix:
3637
exclude:
3738
- gemfile: gemfiles/Gemfile-sass-3-4
3839
rvm: 1.9.3
40+
- gemfile: gemfiles/Gemfile-sprockets-4-0
41+
rvm: 1.9.3
3942
- gemfile: gemfiles/Gemfile-rails-5-0
4043
rvm: 1.9.3
4144
- gemfile: gemfiles/Gemfile-rails-5-0

lib/sass/rails/railtie.rb

+16-2
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,22 @@ class Railtie < ::Rails::Railtie
5454
end
5555

5656
config.assets.configure do |env|
57-
env.register_engine '.sass', Sass::Rails::SassTemplate
58-
env.register_engine '.scss', Sass::Rails::ScssTemplate
57+
if env.respond_to?(:register_engine)
58+
args = ['.sass', Sass::Rails::SassTemplate]
59+
args << { silence_deprecation: true } if env.method(:register_engine).arity.abs > 2
60+
env.register_engine(*args)
61+
62+
args = ['.scss', Sass::Rails::ScssTemplate]
63+
args << { silence_deprecation: true } if env.method(:register_engine).arity.abs > 2
64+
env.register_engine(*args)
65+
end
66+
67+
if env.respond_to?(:register_transformer)
68+
env.register_transformer 'text/sass', 'text/css',
69+
Sprockets::SassProcessor.new(importer: SassImporter, sass_config: app.config.sass)
70+
env.register_transformer 'text/scss', 'text/css',
71+
Sprockets::ScssProcessor.new(importer: SassImporter, sass_config: app.config.sass)
72+
end
5973

6074
env.context_class.class_eval do
6175
class_attribute :sass_config
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
//= link_tree ./images
2+
//= link_directory ../javascripts .js
3+
//= link_directory ../stylesheets .css

test/fixtures/engine_project/engine_project.gemspec

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Gem::Specification.new do |s|
99
s.version = EngineProject::VERSION
1010
s.authors = ["Your name"]
1111
s.email = ["Your email"]
12-
s.homepage = "http://example.com"
12+
s.homepage = ""
1313
s.summary = "Summary of EngineProject."
1414
s.description = "Description of EngineProject."
1515

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
//= link_tree ./images
2+
//= link_directory ../javascripts .js
3+
//= link_directory ../stylesheets .css
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
//= link_tree ./images
2+
//= link_directory ../javascripts .js
3+
//= link_directory ../stylesheets .css
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,25 @@
1-
Rails.application.config.assets.configure do |env|
2-
env.register_postprocessor 'text/css', :postprocessor do |context, css|
3-
css.gsub /@import/, 'fail engine'
1+
2+
class SassRailsTestPostProcessor
3+
def initialize(filename, &block)
4+
@filename = filename
5+
@source = block.call
6+
end
7+
8+
def render(context, _)
9+
self.class.run(@source)
10+
end
11+
12+
def self.run(source)
13+
source.gsub /@import/, 'fail engine'
414
end
15+
16+
def self.call(input)
17+
source = input[:data]
18+
result = run(source)
19+
{ data: result }
20+
end
21+
end
22+
23+
Rails.application.config.assets.configure do |env|
24+
env.register_postprocessor 'text/css', SassRailsTestPostProcessor
525
end

test/sass_rails_test.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ class SassRailsTest < Sass::Rails::TestCase
144144

145145
test 'globbed imports work when new file is added' do
146146
project = 'scss_project'
147-
filename = 'application.scss'
147+
filename = 'application.css'
148148

149149
within_rails_app(project) do |tmpdir|
150150
asset_output(filename)
@@ -161,7 +161,7 @@ class SassRailsTest < Sass::Rails::TestCase
161161

162162
test 'globbed imports work when globbed file is changed' do
163163
project = 'scss_project'
164-
filename = 'application.scss'
164+
filename = 'application.css'
165165

166166
within_rails_app(project) do |tmpdir|
167167
asset_output(filename)

0 commit comments

Comments
 (0)