2012-01-15 16 views
10

Tôi đang viết tài liệu về đá quý ruby ​​của mình bằng cách sử dụng YARD. Trong đá quý của tôi, tôi có một số mã mà sau mô hình này ruby ​​phổ biến nơi một mô-đun được bao gồm trong một lớp học, và rằng mô-đun không chỉ bổ sung thêm phương pháp dụ nhưng nó cũng cho biết thêm phương pháp lớp:YARD: ghi lại các phương thức lớp được thêm bởi một mô-đun đi kèm

module Moo 
    def self.included(klass) 
    klass.extend ClassMethods 
    end 

    module ClassMethods 
    def hello 
     puts "hello" 
    end 
    end 
end 

class Foo 
    include Moo 
end 

Foo.hello # => class method runs, printing "hello" 

Theo mặc định, YARD sẽ tạo tài liệu cho lớp Foo trông như thế này:

Inadequate documentation of the Foo class

tôi nghĩ rằng tài liệu này là đủ bởi vì nó không nói cho người dùng biết phương pháp Foo.hello có sẵn. Để tìm hiểu về hello, người dùng phải nhấp vào Moo và sau đó nhấp vào ClassMethods.

Thật tuyệt vời khi có danh sách tất cả các phương pháp lớp và phương pháp thể hiện của Foo trên một trang. Làm thế nào tôi có thể làm điều đó xảy ra? Tôi có cần phải thay đổi mã hay không hoặc tôi có thể thêm thẻ để cung cấp cho YARD một gợi ý về ClassMethods không?

+0

Bạn hãy thử sử dụng [làm cho] (http://rubydoc.info/docs/yard/file/docs/GettingStarted.md#Rendering_Objects__render_____) trên lớp nhúng? Không biết liệu nó có hoạt động như thế hay không. –

+0

Cảm ơn lời khuyên, nhưng tôi đã cố gắng và không thể làm cho nó để làm bất cứ điều gì. Hãy cho tôi biết nếu nó làm việc cho bạn. –

Trả lời

7

Kể từ v0.8.0 bạn có thể sử dụng @!parse chỉ:

class Foo 
    include Moo 
    # @!parse extend Moo::ClassMethods 
end 
Các vấn đề liên quan