[#37762] tcltklibの作りかた — Mitsuo Igarashi <mitsu5@...>
mitsu5 です。
8 messages
2003/06/07
[#37774] Ruby/zlibのインストール方法はどのようにするのですか? — "igusa" <igusa@...>
いぐさです。
6 messages
2003/06/09
[#37801] 動的に生成したクラスメソッドのundef — Ryuichiro Hara <r@...>
動的に生成したメソッドを除く方法を知りたく質問します。
6 messages
2003/06/19
[#37814] Re: Oniguruma and PHP — kkosako@...
> スラッシュドットでも話題になっていましたが、Onigurumaを
1 message
2003/06/23
[#37815] 配列の使い方 — Kouji Miyauchi <koji.miyauchi@...>
宮内と申します。
9 messages
2003/06/23
[#37830] reference from nested class to a constant in a module included by the parent class — NISHIMATSU Takeshi <t-nissie@...>
西松と申します.
6 messages
2003/06/27
[#37838] Raccのインストールについて (MacOS X) — "Ken'ichiro Nakatani" <kenzo@...>
はじめまして。中谷と申します。
8 messages
2003/06/27
[#37839] Re: Raccのインストールについて (MacOS X)
— Ogino Junya <ogino@...>
2003/06/28
荻野ともうします。
[ruby-list:37801] 動的に生成したクラスメソッドのundef
From:
Ryuichiro Hara <r@...>
Date:
2003-06-19 05:46:18 UTC
List:
ruby-list #37801
動的に生成したメソッドを除く方法を知りたく質問します。
class A
def initialize
eval('def foo; "foo"; end')
end
def bar
"bar"
end
# undef_method :foo #=> これはエラーになる
# こもっともです。
end
a = A.new
a.methods.include? 'foo' #=> true
このクラスのインスタンスレベルは、fooメソッドを持っているにもかか
わらず、クラスAの定義の中ではエラーになります。まぁ、もっともな感
じはしますが。
でも、このような動的に生成したメソッドを何とか後から削除する方法は
ないのでしょうか?
例えば一例、こんな場合です。
require 'cgi'
require 'cgi/sesion'
class MyCGI < CGI
def initialize
super "html4Tr"
session = Session.new(self)
end
undef_method :fieldset #=> これはエラーになる
# 気持ち、これをやりたい
end
cgi = MyCGI.new
cgi = CGI::Session.new(cgi)
p cgi.form()
fieldsetメソッドがCGIクラスの中で動的に生成しますが、このfieldset
という名のメソッドが定義されているか否かによってformブロック内に埋
め込まれるセッションIDを保持したhiddenフィールドの出力が変わります。
fieldsetが定義されているとMozillaで正しくレンダリングされない
<FIELDSET>...</FIELDSET>を出力してしまいます。
で、これを削除したいわけですが、現状ではもとのcgi.rbをいじって対処
しています。コーディングで対処できるといいのですが、いい方法はない
のでしょうか?
--
はらりゅう