From df05bd2c82386e5897c4125576199e18a13712a1 Mon Sep 17 00:00:00 2001 From: emboss Date: Thu, 2 Aug 2012 01:58:49 +0000 Subject: * ext/openssl/lib/openssl/digest.rb test/openssl/test_digest.rb: Add Digest module function to OpenSSL module and test it. Patch provided by Eric Hodel. [ruby-core:46908][Feature #6819] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36592 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 7 +++++++ ext/openssl/lib/openssl/digest.rb | 17 +++++++++++++++++ test/openssl/test_digest.rb | 8 ++++++++ 3 files changed, 32 insertions(+) diff --git a/ChangeLog b/ChangeLog index ce7ca9ecbf..b2d7c77431 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Thu Aug 2 10:51:12 2012 Martin Bosslet + + * ext/openssl/lib/openssl/digest.rb + test/openssl/test_digest.rb: Add Digest module function to OpenSSL + module and test it. Patch provided by Eric Hodel. + [ruby-core:46908][Feature #6819] + Wed Aug 1 22:29:12 2012 Benoit Daloze ext/digest/digest.c (hexencode_str_new): return an ASCII string 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 diff --git a/test/openssl/test_digest.rb b/test/openssl/test_digest.rb index 81085d2c9c..86c30d973c 100644 --- a/test/openssl/test_digest.rb +++ b/test/openssl/test_digest.rb @@ -103,6 +103,14 @@ class OpenSSL::TestDigest < Test::Unit::TestCase end end + def test_openssl_digest + assert_equal OpenSSL::Digest::MD5, OpenSSL::Digest("MD5") + + assert_raises NameError do + OpenSSL::Digest("no such digest") + end + end + private def check_digest(oid) -- cgit v1.2.3