mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
b9e7c676ca
Using `truncate` to limit the length of the digest has the unwanted side effect of adding an ellipsis when the input is longer than the limit. Also: - Don't instantiate a new object for every digest - Rename the configuration option to `hash_digest_class` - Update the CHANGELOG entry to describe how to use the feature
20 lines
486 B
Ruby
20 lines
486 B
Ruby
# frozen_string_literal: true
|
|
|
|
module ActiveSupport
|
|
class Digest #:nodoc:
|
|
class <<self
|
|
def hash_digest_class
|
|
@hash_digest_class ||= ::Digest::MD5
|
|
end
|
|
|
|
def hash_digest_class=(klass)
|
|
raise ArgumentError, "#{klass} is expected to implement hexdigest class method" unless klass.respond_to?(:hexdigest)
|
|
@hash_digest_class = klass
|
|
end
|
|
|
|
def hexdigest(arg)
|
|
hash_digest_class.hexdigest(arg)[0...32]
|
|
end
|
|
end
|
|
end
|
|
end
|