[#6862] Re: http_get.rb — 青山 和光 <PXN11625@...>
In-Reply-To: [ruby-list:6844] Re: http_get.rb
藤本です、こんにちは。
まつもと ゆきひろです
藤本です、こんにちは。
まつもと ゆきひろです
[#6889] lib/date.rb — Tadayoshi Funaba <tadf@...>
ふなばです。
まつもと ゆきひろです
[#6906] ruby's Icon ? — 藤本尚邦 / FUJIMOTO Hisakuni <hisa@...>
藤本です、こんにちは。
まつもと ゆきひろです
藤本です、こんにちは。
小澤さくです。
藤本です、こんにちは。
藤本です、こんばんは。
まつもと ゆきひろです
にしなです。
[#6918] manual 1.18b index — WATANABE Tetsuya <tetsu@...>
ruby-man-1.1b8 で、name タグがついているものを拾い集めて
まつもと ゆきひろです
小澤さくです。
まつもと ゆきひろです
小澤さくです。
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
前田です。
まつもと ゆきひろです
前田です。
[#6929] Expect lib for ruby — nosuzuki@... (Norio Suzuki)
はじめまして。Perl から ruby or python に乗り換えようと考えている鈴木
[#6954] Re: ruby's Icon ? — nosuzuki@... (Norio Suzuki)
こんばんは。鈴木教郎です。
まつもと ゆきひろです
小澤さくです。
Thu, Mar 05, 1998 at 02:52:26PM +0900 において
まつもと ゆきひろです
原です。
[#6978] win32 版 ruby の getc について — ARIMA Yasuhiro <fit0298@...>
はじめまして。有馬と申します。
[#6983] ext POSIX.setsid — WATANABE Tetsuya <tetsu@...>
拡張ライブラリの作り方はこんな感じでいいでしょうか?
[#7004] gtk 0.99.4 and gtk module — Noritsugu Nakamura <nnakamur@...>
[#7008] builtin class inherit — TEI meiki <tei@...>
鄭です。
前田です。
まつもと ゆきひろです
鄭です。
まつもと ゆきひろです
[#7022] スレッドの終了待ち — densuke@...2.so-net.or.jp
佐藤@東邦大です。
[#7023] infinity — Tadayoshi Funaba <tadf@...>
ふなばです。
前田です。
けいじゅ@日本ラショナルソフトウェアです.
In message <199803091741.CAA05774.keiju@cupmail0.rational.com>
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
けいじゅ@日本ラショナルソフトウェアです.
In message <199803100359.MAA08628.keiju@cupmail0.rational.com>
けいじゅ@日本ラショナルソフトウェアです.
[#7083] about rbc — Kazuhisa YANAGAWA <katze@...>
rbc について二つ質問があります.
けいじゅ@日本ラショナルソフトウェアです.
けいじゅ@日本ラショナルソフトウェアです.
[#7107] calender-html.rb (Re: call for scripts) — Shin-ichiro HARA <sinara@...>
原です。
原です。
原です。
ごとけんです
原です。
原です。
[#7111] How to simulate Perl's DATA file handle — OZAWA Sakuro <crouton@...>
小澤さくです.
[#7126] do end or {} — Eiji-usagi-MATSUmoto <ematsu@...>
うさぎです
[#7145] gsub — WATANABE Tetsuya <tetsu@...>
gsub について
[#7147] each_char — TEI meiki <tei@...>
鄭です。
[#7153] please apply me — SHUDOH Kazuyuki <shudoh@...>
首藤といいます。
まつもと ゆきひろです
[#7192] I hope join. — Takashi Shimizu <simtak@...>
清水と申します。
[#7208] for in bsh — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
まつもと ゆきひろです
小澤さくです。
まつもと ゆきひろです
前田です。
けいじゅ@日本ラショナルソフトウェアです.
[#7222] jcode.rb — NAGAI Hidetoshi <nagai@...>
はじめまして.永井@知能.九工大と申します.
[#7232] final.rb error? — tateishi@...
立石です。
まつもと ゆきひろです
立石です。
In message <19980326102918.3974.qmail@localhost>
まつもと ゆきひろです
In message <199803270403.NAA00909@picachu.netlab.co.jp>
[#7244] [Q] test file1 -nt file2 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#7257] TkScale.new(parent){to -0.1} — gotoken@... (GOTO Kentaro)
ごとけんです
[#7259] Socket#shutdown — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
[ruby-list:7025] Re: builtin class inherit
鄭です。
前田さん、まつもとさん、お返事ありがとうございます。
# ちょっと長くなってしまいました。確認と疑問1件と、core dump 1件です。
Yukihiro Matsumoto writes:
> まつもと ゆきひろです
>
> In message "[ruby-list:7012] Re: builtin class inherit"
> on 98/03/08, Shugo Maeda <shugo@po.aianet.ne.jp> writes:
>
> |前田です。
>
> ||こういう場合どうするのが ruby の御作法なのでしょう?
> |
> |継承するのはやめてDelegatorを使うというのはどうでしょう。
delegate.rb を読んでみました。
initialize の中で、渡された object が持つ メソッド群 と同名の メソッド群を
自分(これからできるインスタンス?)に 特異メソッドとして宣言(作成)していく
クラスだろうと理解しました。
なるほど...。
この delegate.rb の手法は、オブジェクト指向プログラミングでは一般的な
手法なのでしょうか?
それとも、delegate.rbは ruby の「組み込みクラスでインスタンス変数が
使えない制限」を回避するのを主目的に用意された物なのでしょうか?
ところで、、ひとつ疑問が有ります。
(なかなか、この疑問の連鎖がおわらない ^_^;)
delegate.rbの末尾の
p foo.type # => Object
のあとに
p foo.singleton_methods
p foo.methods
を付け加えて、実行して見たのですが、 singleton_methods の方が 空でした。
initialize の中の
eval "def self.#{method}(*args); __getobj__.send :#{method}, *args; end"
は、なぜ特異メソッドにならないのでしょうか?
試みに、以下のスクリプトを実行してみたのですが、
class Foo
def initialize(tag)
eval "def hoge0_#{tag}; print \"do hoge0 #{tag}\n\"; end"
eval "def self.hoge1_#{tag}; print \"do hoge1 #{tag}\n\"; end"
end
end
SELECT = ["hoge0_F1", "hoge1_F1", "hoge0_F2", "hoge1_F2" ]
f1 = Foo.new("F1"); print "Make f1\n"
print " f1 singleton_methods -- "; p f1.singleton_methods.sort
print " f1 methods -- "; p ((f1.methods & SELECT).sort)
f2 = Foo.new("F2"); print "Make f2\n"
print " f1 singleton_methods -- "; p f1.singleton_methods.sort
print " f1 methods -- "; p ((f1.methods & SELECT).sort)
print " f2 singleton_methods -- "; p f2.singleton_methods.sort
print " f2 methods -- "; p ((f2.methods & SELECT).sort)
以下のようになって、eval "def self.hoge1_ ……" はちゃんと特異メソッドに
なったのですが。
% ruby /tmp/tokui.rb
Make f1
f1 singleton_methods -- ["hoge1_F1"]
f1 methods -- ["hoge0_F1", "hoge1_F1"]
Make f2
f1 singleton_methods -- ["hoge1_F1"]
f1 methods -- ["hoge0_F1", "hoge0_F2", "hoge1_F1"]
f2 singleton_methods -- ["hoge1_F2"]
f2 methods -- ["hoge0_F1", "hoge0_F2", "hoge1_F2"]
# それにしても、eval "def hoge0_ ……" の方は、インスタンスが
# 出来る度に、クラス定義にメソッドを追加してしまう結果になるのですね…
# さすが、インタプリタ …
> その通りです.サンプルとしては
>
> lib/tempfile.rb
>
> があります.
これも理解するために動かして見ようとしたら、、、
% ruby /usr/local/lib/ruby/tempfile.rb
/usr/local/lib/ruby/final.rb:35: [BUG] Segmentation fault
zsh: IOT instruction (core dumped) ruby /usr/local/lib/ruby/tempfile.rb
コアダンプしてしまいました。^_^;;
--
┌─鄭 明毅───────────────────┐
└──tei@harmony.co.jp──tei@mirage.linc.or.jp─┘