aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlbert Callarisa Roca <shark234@gmail.com>2011-07-08 00:10:20 +0800
committerAlbert Callarisa Roca <shark234@gmail.com>2011-07-08 00:10:20 +0800
commitf6a6b51ae551b7f936e974cba3ad4b30422d6804 (patch)
tree67544eb205101644849952af0e404d3ed99361d4
parent298a0834e181c63e5c1165a11efa1f6947b536f2 (diff)
downloadrails-f6a6b51ae551b7f936e974cba3ad4b30422d6804.tar.gz
rails-f6a6b51ae551b7f936e974cba3ad4b30422d6804.tar.bz2
rails-f6a6b51ae551b7f936e974cba3ad4b30422d6804.zip
Using the sum of bytes instead the hash of the path when replacing the wildcard of the assets path because in ruby 1.9 is not consistent
-rw-r--r--actionpack/lib/action_view/asset_paths.rb3
-rw-r--r--actionpack/test/template/asset_tag_helper_test.rb5
2 files changed, 5 insertions, 3 deletions
diff --git a/actionpack/lib/action_view/asset_paths.rb b/actionpack/lib/action_view/asset_paths.rb
index 4dd02755d3..77a8c5322f 100644
--- a/actionpack/lib/action_view/asset_paths.rb
+++ b/actionpack/lib/action_view/asset_paths.rb
@@ -111,7 +111,8 @@ module ActionView
args << current_request if (arity > 1 || arity < 0) && has_request?
host.call(*args)
else
- (host =~ /%d/) ? host % (source.hash % 4) : host
+ source_num = source.bytes.sum
+ (host =~ /%d/) ? host % (source_num % 4) : host
end
end
end
diff --git a/actionpack/test/template/asset_tag_helper_test.rb b/actionpack/test/template/asset_tag_helper_test.rb
index df61901b44..59e7ac144b 100644
--- a/actionpack/test/template/asset_tag_helper_test.rb
+++ b/actionpack/test/template/asset_tag_helper_test.rb
@@ -689,9 +689,9 @@ class AssetTagHelperTest < ActionView::TestCase
@controller.config.asset_host = 'http://a%d.example.com'
config.perform_caching = true
- hash = '/javascripts/cache/money.js'.hash % 4
+ number = '/javascripts/cache/money.js'.bytes.sum % 4
assert_dom_equal(
- %(<script src="http://a#{hash}.example.com/javascripts/cache/money.js" type="text/javascript"></script>),
+ %(<script src="http://a#{number}.example.com/javascripts/cache/money.js" type="text/javascript"></script>),
javascript_include_tag(:all, :cache => "cache/money")
)
@@ -1129,6 +1129,7 @@ class AssetTagHelperNonVhostTest < ActionView::TestCase
end
def test_should_wildcard_asset_host_between_zero_and_four
+ String.any_instance.expects(:hash).times(0)
@controller.config.asset_host = 'http://a%d.example.com'
assert_match(%r(http://a[0123].example.com/collaboration/hieraki/images/xml.png), image_path('xml.png'))
end