2012-04-25 11 views
3

に適用されます。私は別々のファイルに持っている場合は、そのような場合のように、ドキュメントが適切に生成されていないこれらの定義を、次のように:は、複数のファイル

file0.rb

require 'file1.rb' 
require 'file2.rb' 

file1.rb

module Something 
    class Resource 
    # Defines a new property 
    # @param [String] name the property name 
    # @param [Class] type the property's type 
    # @macro [attach] property 
    # @return [$2] the $1 property 
    def self.property(name, type) end 
    end 
end 

file2.rb

module Something 
    class Post < Resource 
    property :title, String 
    property :view_count, Integer 
    end 
end 

別個のfi ヤードマクロは、ドキュメンテーションが生成されたときに引き継ぎません。どのようにこれを有効にしますか?

答えて

5

YARDは、requireコールに従わず、また、シングルパスパーサーでもあり、これは順序の問題を解析することを意味します。基本的に、マクロを定義するファイルは、それを使用するファイルの前に解析されなければなりません。おそらく、あなたのファイルは実際には 'file1.rb'と 'file2.rb'という名前にはなりません。そうしないと、デフォルトのglob順序付けがうまくいくでしょう。

複数のファイルを処理するには、YARDが最初に "file1.rb"を解析していることを確認してください。 (

$ yard doc lib/path/to/file1.rb lib/**/*.rb 

を「しかし、それは、二回 『file1.rb』を一覧表示されます」あなたが言うリストをuniqifying心配しないでください、:あなたはそうのような、あなたのグロブの前でそれを置くことによってこれを行うことができますか? YARDがそれを行います)

+1

RubyDoc.infoをこれに準拠させるにはどうしたらいいですか? –