1
0
Fork 0
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:
Xavier Noria 2011-07-08 00:58:14 +02:00
parent e01aba1504
commit ad912c08a9
2 changed files with 4 additions and 3 deletions

View file

@ -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

View file

@ -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")