[ruby-list:487] Re: meta-level features(Re: bug? and question)

From:
Date: 1996-09-04 06:34:41 UTC
List: ruby-list #487
けいじゅ@SHLジャパンです. 

In [ruby-list :00480 ] the message: "[ruby-list:480] meta-level
features(Re: bug? and question) ", on Sep/02 17:57(JST)
matz@caelum.co.jp (Yukihiro Matsumoto) writes:

>ストラクトのメンバ名やメンバ数が欲しいんですね.分かりました.
>こういう感じでどうでしょう.
>
>  Struct.members
>  Struct#members
>
>で,ストラクトのメンバの配列が帰ります.メンバ名はSymbolです
>から,文字列にする時には id2name を実行してください.

In [ruby-list :00482 ] the message: "[ruby-list:482] Re: meta-level
features(Re: bug? and question) ", on Sep/02 18:09(JST)
matz@caelum.co.jp (Yukihiro Matsumoto) writes:
>
>作ってみたら使いにくかったので,文字列にします.

ストラクトであれば, このAPIで良いのですが... ストラクトもクラスの一種
なんですよね?

>Cレベルではかなりのことができるようになっているので,要は
>rubyからアクセスできるようにすれば良いだけのことです.今まで
>ニーズが無かったので設計しませんでしたが,リクエストがあれば
>喜んで導入します.

将来デバッガ/ブラウザを作る時にも訳に立ちますよきっと.

>具体的にはどのような機能が欲しいですか?

欲しいかといわれると, 今は特に必要としていないので... あれば良いと思う
機能で思いついたものを列挙します.

rubyは特異メソッドがあるので難しいのですが... 確か, オブジェクト単位で
モジュールをインクルード(エクテンド)できましたよね? まさか, 特異スーパ
クラスというのはないですよね? 

objectからクラスを得る関数.
objectからモジュールを得る関数
objectから特異メソッドを含むメソッドを得る関数
objectからメンバを得る関数

モジュールとメソッドは特異モジュールと特異メソッドを得るだけでも良いか
も知れません.

クラスから, クラス名を得る関数
クラスから, スーパクラスを得る関数.
クラスから, モジュールを得る関数
クラスから, メソッドを得る関数
クラスから, メンバを得る関数.

メソッド, メンバはアクセス権があるので, その情報を取り扱えるように文字
列とかではなくて, Member/Methodなどのインスタンスである方がよいと思い
ます. 

メンバから, 名前を得る関数
メンバから, アクセス権を得る関数
メンバから, アクセスメソッドを得る関数
メンバから, 所属のクラスを得る

メソッドから, 名前を得る関数
メソッドから, アクセス権を得る関数
メソッドから, 所属のクラス/オブジェクトを得る

あと, メンバに値を設定する関数やメソッドを呼び出すが必要ですが, evalを
使えばできるのでいらないですかね...


__
..........................................石塚 圭樹@SHLジャパン(株)...
------------->アドレス変わりました!! e-mail: keiju@shljapan.co.jp <----

In This Thread

Prev Next