Skip to content

Commit d667d47

Browse files
committed
expose dependencies from AssetUrlProcessor
1 parent 58dbb85 commit d667d47

File tree

2 files changed

+24
-12
lines changed

2 files changed

+24
-12
lines changed

lib/sprockets/rails/asset_url_processor.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ def self.call(input)
88
context = input[:environment].context_class.new(input)
99
data = input[:data].gsub(REGEX) { |_match| "url(#{context.asset_path($1)})" }
1010

11-
{ data: data }
11+
context.metadata.merge(data: data)
1212
end
1313
end
1414
end

test/test_asset_url_processor.rb

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,36 +4,48 @@
44

55
Minitest::Test = MiniTest::Unit::TestCase unless defined?(Minitest::Test)
66
class TestAssetUrlProcessor < Minitest::Test
7+
FIXTURES_PATH = File.expand_path("../fixtures", __FILE__)
8+
79
def setup
810
@env = Sprockets::Environment.new
11+
@env.append_path FIXTURES_PATH
912
@env.context_class.class_eval do
10-
def asset_path(path, options = {})
11-
'image-hexcodegoeshere.png'
12-
end
13+
include ::Sprockets::Rails::Context
1314
end
15+
@env.context_class.digest_assets = true
16+
17+
@logo_digest = @env["logo.png"].etag
18+
@logo_uri = @env["logo.png"].uri
1419
end
1520

1621
def test_basic
17-
input = { environment: @env, data: 'background: url(image.png);', filename: 'url2.css', metadata: {} }
22+
input = { environment: @env, data: 'background: url(logo.png);', filename: 'url2.css', metadata: {} }
1823
output = Sprockets::Rails::AssetUrlProcessor.call(input)
19-
assert_equal({ data: "background: url(image-hexcodegoeshere.png);" }, output)
24+
assert_equal("background: url(/logo-#{@logo_digest}.png);", output[:data])
2025
end
2126

2227
def test_spaces
23-
input = { environment: @env, data: 'background: url( image.png );', filename: 'url2.css', metadata: {} }
28+
input = { environment: @env, data: 'background: url( logo.png );', filename: 'url2.css', metadata: {} }
2429
output = Sprockets::Rails::AssetUrlProcessor.call(input)
25-
assert_equal({ data: "background: url(image-hexcodegoeshere.png);" }, output)
30+
assert_equal("background: url(/logo-#{@logo_digest}.png);", output[:data])
2631
end
2732

2833
def test_single_quote
29-
input = { environment: @env, data: "background: url('image.png');", filename: 'url2.css', metadata: {} }
34+
input = { environment: @env, data: "background: url('logo.png');", filename: 'url2.css', metadata: {} }
3035
output = Sprockets::Rails::AssetUrlProcessor.call(input)
31-
assert_equal({ data: "background: url(image-hexcodegoeshere.png);" }, output)
36+
assert_equal("background: url(/logo-#{@logo_digest}.png);", output[:data])
3237
end
3338

3439
def test_double_quote
35-
input = { environment: @env, data: 'background: url("image.png");', filename: 'url2.css', metadata: {} }
40+
input = { environment: @env, data: 'background: url("logo.png");', filename: 'url2.css', metadata: {} }
41+
output = Sprockets::Rails::AssetUrlProcessor.call(input)
42+
assert_equal("background: url(/logo-#{@logo_digest}.png);", output[:data])
43+
end
44+
45+
def test_dependencies_are_tracked
46+
input = { environment: @env, data: 'background: url(logo.png);', filename: 'url2.css', metadata: {} }
3647
output = Sprockets::Rails::AssetUrlProcessor.call(input)
37-
assert_equal({ data: "background: url(image-hexcodegoeshere.png);" }, output)
48+
assert_equal(1, output[:links].size)
49+
assert_equal(@logo_uri, output[:links].first)
3850
end
3951
end

0 commit comments

Comments
 (0)