[#45670] ruby-1.9.1-preview2のruby-tk on OSX — 天野竜太郎 <wn9r-amn@...>

天野です。

40 messages 2008/12/02
[#45673] Re: ruby-1.9.1-preview2のruby-tk on OSX — Nobuyoshi Nakada <nobu@...> 2008/12/03

なかだです。

[#45676] Re: ruby-1.9.1-preview2のruby-tk on OSX — 天野竜太郎 <wn9r-amn@...> 2008/12/03

天野です。

[#45678] Re: ruby-1.9.1-preview2のruby-tk on OSX — Nobuyoshi Nakada <nobu@...> 2008/12/03

なかだです。

[#45680] Re: ruby-1.9.1-preview2のruby-tk on OSX — Hidetoshi NAGAI <nagai@...> 2008/12/03

永井@知能.九工大です.

[#45701] Re: ruby-1.9.1-preview2のruby-tk on OSX — 天野竜太郎 <wn9r-amn@...> 2008/12/04

天野です。報告遅れてすみません。

[#45707] Re: ruby-1.9.1-preview2のruby-tk on OSX — Hidetoshi NAGAI <nagai@...> 2008/12/05

永井@知能.九工大です.

[#45708] Re: ruby-1.9.1-preview2のruby-tk on OSX — 天野竜太郎 <wn9r-amn@...> 2008/12/07

天野です。

[#45709] Re: ruby-1.9.1-preview2のruby-tk on OSX — Hidetoshi NAGAI <nagai@...> 2008/12/07

永井@知能.九工大です.

[#45710] Re: ruby-1.9.1-preview2のruby-tk on OSX — 天野竜太郎 <wn9r-amn@...> 2008/12/08

天野です。

[#45711] Re: ruby-1.9.1-preview2のruby-tk on OSX — Hidetoshi NAGAI <nagai@...> 2008/12/08

永井@知能.九工大です.

[#45712] Re: ruby-1.9.1-preview2のruby-tk on OSX — 天野竜太郎 <wn9r-amn@...> 2008/12/08

天野です。

[#45713] Re: ruby-1.9.1-preview2のruby-tk on OSX — Hidetoshi NAGAI <nagai@...> 2008/12/08

永井@知能.九工大です.

[#45714] Re: ruby-1.9.1-preview2のruby-tk on OSX — 天野竜太郎 <wn9r-amn@...> 2008/12/08

天野です。

[#45715] Re: ruby-1.9.1-preview2のruby-tk on OSX — Hidetoshi NAGAI <nagai@...> 2008/12/08

永井@知能.九工大です.

[#45716] Re: ruby-1.9.1-preview2のruby-tk on OSX — 天野竜太郎 <wn9r-amn@...> 2008/12/08

天野です。

[#45717] Re: ruby-1.9.1-preview2のruby-tk on OSX — Hidetoshi NAGAI <nagai@...> 2008/12/08

永井@知能.九工大です.

[#45721] Re: ruby-1.9.1-preview2のruby-tk on OSX — Hidetoshi NAGAI <nagai@...> 2008/12/17

天野さん,

[#45722] Re: ruby-1.9.1-preview2のruby-tk on OSX — 天野竜太郎 <wn9r-amn@...> 2008/12/17

天野です。

[#45725] Re: ruby-1.9.1-preview2のruby-tk on OSX — Hidetoshi NAGAI <nagai@...> 2008/12/17

永井@知能.九工大です.

[#45726] Re: ruby-1.9.1-preview2のruby-tk on OSX — Hidetoshi NAGAI <nagai@...> 2008/12/18

永井@知能.九工大です.

[#45727] Re: ruby-1.9.1-preview2のruby-tk on OSX — 天野竜太郎 <wn9r-amn@...> 2008/12/19

天野です。

[ruby-list:45690] Re: クラスメソッド

From: "Ayumu Aizawa" <ayumu.aizawa@...>
Date: 2008-12-04 09:20:17 UTC
List: ruby-list #45690
はじめまして、相澤といいます。

派生した質問なのですが、最初の河村さんの例のようにクラスではなくクラス名の文字列から
そのクラスのインスタンスを取得することもできるのでしょうか。
自分に思いつくのはevalくらいですがもうちょっとスマートな解があれば教えて下さい。

2008/12/04 18:09  <rubikitch@ruby-lang.org>:
> From: Masutoyo Kawamura <m-kwmr@po.hyper-tsukumi.jp>
> Subject: [ruby-list:45688] クラスメソッド
> Date: Thu, 4 Dec 2008 17:54:15 +0900
>
> るびきちです。
>
>> 何か良い方法はないでしょうか。
>
> あります。
>
>> paper = []
>> paper[1]="PaperA"
>> paper[2]="PaperB"
>
> Rubyのクラスはオブジェクトなので文字列ではなくてクラス名そのものを指定すれば
> うまくいきます。
>
> paper = []
> paper[1]=PaperA
> paper[2]=PaperB
>
> さらに、これらの行は配列リテラルを使って
> paper = [nil, PaperA, PaperB]
> と書けば一発です。
>
> # 配列の添字は0からなのでpaper[0]はとりあえずnilを入れておきました。
>
>> class PaperA < PaperCommon
>>         def initialize(s)
>>                 super(s)
>>         end
>
>
> サブクラスのinitializeメソッドはsuper以外の処理をしていないので不要です。
>
> Rubyのインデントは慣習上2です。
>
> class PaperCommon
>  def initialize(s)
>    @s=s
>  end
>
>  def common_prc1
>    @s = @s.upcase
>  end
>
>  def common_prc3
>    puts @txt
>  end
> end
>
> class PaperA < PaperCommon
>  def differ_prc2
>    @txt = "center\n"
>    @txt += @s
>  end
> end
>
> class PaperB < PaperCommon
>  def differ_prc2
>    @txt = "left\n"
>    @txt += @s
>  end
> end
>
> paper = [nil, PaperA, PaperB]
>
> i=1
> yousi = paper[i].new("kwmr")
> yousi.common_prc1
> yousi.differ_prc2
> yousi.common_prc3
> # >> center
> # >> KWMR
>
> --
> rubikitch
> Blog: http://d.hatena.ne.jp/rubikitch/
> Site: http://www.rubyist.net/~rubikitch/
>
>

In This Thread