diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2013-05-16 09:42:41 -0700 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2013-05-16 09:42:41 -0700 |
commit | 4eb16e7a0627a5d6ca043cecac77b3b934747fcb (patch) | |
tree | 383b0506d4f49b12f8fb54fc8773eae82df7b54a /actionpack | |
parent | f96478369e0e01a00d1d6909814d388c49642b1a (diff) | |
parent | 122ac9fd46d7c9ac198bf980df4f038247eb0ba5 (diff) | |
download | rails-4eb16e7a0627a5d6ca043cecac77b3b934747fcb.tar.gz rails-4eb16e7a0627a5d6ca043cecac77b3b934747fcb.tar.bz2 rails-4eb16e7a0627a5d6ca043cecac77b3b934747fcb.zip |
Merge pull request #10636 from seanwalbran/fix-asset-host-proc-returning-nil
fix rails4 regression with asset_host Proc returning nil
Diffstat (limited to 'actionpack')
-rw-r--r-- | actionpack/lib/action_view/helpers/asset_url_helper.rb | 3 | ||||
-rw-r--r-- | actionpack/test/template/asset_tag_helper_test.rb | 11 |
2 files changed, 13 insertions, 1 deletions
diff --git a/actionpack/lib/action_view/helpers/asset_url_helper.rb b/actionpack/lib/action_view/helpers/asset_url_helper.rb index 71b78cf0b5..b5f2df76ab 100644 --- a/actionpack/lib/action_view/helpers/asset_url_helper.rb +++ b/actionpack/lib/action_view/helpers/asset_url_helper.rb @@ -193,7 +193,6 @@ module ActionView request = self.request if respond_to?(:request) host = config.asset_host if defined? config.asset_host host ||= request.base_url if request && options[:protocol] == :request - return unless host if host.respond_to?(:call) arity = host.respond_to?(:arity) ? host.arity : host.method(:call).arity @@ -204,6 +203,8 @@ module ActionView host = host % (Zlib.crc32(source) % 4) end + return unless host + if host =~ URI_REGEXP host else diff --git a/actionpack/test/template/asset_tag_helper_test.rb b/actionpack/test/template/asset_tag_helper_test.rb index 11614a45dc..67f593c22f 100644 --- a/actionpack/test/template/asset_tag_helper_test.rb +++ b/actionpack/test/template/asset_tag_helper_test.rb @@ -530,6 +530,17 @@ class AssetTagHelperTest < ActionView::TestCase assert_equal copy, source end + def test_image_path_with_asset_host_proc_returning_nil + @controller.config.asset_host = Proc.new do |source| + unless source.end_with?("tiff") + "cdn.example.com" + end + end + + assert_equal "/images/file.tiff", image_path("file.tiff") + assert_equal "http://cdn.example.com/images/file.png", image_path("file.png") + end + def test_caching_image_path_with_caching_and_proc_asset_host_using_request @controller.config.asset_host = Proc.new do |source, request| if request.ssl? |