Rubyには、継承したクラスメソッドを持つ基本クラスがあります。このメソッドを基本クラスで呼び出したいのですが、次のように、派生クラスで指定されたオプションを渡します。
class Base < SuperDuperClass
super_duper_class_method :option => my_option_value
def self.my_option_value
raise "Method my_option_value must be overridden by all subclasses"
end
end
class Derived < Base
def self.my_option_value
"My Derived Option Value"
end
end
ただし、これは機能していません。基本クラスの最上位コードが派生クラスの最上位コードの前に実行されるため、super_duper_class_methodが呼び出されたときに派生メソッドが定義されていないためだと思います。すべての派生クラスでsuper_duper_class_methodを呼び出す必要はありませんが、代わりにオプションを指定するだけです。
何か案は?