2009-11-05 28 views
165

Có quy ước mã nào đó khi viết mã ruby ​​không? Ví dụ: tôi có đoạn mã sau:Làm thế nào để tài liệu mã Ruby?

require 'open3' 

module ProcessUtils 

    # Runs a subprocess and applies handlers for stdout and stderr 
    # Params: 
    # - command: command line string to be executed by the system 
    # - outhandler: proc object that takes a pipe object as first and only param (may be nil) 
    # - errhandler: proc object that takes a pipe object as first and only param (may be nil) 
    def execute_and_handle(command, outhandler, errhandler) 
    Open3.popen3(command) do |_, stdout, stderr| 
     if (outhandler) 
     outhandler.call(stdout) 
     end 
     if (errhandler) 
     errhandler.call(stderr) 
     end 
    end 
    end 
end 

Điều này có thể đoán được, nhưng có lẽ có thực tiễn tốt hơn/cao hơn?

+0

http://shop.oreilly.com/product/9780596516178.do có một ví dụ nhỏ về mã nguồn. Xem trong danh sách chương 2. Nó giống như câu trả lời ở đây. Tôi đã chơi với rdoc chỉ để hiển thị mã nguồn. Bạn có thể làm cho phần mở rộng tập tin của bạn một cái gì đó như my_code.rb để my_code.rb.txt và sau đó chạy rdoc trên đó. > rdoc my_code.rb.txt sau đó nó sẽ không quan trọng về các lớp học và các mô-đun bởi vì rdoc sẽ làm cho html cho nó anyway. Hãy vui vẻ với nó. –

Trả lời

164

Bạn nên nhắm mục tiêu tài liệu của mình cho bộ xử lý RDoc, có thể tìm tài liệu của bạn và tạo HTML từ đó. Bạn đã đưa nhận xét của mình vào đúng vị trí cho điều đó, nhưng bạn nên xem qua số RDoc documentation để tìm hiểu về các loại thẻ mà RDoc biết cách định dạng. Cuối cùng, tôi muốn định dạng lại nhận xét của bạn như sau:

# Runs a subprocess and applies handlers for stdout and stderr 
    # Params: 
    # +command+:: command line string to be executed by the system 
    # +outhandler+:: +Proc+ object that takes a pipe object as first and only param (may be nil) 
    # +errhandler+:: +Proc+ object that takes a pipe object as first and only param (may be nil) 
+0

Làm cách nào để tôi ghi lại rằng các tham số bên ngoài và thông báo lỗi có thể là không? – StackedCrooked

+7

Chú thích của YARD có thể mạnh hơn, nhưng cho đến khi nó được bao gồm trong bản phân phối Ruby chuẩn thay vì RDoc, chú thích của nó không phải là tiêu chuẩn. –

+0

Liên kết RDoc bị hỏng, hãy thử cách này: https://github.com/ruby/rdoc. Tôi sẽ yêu cầu chỉnh sửa câu trả lời nếu mọi người hài lòng với liên kết đó. –

2

Kinh điển là RDoc nó rất giống với trang bạn đã đăng.

Xem phần mẫu vào liên kết tôi đã gửi cho bạn

24

tôi sẽ cao đề nghị sử dụng RDoc. Nó là khá nhiều tiêu chuẩn. Thật dễ dàng để đọc các bình luận mã, và nó cho phép bạn dễ dàng tạo tài liệu dựa trên web cho dự án của bạn.

8

Bạn cũng có thể kiểm tra TomDoc cho Ruby - Phiên bản 1.0.0-rc1.

http://tomdoc.org/

+0

FWIW, cái này được chỉ định trong hướng dẫn kiểu GitHub - https://github.com/styleguide/ruby –

+0

Cảm ơn, tomdoc dường như là một nguồn tốt cho các thực hành hiện tại tốt nhất khi nói đến việc viết mã ruby. Trả lời "làm thế nào" và "tại sao" đó là dường như mất tích từ tài liệu rdoc. –

+0

TomDoc không được cập nhật. Lần commit cuối cùng là tháng 5 năm 2012. – maasha

16

Tôi khuyên bạn nên biết RDoc như được nêu. Nhưng đừng bỏ qua công cụ YARD A Ruby Document rất phổ biến. Rất nhiều tài liệu bạn sẽ thấy trực tuyến cho Ruby sử dụng Yard. RVM biết Yard và sử dụng nó để tạo tài liệu của bạn trên máy của bạn nếu nó có sẵn.

RDoc vẫn sẽ được yêu cầu, vì Yard sử dụng nó.

+1

Có sử dụng chủ yếu là C++, Java, Scala và PHP, tôi thấy ký hiệu '@ tag' rất quen thuộc. – doub1ejack

+0

Đã bốn năm và YARD đã phát triển rất nhiều.Thật đáng tiếc là YARD vẫn chưa được đưa vào Ruby. (Nhân tiện trang chủ YARD chấp nhận HTTPS.) –

Các vấn đề liên quan