mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Allow multiple sources in Sprockets helpers
This commit is contained in:
parent
75e56101d4
commit
db8eeaff06
4 changed files with 38 additions and 26 deletions
|
@ -15,42 +15,48 @@ module Sprockets
|
|||
end
|
||||
end
|
||||
|
||||
def javascript_include_tag(source, options = {})
|
||||
def javascript_include_tag(*sources)
|
||||
options = sources.extract_options!
|
||||
debug = options.key?(:debug) ? options.delete(:debug) : debug_assets?
|
||||
body = options.key?(:body) ? options.delete(:body) : false
|
||||
|
||||
if debug && asset = asset_paths.asset_for(source, 'js')
|
||||
asset.to_a.map { |dep|
|
||||
javascript_include_tag(dep, :debug => false, :body => true)
|
||||
}.join("\n").html_safe
|
||||
else
|
||||
options = {
|
||||
'type' => "text/javascript",
|
||||
'src' => asset_path(source, 'js', body)
|
||||
}.merge(options.stringify_keys)
|
||||
sources.collect do |source|
|
||||
if debug && asset = asset_paths.asset_for(source, 'js')
|
||||
asset.to_a.map { |dep|
|
||||
javascript_include_tag(dep, :debug => false, :body => true)
|
||||
}.join("\n").html_safe
|
||||
else
|
||||
tag_options = {
|
||||
'type' => "text/javascript",
|
||||
'src' => asset_path(source, 'js', body)
|
||||
}.merge(options.stringify_keys)
|
||||
|
||||
content_tag 'script', "", options
|
||||
end
|
||||
content_tag 'script', "", tag_options
|
||||
end
|
||||
end.join("\n").html_safe
|
||||
end
|
||||
|
||||
def stylesheet_link_tag(source, options = {})
|
||||
def stylesheet_link_tag(*sources)
|
||||
options = sources.extract_options!
|
||||
debug = options.key?(:debug) ? options.delete(:debug) : debug_assets?
|
||||
body = options.key?(:body) ? options.delete(:body) : false
|
||||
|
||||
if debug && asset = asset_paths.asset_for(source, 'css')
|
||||
asset.to_a.map { |dep|
|
||||
stylesheet_link_tag(dep, :debug => false, :body => true)
|
||||
}.join("\n").html_safe
|
||||
else
|
||||
options = {
|
||||
'rel' => "stylesheet",
|
||||
'type' => "text/css",
|
||||
'media' => "screen",
|
||||
'href' => asset_path(source, 'css', body)
|
||||
}.merge(options.stringify_keys)
|
||||
sources.collect do |source|
|
||||
if debug && asset = asset_paths.asset_for(source, 'css')
|
||||
asset.to_a.map { |dep|
|
||||
stylesheet_link_tag(dep, :debug => false, :body => true)
|
||||
}.join("\n").html_safe
|
||||
else
|
||||
tag_options = {
|
||||
'rel' => "stylesheet",
|
||||
'type' => "text/css",
|
||||
'media' => "screen",
|
||||
'href' => asset_path(source, 'css', body)
|
||||
}.merge(options.stringify_keys)
|
||||
|
||||
tag 'link', options
|
||||
end
|
||||
tag 'link', tag_options
|
||||
end
|
||||
end.join("\n").html_safe
|
||||
end
|
||||
|
||||
private
|
||||
|
|
0
actionpack/test/fixtures/sprockets/app/javascripts/extra.js
vendored
Normal file
0
actionpack/test/fixtures/sprockets/app/javascripts/extra.js
vendored
Normal file
0
actionpack/test/fixtures/sprockets/app/stylesheets/extra.css
vendored
Normal file
0
actionpack/test/fixtures/sprockets/app/stylesheets/extra.css
vendored
Normal file
|
@ -94,6 +94,9 @@ class SprocketsHelperTest < ActionView::TestCase
|
|||
|
||||
assert_equal "<script src=\"/assets/xmlhr-d41d8cd98f00b204e9800998ecf8427e.js?body=1\" type=\"text/javascript\"></script>\n<script src=\"/assets/application-d41d8cd98f00b204e9800998ecf8427e.js?body=1\" type=\"text/javascript\"></script>",
|
||||
javascript_include_tag(:application, :debug => true)
|
||||
|
||||
assert_equal "<script src=\"/assets/xmlhr-d41d8cd98f00b204e9800998ecf8427e.js\" type=\"text/javascript\"></script>\n<script src=\"/assets/extra-d41d8cd98f00b204e9800998ecf8427e.js\" type=\"text/javascript\"></script>",
|
||||
javascript_include_tag("xmlhr", "extra")
|
||||
end
|
||||
|
||||
test "stylesheet path" do
|
||||
|
@ -127,5 +130,8 @@ class SprocketsHelperTest < ActionView::TestCase
|
|||
|
||||
assert_equal "<link href=\"/assets/style-d41d8cd98f00b204e9800998ecf8427e.css?body=1\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n<link href=\"/assets/application-68b329da9893e34099c7d8ad5cb9c940.css?body=1\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />",
|
||||
stylesheet_link_tag(:application, :debug => true)
|
||||
|
||||
assert_equal "<link href=\"/assets/style-d41d8cd98f00b204e9800998ecf8427e.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n<link href=\"/assets/extra-d41d8cd98f00b204e9800998ecf8427e.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />",
|
||||
stylesheet_link_tag("style", "extra")
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue