Rubyで内部DSLを作成しています。このためには、名前付きクラスと入れ子クラスをプログラムで作成する必要があります。そうする最善の方法は何ですか?Rubyで名前付きクラスを動的に定義する
- 使用
Class.new
がそれにメソッドを追加するdefine_method
を使用し、その後、匿名クラスを作成し、最終的にいくつかの名前空間への名前付き定数としてそれらを追加するconst_set
を呼び出すために:私はそうするには2つの方法があることを偵察します。 eval
のいくつかの並べ替えを使用して、私は最初の方法をテストしてみた、それが働いたが、ルビーに新しいもの、私は定数としてクラスを置くことは正しい方法であることを確認していません。
他にも良い方法がありますか?そうでない場合は、上記のどちらが望ましいですか?
'のようにする必要があります。 http://stackoverflow.com/questions/637421/is-eval-supposed-to-be-nasty –