[#38080] ポートが閉じているときの例外など — Mitsuru Ogino <ogino@...>

荻野と申します。いつも質問や要望ばかりですみません。

36 messages 2003/08/11
[#38086] Re: ポートが閉じているときの例外など — nobu.nakada@... 2003/08/12

なかだです。

[#38088] Re: ポートが閉じているときの例外など — IWAOKA Masahiro <iwaoka@...> 2003/08/12

いわおかです。

[#38091] Re: ポートが閉じているときの例外など — Mitsuru Ogino <ogino@...> 2003/08/12

荻野です。

[#38092] Re: ポートが閉じているときの例外など — nobu.nakada@... 2003/08/12

なかだです。

[#38093] Re: ポートが閉じているときの例外など — IWAOKA Masahiro <iwaoka@...> 2003/08/12

いわおかです。

[#38095] Re: ポートが閉じているときの例外など — Takahiro Kambe <taca@...> 2003/08/12

In message <20030812150516.GV37221@barber.fe.rn.tuat.ac.jp>

[#38102] Re: ポートが閉じているときの例外など — Tetsuo NAKAGAWA <tet@...> 2003/08/14

中川と申します。

[#38121] Re: ポートが閉じているときの例外など — Takahiro Kambe <taca@...> 2003/08/15

In message <20030814.140757.707824131.tetsuo@sapphire.siz.nes.nec.co.jp>

[#38123] Re: ポートが閉じているときの例外など — nobu.nakada@... 2003/08/16

なかだです。

[#38130] Re: ポートが閉じているときの例外など — Takahiro Kambe <taca@...> 2003/08/16

In message <200308160517.h7G5HcPL012839@sharui.nakada.kanuma.tochigi.jp>

[#38137] Re: ポートが閉じているときの例外など — nobu.nakada@... 2003/08/18

なかだです。

[#38139] Re: ポートが閉じているときの例外など — Takahiro Kambe <taca@...> 2003/08/18

In message <200308180959.h7I9xnb7001977@sharui.nakada.kanuma.tochigi.jp>

[#38122] ruby-tcpwrap and mkmf.rb — Takahiro Kambe <taca@...>

こんにちは。

16 messages 2003/08/16
[#38125] Re: ruby-tcpwrap and mkmf.rb — "Akinori MUSHA" <knu@...> 2003/08/16

At Sat, 16 Aug 2003 12:51:55 +0900,

[#38183] String << の動作につきまして — kuto@...

うと と申します。

44 messages 2003/08/22
[#38187] Re: String << の動作につきまして — Take_tk <ggb03124@...> 2003/08/22

たけ(tk)です。

[#38189] Re: String << の動作につきまして — Tadayoshi Funaba <tadf@...5.so-net.ne.jp> 2003/08/23

ふなばです。

[#38190] Re: String << の動作につきまして — Take_tk <ggb03124@...> 2003/08/23

たけ(tk)です。

[#38191] Re: String << の動作につきまして — Tadayoshi Funaba <tadf@...5.so-net.ne.jp> 2003/08/23

ふなばです。

[#38194] Re: String << の動作につきまして — Take_tk <ggb03124@...> 2003/08/23

たけ(tk)です。

[#38196] Re: String << の動作につきまして — Tadayoshi Funaba <tadf@...5.so-net.ne.jp> 2003/08/23

ふなばです。

[#38203] Re: String << の動作につきまして — 西 啓一朗 <receiver@...> 2003/08/23

ども、西啓一朗@Ktouth Brand. です。

[#38208] Re: String << の動作につきまして — Tadayoshi Funaba <tadf@...5.so-net.ne.jp> 2003/08/23

ふなばです。

[#38211] Re: String << の動作につきまして — 西 啓一朗 <receiver@...> 2003/08/24

ども、西啓一朗@Ktouth Brand. です。

[#38195] 理解の進め方(Re: String << の動作につきまして) — Tadashi Oh-Ya <toy@...>

おおやです。

36 messages 2003/08/23
[#38206] 理解の進め方:シュールな世界 — Take_tk <ggb03124@...> 2003/08/23

たけ(tk)です。

[#38233] シュールな名前 — Take_tk <ggb03124@...> 2003/08/25

たけ(tk)です

[#38198] Tmailで送るメールに日付がつけられなくなりました — 川田誠司 <kawada.seiji@...>

はじめまして

11 messages 2003/08/23

[#38256] かみ砕いた説明をすべき範囲 — 西 啓一朗 <receiver@...>

ども。西啓一朗@Ktouth Brand. です。

41 messages 2003/08/26
[#38258] Re: かみ砕いた説明をすべき範囲 — nobu.nakada@... 2003/08/26

なかだです。

[#38261] Re: かみ砕いた説明をすべき範囲 — Take_tk <ggb03124@...> 2003/08/26

たけ(tk)です

[#38262] Re: かみ砕いた説明をすべき範囲 — nobu.nakada@... 2003/08/26

なかだです。

[#38264] Re: かみ砕いた説明をすべき範囲 — Take_tk <ggb03124@...> 2003/08/26

たけ(tk)です

[#38265] Re: かみ砕いた説明をすべき範囲 — IWAOKA Masahiro <iwaoka@...> 2003/08/26

いわおかです。

[#38267] Re: かみ砕いた説明をすべき範囲 — Take_tk <ggb03124@...> 2003/08/26

たけ(tk)です

[#38273] Re: かみ砕いた説明をすべき範囲 — matz@... (Yukihiro Matsumoto) 2003/08/26

まつもと ゆきひろです

[ruby-list:38089] Re: module extendable?

From: nobu.nakada@...
Date: 2003-08-12 12:11:11 UTC
List: ruby-list #38089
なかだです。

At Mon, 11 Aug 2003 18:25:47 +0900,
Takeshi Horinouchi wrote:
> > module_functionは、インスタンスメソッドをメタクラスにコピーして
> > 元のインスタンスメソッドはprivateにします。
> 
> ちゃんと理解できてませんが、module_function にするものは、もとは
> public_class_method でないといけないんですね。確かにマニュアルを
> 見ると、module_function は、プライベートかつモジュール関数にする
> と書いてあります。

もとはインスタンスメソッドとして定義されている必要があります。
publicである必要はありません。

> > > なお、module Bar において extend でなく include にしてもだめです。
> > > 
> > > /.../nested_modules2.rb:18:in `there': undefined method `there' 
> > > for Bar:Module (NameError)
> > >         from /.../nested_modules2.rb:26
> > 
> > スーパークラスのクラスメソッドが継承されるように、includeされた
> > モジュールのクラスメソッドも継承されるべき、ということでしょう
> > か。
> 
> 理解できてないので、「べき」かどうかは全くわかりません。
> class に include する場合にはモジュール内に別のモジュールを
> include できるので、類推でやってみたけど出来なかったまでです。

その類推が合理的かどうかということですね。個人的にはこれはでき
ていいのではないかと思います。

> ただ、
> 
>   public_class_method :there
> 
> とするよりもわかりやすい方法があってもいい気はします。
> (あるいはこの手法をマニュアルに載せるか...。
> もし、これが想定されてない「裏技」ならば、将来使えなくなる
> かもと、少し不安に思います。)

むしろ、Module#extendとModule#module_functionの動作からは当然の
帰結なので、不要になることはあっても動かなくなる可能性は低いと
思います。


Index: class.c
===================================================================
RCS file: /cvs/ruby/src/ruby/class.c,v
retrieving revision 1.76
diff -u -2 -p -r1.76 class.c
--- class.c	6 Aug 2003 21:50:05 -0000	1.76
+++ class.c	12 Aug 2003 06:33:56 -0000
@@ -352,5 +352,5 @@ rb_include_module(klass, module)
     VALUE klass, module;
 {
-    VALUE p, c;
+    VALUE p, c, m;
     int changed = 0;
 
@@ -367,10 +367,12 @@ rb_include_module(klass, module)
     }
 
+  again:
     OBJ_INFECT(klass, module);
     c = klass;
-    while (module) {
+    m = module;
+    while (m && m != klass) {
 	int superclass_seen = Qfalse;
 
-	if (RCLASS(klass)->m_tbl == RCLASS(module)->m_tbl)
+	if (RCLASS(klass)->m_tbl == RCLASS(m)->m_tbl)
 	    rb_raise(rb_eArgError, "cyclic include detected");
 	/* ignore if the module included already in superclasses */
@@ -378,5 +380,5 @@ rb_include_module(klass, module)
 	    switch (BUILTIN_TYPE(p)) {
 	      case T_ICLASS:
-		if (RCLASS(p)->m_tbl == RCLASS(module)->m_tbl) {
+		if (RCLASS(p)->m_tbl == RCLASS(m)->m_tbl) {
 		    if (!superclass_seen) {
 			c = p;	/* move insertion point */
@@ -390,8 +392,13 @@ rb_include_module(klass, module)
 	    }
 	}
-	c = RCLASS(c)->super = include_class_new(module, RCLASS(c)->super);
+	c = RCLASS(c)->super = include_class_new(m, RCLASS(c)->super);
 	changed = 1;
       skip:
-	module = RCLASS(module)->super;
+	m = RCLASS(m)->super;
+    }
+    if (BUILTIN_TYPE(klass) != T_ICLASS && !FL_TEST(klass, FL_SINGLETON)) {
+	klass = RBASIC(klass)->klass;
+	module = RBASIC(module)->klass;
+	if (module) goto again;
     }
     if (changed) rb_clear_cache();


-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread