Skip to content

Commit 3c109f2

Browse files
committed
Stub assets:environment task
1 parent 3698e1b commit 3c109f2

File tree

3 files changed

+20
-0
lines changed

3 files changed

+20
-0
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ Sprockets::Rails::Task.new do |t|
4444
end
4545
```
4646

47+
Each asset task will invoke `assets:environment` first. By default this loads the Rails environment. You can override this task to add or remove dependencies for your specific compilation environment.
48+
4749
Also see [Sprockest::Rails::Task](https://github.com/josh/sprockets-rails/blob/master/lib/sprockets/rails/task.rb) and [Rake::SprocketsTask](https://github.com/sstephenson/sprockets/blob/master/lib/rake/sprocketstask.rb).
4850

4951

lib/sprockets/rails/task.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,13 @@ class Task < Rake::SprocketsTask
99

1010
def define
1111
namespace :assets do
12+
# Override this task change the loaded dependencies
13+
desc "Load asset compile environment"
14+
task :environment do
15+
# Load full Rails environment by default
16+
Rake::Task['environment'].invoke
17+
end
18+
1219
desc "Compile all the assets named in config.assets.precompile"
1320
task :precompile => :environment do
1421
with_logger do

test/test_task.rb

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,10 @@ def setup
1818

1919
@manifest = Sprockets::Manifest.new(@assets, @dir)
2020

21+
@environment_ran = false
2122
# Stub Rails environment task
2223
@rake.define_task Rake::Task, :environment do
24+
@environment_ran = true
2325
end
2426

2527
Sprockets::Rails::Task.new do |t|
@@ -38,31 +40,40 @@ def teardown
3840
end
3941

4042
def test_precompile
43+
assert !@environment_ran
44+
4145
digest_path = @assets['foo.js'].digest_path
4246
assert !File.exist?("#{@dir}/#{digest_path}")
4347

4448
@rake['assets:precompile'].invoke
4549

50+
assert @environment_ran
4651
assert Dir["#{@dir}/manifest-*.json"].first
4752
assert File.exist?("#{@dir}/#{digest_path}")
4853
end
4954

5055
def test_clobber
56+
assert !@environment_ran
5157
digest_path = @assets['foo.js'].digest_path
5258

5359
@rake['assets:precompile'].invoke
5460
assert File.exist?("#{@dir}/#{digest_path}")
5561

62+
assert @environment_ran
63+
5664
@rake['assets:clobber'].invoke
5765
assert !File.exist?("#{@dir}/#{digest_path}")
5866
end
5967

6068
def test_clean
69+
assert !@environment_ran
6170
digest_path = @assets['foo.js'].digest_path
6271

6372
@rake['assets:precompile'].invoke
6473
assert File.exist?("#{@dir}/#{digest_path}")
6574

75+
assert @environment_ran
76+
6677
@rake['assets:clean'].invoke
6778
assert File.exist?("#{@dir}/#{digest_path}")
6879
end

0 commit comments

Comments
 (0)