[#1381] bound method — shugo@... (Shugo Maeda)

前田です。

21 messages 1998/02/04
[#1383] Re: bound method — matz@... (Yukihiro Matsumoto) 1998/02/05

まつもと ゆきひろです

[#1384] Re: bound method — keiju@... (石塚圭樹 ) 1998/02/05

けいじゅ@日本ラショナルソフトウェアです.

[#1385] Re: bound method — matz@... (Yukihiro Matsumoto) 1998/02/05

まつもと ゆきひろです

[#1387] Re: bound method — keiju@... (石塚圭樹 ) 1998/02/05

けいじゅ@日本ラショナルソフトウェアです.

[#1388] Re: bound method — matz@... (Yukihiro Matsumoto) 1998/02/05

まつもと ゆきひろです

[#1389] Re: bound method — keiju@... (石塚圭樹 ) 1998/02/05

けいじゅ@日本ラショナルソフトウェアです.

[#1396] Re: bound method — matz@... (Yukihiro Matsumoto) 1998/02/06

まつもと ゆきひろです

[#1410] GD — Masao Kanemitsu <masao-k@...>

30 messages 1998/02/10
[#1411] Re: GD — matz@... (Yukihiro Matsumoto) 1998/02/10

まつもと ゆきひろです

[#1413] Re: GD — WATANABE Hirofumi <watanabe@...> 1998/02/10

わたなべです.

[#1417] Re: GD — Masao Kanemitsu <masao-k@...> 1998/02/10

<199802100623.PAA03533@eban.ase.ptg.sony.co.jp> の、

[#1420] Re: GD — WATANABE Hirofumi <watanabe@...> 1998/02/10

わたなべです.

[#1426] Re: GD — Masao Kanemitsu <masao-k@...> 1998/02/10

<199802100733.QAA04028@eban.ase.ptg.sony.co.jp> の、

[#1428] Re: GD — WATANABE Hirofumi <watanabe@...> 1998/02/10

わたなべです.

[#1429] Re: GD — Masao Kanemitsu <masao-k@...> 1998/02/10

<199802100757.QAA04212@eban.ase.ptg.sony.co.jp> の、

[#1431] Re: GD — WATANABE Hirofumi <watanabe@...> 1998/02/10

わたなべです.

[#1434] Re: GD — Masao Kanemitsu <masao-k@...> 1998/02/12

<199802100952.SAA04346@eban.ase.ptg.sony.co.jp> の、

[#1435] Re: GD — WATANABE Hirofumi <watanabe@...> 1998/02/12

わたなべです.

[#1436] Re: GD — Masao Kanemitsu <masao-k@...> 1998/02/12

<199802120449.NAA00398@eban.ase.ptg.sony.co.jp> の、

[ruby-dev:1362] Re: [MethodIndex] Bug and question

From: keiju@... (石塚圭樹 )
Date: 1998-02-02 07:05:53 UTC
List: ruby-dev #1362
けいじゅ@日本ラショナルソフトウェアです.

In [ruby-dev :01359 ] the message: "[ruby-dev:1359] Re: [MethodIndex]
Bug and question ", on Jan/30 18:25(JST) Yukihiro Matsumoto writes:

>まつもと ゆきひろです

>Rubyには既に自オブジェクトで定義されている特異メソッドを返す
>Object#singleton_methodsってのがありますから,これでなんとか
>なるんではと思います.

>どのクラスでクラスメソッドが(最初に)定義されたかが必要であれ
>ば,
>
>  * Class#ancestorsで先祖を得る
>  * Moduleを除く
>  * 逆順にsingleton_methodsを得る
>  * 先祖のsingleton_methodsから自分のsingleton_methodsを引き
>    算する
>
>で,得られます.もし,どのクラスで再定義されているかという情
>報も必要でしたら,なんらかの拡張が必要ですね.

この方法では完全ではないですよね. 

rbc0> module Foo
rbc1>   def foo; "foo"; end
rbc1> end
rbc0> class Bar;end
rbc0> class Baz < Bar; end
rbc0> Bar.extend Foo
Bar
rbc0> Baz.ancestors
[Baz, Bar, Object, Kernel]

このようにextendしたmoduleの情報を得ることができませんし, 上記のアルゴ
リズムではそこで定義されているメソッドも得ることはできません.

rbc0> class << Baz; included_modules; end
[Foo, Kernel]
rbc0> 

や

rbc0> class << Baz; ancestors; end
[Foo, Class, Module, Object, Kernel]

で, extendしたモジュール得ることはできるんですが...

そのクラスで直接extendしているモジュールがわかるわけではないので, 実際
の継承関係を得るのはめんどくさいですね...

少なくとも, 直接extendしているモジュールを得るAPIが欲しいですねえ...

でも, できれば前のメイルのような, 特異メソッドの登録されているクラスの
継承列を得るAPIを用意してもらえると嬉しいですが...


>モジュールをincludeした時に継承階層の中で既にincludeされてい
>ればなにもしません.そのつもりで,そうなってます.

でしたよね. 話を聞いた覚えもあったのですが(^^;;

__
................................石塚 圭樹@日本ラショナルソフトェア...
----------------------------------->> e-mail: keiju@rational.com <<---

In This Thread