Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

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.
  • Loading branch information...
commit ad912c08a91b90f6a7b30ae75b4a3a5f6c513bd4 1 parent e01aba1
Xavier Noria fxn authored
4 actionpack/lib/action_view/asset_paths.rb
View
@@ -1,3 +1,4 @@
+require 'zlib'
require 'active_support/core_ext/file'
module ActionView
@@ -111,8 +112,7 @@ def compute_asset_host(source)
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
3  actionpack/test/template/asset_tag_helper_test.rb
View
@@ -1,3 +1,4 @@
+require 'zlib'
require 'abstract_unit'
require 'active_support/ordered_options'
@@ -689,7 +690,7 @@ def test_caching_javascript_include_tag_when_caching_on_and_using_subdirectory
@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")

4 comments on commit ad912c0

José Valim
Owner

Who is Aaron?

Xavier Noria
Owner

Excuse me, should the message say Señor Aaron :).

Aaron Patterson
Owner

meow meow meow!

Prem Sichanugrist
Collaborator

:cat: :cat: :cat:

Please sign in to comment.
Something went wrong with that request. Please try again.