Skip to content

Commit

Permalink
Deprecate register_engine
Browse files Browse the repository at this point in the history
  • Loading branch information
schneems committed Jun 22, 2016
1 parent d892b63 commit 6cce506
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 9 deletions.
22 changes: 15 additions & 7 deletions lib/sprockets.rb
Original file line number Diff line number Diff line change
Expand Up @@ -123,25 +123,33 @@ module Sprockets

# Mmm, CoffeeScript
require 'sprockets/coffee_script_processor'
register_engine '.coffee', CoffeeScriptProcessor, mime_type: 'application/javascript'
Deprecation.silence do
register_engine '.coffee', CoffeeScriptProcessor, mime_type: 'application/javascript'
end

# JST engines
require 'sprockets/eco_processor'
require 'sprockets/ejs_processor'
require 'sprockets/jst_processor'
register_engine '.jst', JstProcessor, mime_type: 'application/javascript'
register_engine '.eco', EcoProcessor, mime_type: 'application/javascript'
register_engine '.ejs', EjsProcessor, mime_type: 'application/javascript'
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'
end

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

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

register_dependency_resolver 'environment-version' do |env|
env.version
Expand Down
2 changes: 2 additions & 0 deletions lib/sprockets/engines.rb
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@ 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`")

ext = Sprockets::Utils.normalize_extension(ext)

self.computed_config = {}
Expand Down
9 changes: 8 additions & 1 deletion test/test_context.rb
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,12 @@ def initialize(file, &block)
@data = block.call
end

def self.call(input)
context = input[:environment].context_class.new(input)
result = self.new(nil, &Proc.new { input[:data]} ).render(context)
{ data: result }
end

def render(context, locals = {})
data = @data
data.gsub(/url\(\"(.+?)\"\)/) do
Expand All @@ -102,7 +108,8 @@ def render(context, locals = {})
end

test "custom processor using Context#resolve and Context#depend_on" do
@env.register_engine '.embed', DataUriProcessor
@env.register_mime_type 'text/css+embed', extensions: ['.css.embed']
@env.register_transformer 'text/css+embed', 'text/css', DataUriProcessor

assert_equal ".pow {\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZoAAAEsCAMAAADNS4U5AAAAGXRFWHRTb2Z0\n",
@env["sprite.css"].to_s.lines.to_a[0..1].join
Expand Down
6 changes: 5 additions & 1 deletion test/test_engines.rb
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,11 @@ def render(context, locals = {})
class TestEngines < Sprockets::TestCase
test "registering engine" do
env = new_environment
env.register_engine ".alert", AlertProcessor

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

asset = env["hello.alert"]
assert_equal "alert(\"Hello world!\\n\");\n", asset.to_s
assert_equal 'application/javascript', asset.content_type
Expand Down

0 comments on commit 6cce506

Please sign in to comment.