[#3567] Nil is a subclass of Object? — shugo@... (maeda shugo)

前田です。

26 messages 1997/08/02
[#3570] Re: Nil is a subclass of Object? — matz@... (Yukihiro Matsumoto) 1997/08/03

まつもと ゆきひろです

[#3572] Re: Nil is a subclass of Object? — keiju@... (石塚圭樹 ) 1997/08/03

けいじゅ@日本ラショナルです.

[#3573] Re: Nil is a subclass of Object? — matz@... (Yukihiro Matsumoto) 1997/08/03

まつもと ゆきひろです

[#3715] may i make a ruby.rpm? — Shoichi OZAWA <ozawa@...>

こんにちは 小澤@日立 です。

15 messages 1997/08/20

[#3736] module for GNU Readline Library — shugo@... (前田 修吾 / maeda shugo)

前田です。

12 messages 1997/08/20

[#3833] [Bug] Regexp.quote — shugo@... (前田 修吾 / maeda shugo)

前田です。

25 messages 1997/08/26
[#3836] BEGIN and END — Masaki Suketa <suke@...> 1997/08/26

助田です。

[#3837] Re: BEGIN and END — matz@... (Yukihiro Matsumoto) 1997/08/27

まつもと ゆきひろです

[#3842] Re: BEGIN and END — keiju@... (石塚圭樹 ) 1997/08/27

けいじゅ@日本ラショナルです.

[#3839] Re: SyslogSendmail class — takagi@... (TAKAGI Hiromitsu)

> そうですね.本当はこーゆーのが ruby-list の本来の形ですね.

18 messages 1997/08/27
[#3840] Re: SyslogSendmail class — matz@... (Yukihiro Matsumoto) 1997/08/27

まつもと ゆきひろです

[#3852] Re: SyslogSendmail class — keiju@... (石塚圭樹 ) 1997/08/27

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

[#3909] Object#id <=> Fixnum#id2object ? (Re: SyslogSendmail class) — shugo@... (前田 修吾 / maeda shugo) 1997/08/28

前田です。

[#3869] Re: SyslogSendmail class — takagi@... (TAKAGI Hiromitsu)

> Moduleのところに書いてあるんですねえ.こういうノウハウを記述

15 messages 1997/08/27
[#3870] Re: SyslogSendmail class — matz@... (Yukihiro Matsumoto) 1997/08/27

まつもと ゆきひろです

[#3906] document for beginner — toyofuku@...

豊福@パパイヤです。

21 messages 1997/08/28
[#3917] Re: document for beginner — Kikutani Makoto <kikutani@...> 1997/08/29

きくたにです。

[#3925] Re: document for beginner — Masaki Suketa <suke@...> 1997/08/29

助田です

[#3926] Curses (Re: document for beginner) — Kikutani Makoto <kikutani@...> 1997/08/29

Fri, Aug 29, 1997 at 12:54:15PM +0900 において

[#3933] Re: ruby constants — toyofuku@...

豊福@パパイヤです。

16 messages 1997/08/29
[#3934] Re: ruby constants — matz@... (Yukihiro Matsumoto) 1997/08/29

まつもと ゆきひろです

[#3939] Re: ruby constants — WATANABE Hirofumi <watanabe@...> 1997/08/29

わたなべです.

[ruby-list:3986] Re: Object#id <=> Fixnum#id2object ? (Re: SyslogSendmail class)

From: keiju@... (石塚圭樹 )
Date: 1997-08-30 12:27:19 UTC
List: ruby-list #3986
けいじゅ@日本ラショナルソフトウェアです.

In [ruby-list :03981 ] the message: "[ruby-list:3981] Re: Object#id
<=> Fixnum#id2object ? (Re: SyslogSendmail class) ", on Aug/30
14:39(JST) shugo@po.aianet.ne.jp (前田 修吾/ maeda shugo) writes:

>前田です。

>Foo = Class.new
>baz = [0, 1, 2]
>eval("class Foo; BAZ = #{baz.embed}; end")
>p Foo::BAZ		# => [0, 1, 2]
>p baz.equal? Foo::BAZ	# => TRUE
>
># もちろんこの例ならFoo.const_set("BAZ", foo)で済みますが。

そうですね. MLF関連メソッドが揃ったので, stringifyに悩むことも少なくな
るんじゃないでしょうか? 

以前, 良く問題になったのは, 上記の例のようにevalの中にclassがありその
中にevalの外の変数を使いたい時に良く苦労したんですが, instance_evalや
module_evalができたので, それを使えばほとんどの場合問題なくなるんじゃ
ないでしょうか?

class Foo;end
baz = [0, 1, 2]
Foo.module_eval "BAZ = baz"
print Foo::BAZ

でも, メソッド定義を行いたい時は問題ありか...

baz = [0, 1, 2]
Foo.module_eval %q{
  def foo
    #{baz.embed}.concat 3
  end
}

に相当するものは実現できないですね...

# **_evalでclassの枠はとれましたが, defの枠はとれてないからなあ...

前田さんはObjectSpaceを使っていますが, 以下のような実装もありますね.
一度embedされたオブジェクトはGCされなくなるという問題がありますが, ま
あ, メソッド定義の時はGCされると困るので...(^^;;;

  class Object
    Id2Object = {}
    
    def embed
      Id2Object[id] = self
      format("Id2Object[%d]", id)
    end
  end

  Foo = Class.new
  baz = [0, 1, 2]
  eval("class Foo; BAZ = #{baz.embed}; end")
  p Foo::BAZ		# => [0, 1, 2]
  p baz.equal? Foo::BAZ	# => TRUE

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

In This Thread