0 lines of code changed in:
* ext/digest: Prefix C constants with RUBY_ and C type names with
rb_ to avoid name clash in writing extensions.
* ext/digest: Introduce Digest::Class and Digest::Instance for
ease of implementing subclasses and add-ons, inspried by
* ext/digest: The Digest::Instance module now requires and assumes
that any instance be resettable and clonable, and add some
convenient instance methods such as "new()", for creating a new
copy, parameter taking "digest()" and "hexdigest()", for instant
calculation. These methods make digest instances work just like
Add the Digest::SHA2 class to wrap up SHA2 variants: SHA256,
SHA384 and SHA512, hoping this module would make a decent
example of a digest subclass written in Ruby.
* ext/digest/lib/digest.rb: Adjust autoload entries for SHA2
* ext/digest/lib/digest/hmac.rb: Follow the framework updates.
21 lines of code changed in:
* ext/digest/digest.c: Improve RDoc documentation.
* ext/digest/digest.c (Init_digest, rb_digest_base_s_digest,
rb_digest_base_s_hexdigest): Make Digest::Base::digest() and
Digest::Base::hexdigest() take extra arguments, which are passed
through to the constructor in an internal call.
(rb_digest_base_s_bubblebabble): Ditto for
9 lines of code changed in:
4 lines of code changed in:
* ext/digest/bubblebabble, ext/digest/digest.c: Rip BubbleBabble
support out of the base class and have a separate module named
139 lines of code changed in: