[#352] ruby 1.1a5 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

38 messages 1997/09/01
[#353] Re: ruby 1.1a5 released — keiju@... (石塚圭樹 ) 1997/09/01

[#354] Re: ruby 1.1a5 released — matz@... (Yukihiro Matsumoto) 1997/09/01

まつもと ゆきひろです

[#356] Re: methods [Re: ruby 1.1a5 released] — matz@... (Yukihiro Matsumoto) 1997/09/01

まつもと ゆきひろです

[#357] Re: methods [Re: ruby 1.1a5 released] — keiju@... (Keiju ISHITSUKA) 1997/09/01

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

[#359] Re: methods [Re: ruby 1.1a5 released] — matz@... (Yukihiro Matsumoto) 1997/09/02

まつもと ゆきひろです

[#363] Re: methods [Re: ruby 1.1a5 released] — matz@... (Yukihiro Matsumoto) 1997/09/02

まつもと ゆきひろです

[#374] Re: methods [Re: ruby 1.1a5 released] — matz@... (Yukihiro Matsumoto) 1997/09/02

まつもと ゆきひろです

[#376] Re: methods [Re: ruby 1.1a5 released] — keiju@... (Keiju ISHITSUKA) 1997/09/02

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

[#382] Re: methods [Re: ruby 1.1a5 released] — matz@... (Yukihiro Matsumoto) 1997/09/02

まつもと ゆきひろです

[#390] Re: methods [Re: ruby 1.1a5 released] — keiju@... (Keiju ISHITSUKA) 1997/09/03

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

[#391] Re: methods [Re: ruby 1.1a5 released] — matz@... (Yukihiro Matsumoto) 1997/09/03

まつもと ゆきひろです

[#441] How to report a bug — takagi@... (TAKAGI Hiromitsu)

Bus error が出ました。

15 messages 1997/09/09

[#461] [Q] ruby-socket(mswin32) — Masaki Suketa <suke@...>

助田です

27 messages 1997/09/11
[#462] Re: [Q] ruby-socket(mswin32) — matz@... (Yukihiro Matsumoto) 1997/09/11

まつもと ゆきひろです

[#463] Re: [Q] ruby-socket(mswin32) — Masaki Suketa <suke@...> 1997/09/11

助田です

[#464] Re: [Q] ruby-socket(mswin32) — matz@... (Yukihiro Matsumoto) 1997/09/11

まつもと ゆきひろです

[#467] Re: [Q] ruby-socket(mswin32) — WATANABE Hirofumi <watanabe@...> 1997/09/11

わたなべです.

[#594] BUG?(marshal) — Masaki Suketa <suke@...>

以下のプログラムを実行した時に(3)と(4)で出力結果が違います。

17 messages 1997/09/30

[ruby-dev:376] Re: methods [Re: ruby 1.1a5 released]

From: keiju@... (Keiju ISHITSUKA)
Date: 1997-09-02 07:59:51 UTC
List: ruby-dev #376
けいじゅ@日本ラショナルソフトウェアです.

In [ruby-dev :00374 ] the message: "[ruby-dev:374] Re: methods [Re:
ruby 1.1a5 released] ", on Sep/02 16:12(JST) matz@netlab.co.jp
(Yukihiro Matsumoto) writes:

>まつもと ゆきひろです

>|少なくともそれは欲しいですね. あと, 
>|* オブジェクトのプライベートな特異メソッドを返す関数
>|も欲しいですね. 
>
>うーん,メソッドは
>
>  * 特異メソッド
>  * そのオブジェクトのクラスで定義されているもの
>  * そのクラスに継承やincludeで取り込まれているもの
>
>にわけられると思いますが(それぞれにpublic/privateがある),
>
>  * 全部を得る
>  * 特異メソッドだけを得る
>  * あるクラス/モジュールで定義されているメソッドだけをとる
>
>があれば良いのかな.どう思います?

基本的にはそれで十分でしょう. もし, 何か他の機能が欲しくてもこれらから
作れるでしょう.

>とすると,
>
>  Objcet#methods(全部のメソッドのリスト)
>  Object#private_methods(全部のメソッドのリスト)
>  Module#instance_methods(そのクラスのメソッド)
>  Module#private_instance_methods(そのクラスのメソッド)
>  Objcet#singleton_methods(特異メソッドだけ)
>        class << obj; self.instance_methods end と同じ
>
>で,どうかな,と思うんですけど.privateな特異メソッドは

>  class << obj; self.private_instance_methods end
>
>で対応しようかな,と思います.

そうですね. class<<を使わないとprivateな特異メソッドはできないので, 必
要ないと思うんですが...

対応するってどういう意味でしょう? 

>|* その(クラスのインスタンス|オブジェクト)が分かるメソッドとそれが実際
>|  にどのクラスで定義されているかの組みを返してくれるメソッド

>これはmetap.rbででも対応しましょうか.
>書いて下さるんでしたら,取り込みますが.

そうですね. どうせ必要ですし. こちらで作りましょう. 他の応用meta機能も
切り出せて有用と考えられるものは, metap.rbに入れるようにしましょう.

>|* ancestorsに相当する, 定数の参照パスを返すメソッド
>|* か, 静的スコープのパス(これは分かるのかな? 文字列ベースだけど)
>|が必要ですね. 後者は優先順位の判断はこちらで行うことになるので若干面倒
>|ですが, ancestorsの機能と重複していないのでその方が良いかも...
>
>後者は採用しましょう.

了解しました.

>|* あるクラスから直接includeしているモジュールを調べるメソッド(優先度順)
>|* あるクラスのサブクラス群を取り出すメソッド
>|は欲しいですね. 後者はスーパクラスが分かるのでそういう情報を作ることは
>|できなくもないですが, 前者は今のところ無理ですよね.
>
>ancestorsとkind_of?(Module)を組み合わせれば可能ですね.ただ
>し,includeがあるところを完全に検出することは出来ませんけど
>(すでにスーパークラスでincludeされていた場合,includeはなに
>もしないから).

なるほど. といいたいところですが... 

直接とは:

  class Foo 
    include Bar
  end

と直接includeしているという意味なんですが, ancestorsとモジュールである
ことだけで分かるんですか?

  module Foo; end
  module Bar; include Foo; end
  class Baz; include Bar; end

と

  module Foo; end
  module Bar; end
  class Baz; include Bar; include Foo; end

の区別がつかないと思うんですけど...

あと, ちょっと気になることが... それは別メイルで.

>|あと, さらに要望を述べるなら, メソッド内部の情報になっていくと思います.
>|
>|* 定義されているクラス
>|* メソッド名
>
>ここまではまあ良いとして,
>
>|* 引数の数
>|* 使用しているインスタンス変数の一覧
>|* 使用している定数の一覧
>|* ローカル変数(およびプライベート呼びだしメソッド)の一覧
>|* 呼び出しているメソッド名の一覧
>|
>|でも, ここまでは大変でしょ?
>
>ええ,それにソースそのものに関する情報は内部的には持たないよ
>うにしようと思っていますから,この辺は採用するつもりはありま
>せん.ごめんね.

ええ. 分かっていて書きましたから(^^;;;

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

In This Thread