From: gotoken@... (GOTO Kentaro) Date: 1999-11-17T19:29:27+09:00 Subject: [ruby-dev:8345] Re: constants definition in extarnal files ごとけんです In message "[ruby-dev:8333] Re: constants definition in extarnal files" on 99/11/17, nagai@dumbo.ai.kyutech.ac.jp writes: >なるほど.これなら少なくとも 1.4 系では OK のようですね. ># 1.5 系なら警告メッセージ? あれれ、1.4.2 で例外あがりますですか?? >ただ,Kernel モジュールが相手となると, >勝手にメソッドを追加するのは気が引けます. >もちろん個人レベルで用いるなら問題はないのですが... >ちょいとコンセンサスは取っといた方がよさそうです. じゃ、ちょっとくどいですが Module のメソッドに戻してみました。 class Module def ConstantModule m = Module.new constants.each{|c| m.const_set(c, const_get(c)) } m.module_eval do eval < 0 class Foo A = 3 #!! warning end p Foo::A #=> 3 >matz> 個人的にはこのような機能はPython同様、キーワード引数で実現し >matz> ようと考えていました。つまり、 > (以下略) > >という話も出てますし,現状は「保留」ということでしょうか? よくは分かりませんが、今回の一連の定数トリックはキーワード引 数とは異なる要求も満たすのでこれはこれでもよいかも… -- gotoken