Skip to content

Commit

Permalink
Fix asset tags for files with more than one dot
Browse files Browse the repository at this point in the history
After the fix done in 39f9f02, there are cases that will not work
correctly. If you have file with "2 extensions", like foo.min.js and you
reference the file without extension, like:

    javascript_include_tag "foo.min"

it will fail because sprockets finds foo.min.js with foo.min argument.

This commit fixes this case and will get the right file even when
referrencing it without extension.

(closes rails#6598)
  • Loading branch information
drogus committed Jun 2, 2012
1 parent f550d4d commit 10537ba
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 1 deletion.
4 changes: 3 additions & 1 deletion actionpack/lib/sprockets/helpers/rails_helper.rb
Expand Up @@ -157,7 +157,9 @@ def rewrite_asset_path(source, dir, options = {})
def rewrite_extension(source, dir, ext)
source_ext = File.extname(source)
if ext && source_ext != ".#{ext}"
if !source_ext.empty? && asset_environment[source]
asset = asset_environment[source]
if !source_ext.empty? && asset &&
asset.pathname.to_s =~ /#{source}\Z/
source
else
"#{source}.#{ext}"
Expand Down
Empty file.
Empty file.
6 changes: 6 additions & 0 deletions actionpack/test/template/sprockets_helper_test.rb
Expand Up @@ -257,6 +257,9 @@ def compute_host(source, request, options = {})
assert_match %r{\A<script src="/assets/xmlhr-[0-9a-f]+.js" type="text/javascript"></script>\Z},
javascript_include_tag("xmlhr", "xmlhr")

assert_match %r{\A<script src="/assets/foo.min-[0-9a-f]+.js" type="text/javascript"></script>\Z},
javascript_include_tag("foo.min")

@config.assets.compile = true
@config.assets.debug = true
assert_match %r{<script src="/javascripts/application.js" type="text/javascript"></script>},
Expand Down Expand Up @@ -310,6 +313,9 @@ def compute_host(source, request, options = {})
assert_match %r{\A<link href="/assets/style-[0-9a-f]+.ext" media="screen" rel="stylesheet" type="text/css" />\Z},
stylesheet_link_tag("style.ext")

assert_match %r{\A<link href="/assets/style.min-[0-9a-f]+.css" media="screen" rel="stylesheet" type="text/css" />\Z},
stylesheet_link_tag("style.min")

@config.assets.compile = true
@config.assets.debug = true
assert_match %r{<link href="/stylesheets/application.css" media="screen" rel="stylesheet" type="text/css" />},
Expand Down

0 comments on commit 10537ba

Please sign in to comment.