Skip to content

Commit e780283

Browse files
committed
Don't require ActionView::Base when rake tasks get loaded:
- ### Problem When running any rake command, Sprockets Rails will autoload `ActionView::Base` way too early. This creates a broader issue which I described in detail in rails/rails#38024 ### Solution This `require` statement was the last attempt to fix a old [issue](rails/rails#9461) in 2014. TL;DR on the issue is that assets_prefix would get ignored when precompiling assets. A lot has change since 2014 in sprockets-rails and after digging I can confirm that requiring AV::Base is no longer needed. We don't need it to run assets related rake tasks. This is thanks thanks of the decoupling between `Sprockets::Rails::Context` and `Sprockets::Rails::Helper` in 32a58f54
1 parent 5f75d41 commit e780283

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

lib/sprockets/rails/task.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
require 'rake/sprocketstask'
33
require 'sprockets'
44
require 'action_view'
5-
require 'action_view/base'
65

76
module Sprockets
87
module Rails

test/test_railtie.rb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ def setup
3737
@app.config.time_zone = 'UTC'
3838
@app.config.middleware ||= Rails::Configuration::MiddlewareStackProxy.new
3939
@app.config.active_support.deprecation = :notify
40-
ActionView::Base # load ActionView
4140

4241
Dir.chdir(app.root) do
4342
dir = "app/assets/config"
@@ -330,12 +329,12 @@ def test_load_tasks
330329
def test_task_precompile
331330
app.configure do
332331
config.assets.paths << FIXTURES_PATH
333-
config.assets.precompile += ["foo.js"]
332+
config.assets.precompile += ["foo.js", "url.css"]
334333
end
335334
app.initialize!
336335
app.load_tasks
337336

338-
path = "#{app.assets_manifest.dir}/foo-4ef5541f349f7ed5a0d6b71f2fa4c82745ca106ae02f212aea5129726ac6f6ab.js"
337+
path = "#{app.assets_manifest.dir}/foo-#{Rails.application.assets['foo.js'].etag}.js"
339338

340339
silence_stderr do
341340
Rake.application['assets:clobber'].execute
@@ -346,6 +345,8 @@ def test_task_precompile
346345
Rake.application['assets:precompile'].execute
347346
end
348347
assert File.exist?(path)
348+
url_css_path = File.join(app.assets_manifest.dir, Rails.application.assets['url.css'].digest_path)
349+
assert_match(%r{/assets/logo-#{Rails.application.assets['logo.png'].etag}.png}, File.read(url_css_path))
349350

350351
silence_stderr do
351352
Rake.application['assets:clobber'].execute

0 commit comments

Comments
 (0)