ActiveRecordに似たドメイン固有の階層継承構造を構築しています。つまり、Base
クラスを持ち、次にn
子クラスをBase
と宣言しています。クラス宣言のメソッド呼び出しを定義する、a la Rails
私は現在、子供の中で具体的なものを定数として宣言しており、Base
クラスの共有メソッドからそれらを呼び出すのですが、扱いにくくなってきています。私はメソッド呼び出しを介してクラスの具体的なインスタンス化された値を宣言するRailsスタイルを実装したいと思います。
Railsに慣れていれば、ActiveRecordのhas_many
/belongs_to
、またはActionPackのbefore_action
の一般的な構造を複製しようとしています。誰かが上記を達成するために、クラスBase
に何を置くために私に説明できる場合
私が達成しようとしているかの単純な、不自然な例...
class Widget < Base
important_value :foo, :bar
end
widget = Widget.new
widget.foo
# => :bar
、私にはよくになります私のやり方。
本当に宣言内のクラスメソッドを呼び出すのと同じくらい簡単ですか?私は、より多くのリフレクションが必要となることを期待していましたが、これを見てどれくらい意味があるのか、私は正直には分かりません。 –
いくつかの有益な答えで同様の質問を見つけました - http://stackoverflow.com/questions/1344797/ruby-method-calls-declared-in-class-body?rq = 1 –