* ext/digest/digest.c (rb_digest_class_init): Define

Digest::Class.new(). [Feature #3954]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@29656 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
knu 2010-10-31 16:04:19 +00:00
parent 5ab2cc5389
commit 598566fce3
3 changed files with 19 additions and 0 deletions

View file

@ -1,3 +1,8 @@
Mon Nov 1 00:58:00 2010 Akinori MUSHA <knu@iDaemons.org>
* ext/digest/digest.c (rb_digest_class_init): Define
Digest::Class.new(). [Feature #3954]
Sat Oct 30 11:26:07 2010 Marc-Andre Lafortune <ruby-core@marc-andre.ca> Sat Oct 30 11:26:07 2010 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
* object.c: Make BasicObject.new accept no parameter. * object.c: Make BasicObject.new accept no parameter.

View file

@ -415,6 +415,13 @@ rb_digest_class_s_hexdigest(int argc, VALUE *argv, VALUE klass)
return hexencode_str_new(rb_funcall2(klass, id_digest, argc, argv)); return hexencode_str_new(rb_funcall2(klass, id_digest, argc, argv));
} }
/* :nodoc: */
static VALUE
rb_digest_class_init(VALUE self)
{
return self;
}
/* /*
* Document-class: Digest::Base * Document-class: Digest::Base
* *
@ -622,6 +629,7 @@ Init_digest(void)
* class Digest::Class * class Digest::Class
*/ */
rb_cDigest_Class = rb_define_class_under(rb_mDigest, "Class", rb_cObject); rb_cDigest_Class = rb_define_class_under(rb_mDigest, "Class", rb_cObject);
rb_define_method(rb_cDigest_Class, "initialize", rb_digest_class_init, 0);
rb_include_module(rb_cDigest_Class, rb_mDigest_Instance); rb_include_module(rb_cDigest_Class, rb_mDigest_Instance);
/* class methods */ /* class methods */

View file

@ -17,6 +17,12 @@ module TestDigest
Data1 = "abc" Data1 = "abc"
Data2 = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" Data2 = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"
def test_s_new
self.class::DATA.each do |str, hexdigest|
assert_raise(ArgumentError) { self.class::ALGO.new("") }
end
end
def test_s_hexdigest def test_s_hexdigest
self.class::DATA.each do |str, hexdigest| self.class::DATA.each do |str, hexdigest|
assert_equal(hexdigest, self.class::ALGO.hexdigest(str)) assert_equal(hexdigest, self.class::ALGO.hexdigest(str))