instance method
Object#Digest
(::interned name) -> singleton(::Digest::Base)
Digest(name) → digest_subclass
ext/digest/lib/digest.rb
View on GitHub ↗
# File tmp/rubies/ruby-4.0.0/ext/digest/lib/digest.rb, line 110
def Digest(name)
const = name.to_sym
Digest::REQUIRE_MUTEX.synchronize {
# Ignore autoload's because it is void when we have #const_missing
Digest.const_missing(const)
}
rescue LoadError
# Constants do not necessarily rely on digest/*.
if Digest.const_defined?(const)
Digest.const_get(const)
else
raise
end
end
Returns a Digest subclass by name in a thread-safe manner even when on-demand loading is involved.
Example
require 'digest' Digest("MD5") # => Digest::MD5 Digest(:SHA256) # => Digest::SHA256 Digest(:Foo) # => LoadError: library not found for class Digest::Foo -- digest/foo
See also
#DelegateClass
#display
#define_singleton_method
#dup
also in
4.1 · 3.4 · 3.3 · 3.2 · 3.1 · 3.0