[#39989] TCPSocket.new でスレッドが止まる。 — take_tk <ggb03124@...>

たけ(tk)です。

15 messages 2004/09/02

[#40018] yaml.rbとdate.rbを組み合わせて使った際の問題 — "Keisuke Minami" <keisuke@...>

こんにちは。三並と申します。

14 messages 2004/09/07
[#40020] Re: yaml.rbとdate.rbを組み合わせて使った際の問題 — IWATSUKI Hiroyuki <don@...> 2004/09/07

岩月と申します。

[ruby-list:40030] Re: 動的なクラス名

From: Minero Aoki <aamine@...>
Date: 2004-09-07 10:45:24 UTC
List: ruby-list #40030
青木です。

とんでもねー重なりかたをしてますね……

というだけではなんなので補足。

  In mail "[ruby-list:40026] Re: 動的なクラス名"
    Minero Aoki <aamine@loveruby.net> wrote:

>   Object.const_get(classname).new
> 
> でできます。ただし const_get だとネストしたクラス (Net::HTTP
> みたいなやつ) のときにもう一工夫必要になります。セキュリティが

具体的には次のように工夫します。

  # Ruby 1.8 以降だけでよいなら
  c = classname.split(/::/).inject(Object) {|c,name| c.const_get(name) }
  c.new

  # Ruby 1.6 以前にも対応するなら
  c = Object
  classname.split(/::/).each do |name|
    c = c.const_get(name)
  end
  c.new

なぜかこの話は ruby-talk でもよく出るんですよね。
FAQ に入れておくべきかな。

# しまった、レシピブックにも書いてないや……
-------------------------------------------------------------------
青木峰郎

In This Thread