summaryrefslogtreecommitdiff
path: root/ext/openssl/lib/openssl/digest.rb
diff options
context:
space:
mode:
Diffstat (limited to 'ext/openssl/lib/openssl/digest.rb')
-rw-r--r--ext/openssl/lib/openssl/digest.rb17
1 files changed, 17 insertions, 0 deletions
diff --git a/ext/openssl/lib/openssl/digest.rb b/ext/openssl/lib/openssl/digest.rb
index b47007165c..43c9974920 100644
--- a/ext/openssl/lib/openssl/digest.rb
+++ b/ext/openssl/lib/openssl/digest.rb
@@ -68,5 +68,22 @@ module OpenSSL
end
end # Digest
+
+ # Returns a Digest subclass by +name+.
+ #
+ # require 'openssl'
+ #
+ # OpenSSL::Digest("MD5")
+ # # => OpenSSL::Digest::MD5
+ #
+ # Digest("Foo")
+ # # => NameError: wrong constant name Foo
+
+ def Digest(name)
+ OpenSSL::Digest.const_get(name)
+ end
+
+ module_function :Digest
+
end # OpenSSL