[#29374] nil.to_s — Shugo Maeda <shugo@...>

前田です。

59 messages 2006/09/01
[#29375] Re: nil.to_s — "U.Nakamura" <usa@...> 2006/09/01

こんにちは、なかむら(う)です。

[#29380] Re: nil.to_s — Yukihiro Matsumoto <matz@...> 2006/09/01

まつもと ゆきひろです

[#29387] Re: nil.to_s — Shugo Maeda <shugo@...> 2006/09/01

前田です。

[#29390] Re: nil.to_s — Yukihiro Matsumoto <matz@...> 2006/09/01

まつもと ゆきひろです

[#29398] Re: nil.to_s — "NARUSE, Yui" <naruse@...> 2006/09/01

成瀬です。

[#29400] Re: nil.to_s — Yukihiro Matsumoto <matz@...> 2006/09/01

まつもと ゆきひろです

[#29491] symbol and string — Tanaka Akira <akr@...>

open-uri で :proxy=>nil という指定を行うと、以下のようにエラーになります。

33 messages 2006/09/05
[#29499] Re: symbol and string — Yukihiro Matsumoto <matz@...> 2006/09/05

まつもと ゆきひろです

[#29500] Re: symbol and string — Tanaka Akira <akr@...> 2006/09/05

In article <1157470154.047826.13379.nullmailer@x31.priv.netlab.jp>,

[#29503] Re: symbol and string — Yukihiro Matsumoto <matz@...> 2006/09/06

まつもと ゆきひろです

[#29504] Re: symbol and string — Tanaka Akira <akr@...> 2006/09/06

In article <1157505538.340126.8472.nullmailer@x31.priv.netlab.jp>,

[#29507] Re: symbol and string — Yukihiro Matsumoto <matz@...> 2006/09/06

まつもと ゆきひろです

[#29512] Re: symbol and string — keiju@... (石塚圭樹) 2006/09/06

けいじゅ@いしつかです.

[#29529] Re: symbol and string — SASADA Koichi <ko1@...> 2006/09/08

 ささだです。

[#29530] Re: symbol and string — Yukihiro Matsumoto <matz@...> 2006/09/08

まつもと ゆきひろです

[ruby-dev:29573] Digest::Base#inspect

From: Tanaka Akira <akr@...>
Date: 2006-09-13 17:25:09 UTC
List: ruby-dev #29573
Digest::SHA256 のインスタンスとかを p で表示すると以下のよう
に 16進の文字列が出てきます。

% ./ruby -v -rdigest -e 'p Digest::SHA256.new'
ruby 1.9.0 (2006-09-13) [i686-linux]
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

だいたい一意であるといわれればそれはそうなのかもしれませんが
やはりここは以下のようになってほしいのですが、どうでしょう?

% ./ruby -rdigest -e 'p Digest::SHA256.new'   
#<Digest::SHA256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855>

Index: ext/digest/digest.c
===================================================================
RCS file: /src/ruby/ext/digest/digest.c,v
retrieving revision 1.17
diff -u -p -r1.17 digest.c
--- ext/digest/digest.c	12 Dec 2005 05:15:33 -0000	1.17
+++ ext/digest/digest.c	13 Sep 2006 17:20:19 -0000
@@ -210,6 +210,27 @@ rb_digest_base_hexdigest(VALUE self)
 }
 
 static VALUE
+rb_digest_base_inspect(VALUE self)
+{
+    algo_t *algo;
+    VALUE str;
+    char *cname;
+
+    algo = get_digest_base_metadata(rb_obj_class(self));
+
+    cname = rb_obj_classname(self);
+
+    /* #<Digest::Alg: xxxxx...xxxx> */
+    str = rb_str_buf_new(2 + strlen(cname) + 2 + algo->digest_len * 2 + 1);
+    rb_str_buf_cat2(str, "#<");
+    rb_str_buf_cat2(str, cname);
+    rb_str_buf_cat2(str, ": ");
+    rb_str_buf_append(str, rb_digest_base_hexdigest(self));
+    rb_str_buf_cat2(str, ">");
+    return str;
+}
+
+static VALUE
 rb_digest_base_equal(VALUE self, VALUE other)
 {
     algo_t *algo;
@@ -265,6 +286,7 @@ Init_digest()
     rb_define_method(cDigest_Base, "digest", rb_digest_base_digest, 0);
     rb_define_method(cDigest_Base, "hexdigest", rb_digest_base_hexdigest, 0);
     rb_define_method(cDigest_Base, "to_s", rb_digest_base_hexdigest, 0);
+    rb_define_method(cDigest_Base, "inspect", rb_digest_base_inspect, 0);
     rb_define_method(cDigest_Base, "==", rb_digest_base_equal, 1);
 
     id_metadata = rb_intern("metadata");
-- 
[田中 哲][たなか あきら][Tanaka Akira]

In This Thread

Prev Next