Issue #6819 has been updated by MartinBosslet (Martin Bosslet).


drbrain (Eric Hodel) wrote:
> I agree.  I have attached a patch to implement your suggestion.

Thanks to both of you!
----------------------------------------
Feature #6819: OpenSSL::Digest.new should return an instance of the chosen subclass
https://bugs.ruby-lang.org/issues/6819#change-28586

Author: drbrain (Eric Hodel)
Status: Closed
Priority: Normal
Assignee: MartinBosslet (Martin Bosslet)
Category: ext
Target version: 2.0.0


=begin
(({OpenSSL::Digest.new})) allows you to create a digest given the digest name:

  digester = OpenSSL::Digest.new "SHA1"
  digester.update "hello"
  # ???

The digester returned is of class (({OpenSSL::Digest})) regardless of the input type.

I would like this changed so that it returns the specific subclass of (({OpenSSL::Digest})):

  digester = OpenSSL::Digest.new "SHA1"
  digester.class #=> OpenSSL::Digest::SHA1

When multiple digests are created this makes it easier to distinguish the type of digest you are working with.

This will also make (({OpenSSL::Digest.new})) behave similarly to (({Digest})):

  digester = Digest("SHA1").new
  digester.class #=> Digest::SHA1

=end


-- 
http://bugs.ruby-lang.org/