2009-11-05 15 views
165

ルビコードを文書化する際に特定のコード規約がありますか?たとえば、私は次のコードスニペットを持っています: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 

これは大丈夫ですが、おそらくより優れた/優れたドキュメントの実践がありますか?

+0

http://shop.oreilly.com/product/9780596516178.doには、ソースコード内に少しだけいい例があります。第2章のリストを見てください。それはここの答えのようなものです。私はrdocでソースコードを表示しています。ファイル拡張子をmy_code.rbのようにmy_code.rb.txtにしてから、rdocを実行することができます。 > rdoc my_code.rb.txtそれでは、rdocはhtmlをレンダリングするので、クラスとモジュールについては問題になりません。それを楽しみましょう。 –

答えて

164

RDocプロセッサのドキュメントを対象にする必要があります.Dococプロセッサはドキュメントを見つけてHTMLを生成できます。あなたは正しい場所にあなたのコメントを入れましたが、RDocがどのようにフォーマットするのかを知るタグの種類については、RDoc documentationをご覧ください。次のようにそのために、私はあなたのコメントを再フォーマットしたい:ここ

# 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

outhandlerとerrhandlerのパラメータがnilであるかもしれないことをどのように文書化する必要がありますか? – StackedCrooked

+7

YARDの注釈はもっと強力ですが、RDocではなく標準のRubyディストリビューションに含まれるまで、その注釈は標準ではありません。 –

+0

RDocリンクが壊れています:https://github.com/ruby/rdoc 全員がそのリンクに満足している場合は、回答の編集をリクエストします。 –

2

標準名はRDocです。あなたが投稿したものと非常に似ています。

私はあなたに

24

を送ったリンク上のサンプルを参照してください、私は非常にRDocを使用してお勧めします。それはかなり標準です。コードコメントを読むのは簡単で、プロジェクト用のWebベースのドキュメントを簡単に作成することができます。

8

のドキュメントであるあなたはまた、RubyのためTomDocを確認することができます - バージョン1.0.0-RC1。

http://tomdoc.org/

+0

FWIW、これはGitHubスタイルのガイドで指定されています - https://github.com/styleguide/ruby –

+0

ありがとうございます、tomdocは、Rubyコードのドキュメント化に関して、現行のベストプラクティスの良いソースと思われます。 rdocのドキュメントから明らかに欠落している "how"と "why"に答えます。 –

+0

TomDocは最新の状態に保たれていません。最後のコミットは2012年5月でした。 – maasha

16

私が記載されているとしてのRDocを知ってもらうことをお勧め。しかし、非常に人気のあるYARD A Ruby Documentツールも無視しないでください。 Rubyのオンラインで表示されるドキュメントの多くは、Yardを使用しています。 RVMはYardを認識し、使用可能な場合はマシン上でドキュメントを生成するためにYVMを使用します。

ヤードが使用するように、RDocはまだ必要です。

+1

ほとんどがC++、Java、Scala、PHPを使っていたので、私は '@ tag'表記法をよく知っています。 – doub1ejack

+0

それは4年であり、YARDは大きく進化しました。残念ながら、YARDはまだRubyには含まれていません。 (YARDのホームページがHTTPSを受け入れる方法で) –

関連する問題