Skip to content

Commit

Permalink
Allow callers to remove nopush
Browse files Browse the repository at this point in the history
  • Loading branch information
fleck committed Aug 23, 2020
1 parent 033ac18 commit 0b65e23
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 2 deletions.
12 changes: 10 additions & 2 deletions actionview/lib/action_view/helpers/asset_tag_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -87,10 +87,15 @@ def javascript_include_tag(*sources)
options = sources.extract_options!.stringify_keys
path_options = options.extract!("protocol", "extname", "host", "skip_pipeline").symbolize_keys
preload_links = []
nopush = options["nopush"].nil? ? true : options.delete("nopush")

sources_tags = sources.uniq.map { |source|
href = path_to_javascript(source, path_options)
preload_links << "<#{href}>; rel=preload; as=script; nopush" unless options["defer"]
unless options["defer"]
preload_link = "<#{href}>; rel=preload; as=script"
preload_link += "; nopush" if nopush
preload_links << preload_link
end
tag_options = {
"src" => href
}.merge!(options)
Expand Down Expand Up @@ -137,10 +142,13 @@ def stylesheet_link_tag(*sources)
options = sources.extract_options!.stringify_keys
path_options = options.extract!("protocol", "host", "skip_pipeline").symbolize_keys
preload_links = []
nopush = options["nopush"].nil? ? true : options.delete("nopush")

sources_tags = sources.uniq.map { |source|
href = path_to_stylesheet(source, path_options)
preload_links << "<#{href}>; rel=preload; as=style; nopush"
preload_link = "<#{href}>; rel=preload; as=style"
preload_link += "; nopush" if nopush
preload_links << preload_link
tag_options = {
"rel" => "stylesheet",
"media" => "screen",
Expand Down
7 changes: 7 additions & 0 deletions actionview/test/template/asset_tag_helper_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -522,6 +522,13 @@ def test_should_not_preload_links_with_defer
assert_equal "", @response.headers["Link"]
end

def test_should_allow_caller_to_remove_nopush
stylesheet_link_tag("http://example.com/style.css", nopush: false)
javascript_include_tag("http://example.com/all.js", nopush: false)
expected = "<http://example.com/style.css>; rel=preload; as=style,<http://example.com/all.js>; rel=preload; as=script"
assert_equal expected, @response.headers["Link"]
end

def test_image_path
ImagePathToTag.each { |method, tag| assert_dom_equal(tag, eval(method)) }
end
Expand Down

0 comments on commit 0b65e23

Please sign in to comment.