mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
use Zlib.crc2 rather that bytes.sum, as per Aaron's suggestion
That integer is rather irrelevant, the only thing that matters is that it is consistent and with no apparent bias. Zlib.crc32 is 8-10 times faster than bytes.sum, so use that.
This commit is contained in:
parent
e01aba1504
commit
ad912c08a9
2 changed files with 4 additions and 3 deletions
|
@ -1,3 +1,4 @@
|
|||
require 'zlib'
|
||||
require 'active_support/core_ext/file'
|
||||
|
||||
module ActionView
|
||||
|
@ -111,8 +112,7 @@ module ActionView
|
|||
args << current_request if (arity > 1 || arity < 0) && has_request?
|
||||
host.call(*args)
|
||||
else
|
||||
source_num = source.bytes.sum
|
||||
(host =~ /%d/) ? host % (source_num % 4) : host
|
||||
(host =~ /%d/) ? host % (Zlib.crc32(source) % 4) : host
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
require 'zlib'
|
||||
require 'abstract_unit'
|
||||
require 'active_support/ordered_options'
|
||||
|
||||
|
@ -689,7 +690,7 @@ class AssetTagHelperTest < ActionView::TestCase
|
|||
@controller.config.asset_host = 'http://a%d.example.com'
|
||||
config.perform_caching = true
|
||||
|
||||
number = '/javascripts/cache/money.js'.bytes.sum % 4
|
||||
number = Zlib.crc32('/javascripts/cache/money.js') % 4
|
||||
assert_dom_equal(
|
||||
%(<script src="http://a#{number}.example.com/javascripts/cache/money.js" type="text/javascript"></script>),
|
||||
javascript_include_tag(:all, :cache => "cache/money")
|
||||
|
|
Loading…
Reference in a new issue