Skip to content

Commit

Permalink
Merge pull request #345 from rails/schneems/allow-no-deprecations
Browse files Browse the repository at this point in the history
Allow for `register_engine` without deprecation
  • Loading branch information
schneems committed Jul 21, 2016
2 parents 2f5bd84 + 0bafcdb commit 5a8edce
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 18 deletions.
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -6,3 +6,4 @@ doc
docs
pkg
tmp
.DS_Store
16 changes: 7 additions & 9 deletions lib/sprockets.rb
Expand Up @@ -124,32 +124,30 @@ module Sprockets
# Mmm, CoffeeScript
require 'sprockets/coffee_script_processor'
Deprecation.silence do
register_engine '.coffee', CoffeeScriptProcessor, mime_type: 'application/javascript'
register_engine '.coffee', CoffeeScriptProcessor, mime_type: 'application/javascript', silence_deprecation: true
end

# JST engines
require 'sprockets/eco_processor'
require 'sprockets/ejs_processor'
require 'sprockets/jst_processor'
Deprecation.silence do
register_engine '.jst', JstProcessor, mime_type: 'application/javascript'
register_engine '.eco', EcoProcessor, mime_type: 'application/javascript'
register_engine '.ejs', EjsProcessor, mime_type: 'application/javascript'
register_engine '.jst', JstProcessor, mime_type: 'application/javascript', silence_deprecation: true
register_engine '.eco', EcoProcessor, mime_type: 'application/javascript', silence_deprecation: true
register_engine '.ejs', EjsProcessor, mime_type: 'application/javascript', silence_deprecation: true
end

# CSS engines
require 'sprockets/sass_processor'
Deprecation.silence do
register_engine '.sass', SassProcessor, mime_type: 'text/css'
register_engine '.scss', ScssProcessor, mime_type: 'text/css'
register_engine '.sass', SassProcessor, mime_type: 'text/css', silence_deprecation: true
register_engine '.scss', ScssProcessor, mime_type: 'text/css', silence_deprecation: true
end
register_bundle_metadata_reducer 'text/css', :sass_dependencies, Set.new, :+

# Other
require 'sprockets/erb_processor'
Deprecation.silence do
register_engine '.erb', ERBProcessor, mime_type: 'text/plain'
end
register_engine '.erb', ERBProcessor, mime_type: 'text/plain', silence_deprecation: true

register_dependency_resolver 'environment-version' do |env|
env.version
Expand Down
11 changes: 10 additions & 1 deletion lib/sprockets/engines.rb
Expand Up @@ -51,7 +51,16 @@ def engine_mime_types
# environment.register_engine '.coffee', CoffeeScriptProcessor
#
def register_engine(ext, klass, options = {})
Deprecation.new([caller.first]).warn("`register_engine` is deprecated please register a mime type and use `register_compressor` or `register_transformer`")
unless options[:silence_deprecation]
msg = <<-MSG
Sprockets method `register_engine` is deprecated.
Please register a mime type using `register_mime_type` then
use `register_compressor` or `register_transformer`.
https://github.com/rails/sprockets/blob/master/guides/extending_sprockets.md#supporting-all-versions-of-sprockets-in-processors
MSG

Deprecation.new([caller.first]).warn(msg)
end

ext = Sprockets::Utils.normalize_extension(ext)

Expand Down
14 changes: 7 additions & 7 deletions test/sprockets_test.rb
Expand Up @@ -23,7 +23,7 @@ def silence_warnings

NoopProcessor = proc { |input| input[:data] }
# Sprockets.register_mime_type 'text/haml', extensions: ['.haml']
Sprockets.register_engine '.haml', NoopProcessor, mime_type: 'text/html'
Sprockets.register_engine '.haml', NoopProcessor, mime_type: 'text/html', silence_deprecation: true

# Sprockets.register_mime_type 'text/ng-template', extensions: ['.ngt']
AngularProcessor = proc { |input|
Expand All @@ -33,19 +33,19 @@ def silence_warnings
});
EOS
}
Sprockets.register_engine '.ngt', AngularProcessor, mime_type: 'application/javascript'
Sprockets.register_engine '.ngt', AngularProcessor, mime_type: 'application/javascript', silence_deprecation: true

# Sprockets.register_mime_type 'text/mustache', extensions: ['.mustache']
Sprockets.register_engine '.mustache', NoopProcessor, mime_type: 'application/javascript'
Sprockets.register_engine '.mustache', NoopProcessor, mime_type: 'application/javascript', silence_deprecation: true

# Sprockets.register_mime_type 'text/x-handlebars-template', extensions: ['.handlebars']
Sprockets.register_engine '.handlebars', NoopProcessor, mime_type: 'application/javascript'
Sprockets.register_engine '.handlebars', NoopProcessor, mime_type: 'application/javascript', silence_deprecation: true

# Sprockets.register_mime_type 'application/javascript-module', extensions: ['.es6']
Sprockets.register_engine '.es6', NoopProcessor, mime_type: 'application/javascript'
Sprockets.register_engine '.es6', NoopProcessor, mime_type: 'application/javascript', silence_deprecation: true

# Sprockets.register_mime_type 'application/dart', extensions: ['.dart']
Sprockets.register_engine '.dart', NoopProcessor, mime_type: 'application/javascript'
Sprockets.register_engine '.dart', NoopProcessor, mime_type: 'application/javascript', silence_deprecation: true

require 'nokogiri'

Expand All @@ -72,7 +72,7 @@ def silence_warnings
Sprockets.register_transformer 'application/xml+builder', 'application/xml', XmlBuilderProcessor

require 'sprockets/jst_processor'
Sprockets.register_engine '.jst2', Sprockets::JstProcessor.new(namespace: 'this.JST2'), mime_type: 'application/javascript'
Sprockets.register_engine '.jst2', Sprockets::JstProcessor.new(namespace: 'this.JST2'), mime_type: 'application/javascript', silence_deprecation: true

SVG2PNG = proc { |input|
"\x89\x50\x4e\x47\xd\xa\x1a\xa#{input[:data]}"
Expand Down
2 changes: 1 addition & 1 deletion test/test_engines.rb
Expand Up @@ -30,7 +30,7 @@ class TestEngines < Sprockets::TestCase
env = new_environment

Sprockets::SilenceDeprecation.silence do
env.register_engine ".alert", AlertProcessor
env.register_engine ".alert", AlertProcessor, silence_deprecation: true
end

asset = env["hello.alert"]
Expand Down

0 comments on commit 5a8edce

Please sign in to comment.