aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2013-05-16 09:42:41 -0700
committerRafael Mendonça França <rafaelmfranca@gmail.com>2013-05-16 09:42:41 -0700
commit4eb16e7a0627a5d6ca043cecac77b3b934747fcb (patch)
tree383b0506d4f49b12f8fb54fc8773eae82df7b54a /actionpack
parentf96478369e0e01a00d1d6909814d388c49642b1a (diff)
parent122ac9fd46d7c9ac198bf980df4f038247eb0ba5 (diff)
downloadrails-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.rb3
-rw-r--r--actionpack/test/template/asset_tag_helper_test.rb11
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?