1

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ありますか?

私が達成しようとしているのは、動的なドキュメントです。私が制御できない別のプログラム、メソッド名、パラメーター、およびこれらの各メソッドの説明に戻ろうとしています。私が抱えている主な問題は、変数にアクセスする方法がわからないということであるため、上記の質問の説明についてのみ尋ねました。コード コメントを使用してそれらを解析することもできますが、私の意図が何であるかを後のプログラマーに明確にし、意図しないコメント事故を防止したかったのです。

4

2 に答える 2

1

コード内でこれを行う代わりにrdoc、コードベースに対して実行してから、次を使用します。

`ri method`

その情報を取得するかri、コマンドラインから使用してドキュメントを取得するように指示します。

これは、Ruby で十分にテストされた手法とツールを利用するものであり、コードを文書化する方法です。

フォーマット情報については、 rdocのドキュメントを参照してください。

于 2013-06-24T01:52:07.777 に答える