desc
すべてのフィールドを配列に保存したい次のクラスがあります。
これを複数のクラスで使用する予定なので、入力を節約するために module を使用することにしましたDescribe
。
module Describe
@@interactive = []
def desc(desc)
@desc = desc
end
def method_added(method)
@@interactive.push(@desc)
@desc = nil
end
end
授業中はこんな感じ。
class Dog
extend Describe
desc "Holy"
def bark
puts "woof"
end
desc "Moly"
def wag
puts "wagging"
end
end
これが私がコードを使用する方法です。
d = Dog.new
puts d.interactive
interactive
しかし、配列にアクセスできません。継承を使用しようとすると、関数desc
が見つからないため、クラスを使用できません。include
の代わりに使用しようとすると、同じことが起こりますextend
。
を引き続き使用する場合、インタラクティブ アレイにアクセスする方法はありますextend
か? 私はこの問題について間違って取り組んでいますか? include
メソッドが見つかるように、残りのコードの前に実行する方法はdesc
ありますか?
私が達成しようとしているのは、動的なドキュメントです。私が制御できない別のプログラム、メソッド名、パラメーター、およびこれらの各メソッドの説明に戻ろうとしています。私が抱えている主な問題は、変数にアクセスする方法がわからないということであるため、上記の質問の説明についてのみ尋ねました。コード コメントを使用してそれらを解析することもできますが、私の意図が何であるかを後のプログラマーに明確にし、意図しないコメント事故を防止したかったのです。