典型的な OO パターンがあります。1 つの基本抽象クラス (抽象メソッドを定義する) と、これらの抽象メソッドをクラス固有の方法で実装するいくつかのクラスです。
私は、抽象メソッドで一度だけドキュメントを書くことに慣れていて、それは自動的にいくつかの具体的なクラスに伝播します (少なくとも、Javadoc、Scaladoc、Doxygen では次のように機能します)。つまり、同じ説明を繰り返す必要はありません。すべての具体的なクラスで。
しかし、YARD でそのような伝播を行う方法を見つけることができませんでした。たとえば、次のことを試しました。
# Some description of abstract class.
# @abstract
class AbstractClass
# Some method description.
# @return [Symbol] some return description
# @abstract
def do_something
raise AbstractMethodException.new
end
end
class ConcreteClass < AbstractClass
def do_something
puts "Real implementation here"
return :foo
end
end
私が得るもの:
- コードは期待どおりに動作します - つまり、スロー
AbstractMethodException
は抽象クラスで呼び出され、具象クラスでジョブを実行します - YARD では、
AbstractClass
抽象的なものとして明確に定義されている、ConcreteClass
正常である - メソッドの説明と戻り値の型が良い
AbstractClass
- メソッドはスロー
AbstractMethodException
インと言われていますAbstractClass
- メソッドにはまったく記述がなく、一般的な
Object
戻り値ConcreteClass
の型が にあり、抽象メソッドが基底クラスに存在するという通知は 1 つもありません。
私が期待するもの:
- メソッドの説明と戻り値の型は、
ConcreteClass
from info atに継承 (コピー) されます。AbstractClass
- 理想的には、このメソッドは説明の「継承」または「実装」セクションで指定され、からへ
ConcreteClass
の参照リンクがあります。ConcreteClass#do_something
AbstractMethod#do_something
そうすることは可能ですか?