RubyやRailsのドキュメントを生成するGem YARDをご存じですか? ドキュメント生成GemではrDocが不動の一番すが、その後ろで猛追しているYARDというGemがあります。今回はこのGemの紹介です。
(02/16 23:30) Ruby 2.1で動作確認しつつリニュアール
🏀 Gemのイントロ
YARDはRubyのドキュメント生成rDocの次世代を期待されているGemです。
Ruby/Railsのコード内にYARDの書式でコメントを書くと、メソッドや引数、戻り値などの解説をうまく表示してくれます。
まずGemをインストールします。
gem install yard |
次にプログラムソースにYARD形式のコメントを書いていきます。今回はファイル名hoge.rb
のコードを作成していきます。
require 'date' |
コーディングが完了したら、ドキュメントに変換。
yardoc hoge.rb |
結果がこちら。
コードのコメントに規約を持たせれば、メンテナーンス性/可読性を高められますよね!
🐞 YARDドキュメント用のサーバ
YARDドキュメント用のサーバをhttp://localhost:8808
で立ち上げる場合は次のコマンとをターミナルで実行する
yard server |
🐰 YARDよく使うタグ一覧
(データ/型/名前/説明の書き方) # @タグ [型] <名前> <説明> (例) # @param [Array] arr表示したい配列 # @return [String] 空白を除去した文字列 説明>名前>
@params メソッドに渡す引数の説明 @raise メソッドで発生しえる例外クラスの説明 @return メソッドの返り値の説明
@option メソッドに渡すオプションハッシュ引数の説明 # @param [ハッシュ] opts the options to create a message with. # @option opts [String] :subject The subject # @option opts [String] :from ('nobody') From address # @option opts [String] :to Recipient email # @option opts [String] :body ('') The email's body def send_email(opts = {}) end
@overload 複数の引数のパターンがある場合にif文っぽく使う # @overload set(key, value) # Sets a value on key # @param [Symbol] key describe key param # @param [Object] value describe value param # @overload set(value) # Sets a value on the default key +:foo+ # @param [Object] value describe value param def set(*args) end
@example 直下の説明がサンプルコードであることを示す # @example Reverse a String # "mystring".reverse #=> "gnirtsym" def reverse; end
@see URLや他のオブジェクトを書くとリンクになる # Synchronizes system time using NTP. # @see http://ntp.org/documentation.html NTP Documentation # @see NTPHelperMethods class NTPUpdater; end
@note オブジェクトを使うときに注意して欲しい点を説明 # @note This method should only be used in outer space. def eject; end
(中括弧) {xxx} => リンクとみなす (例) # 詳細は、{http://rubydoc.info/docs/yard/0.7.2/file/docs/Tags.md Yardのタグ説明} を参照
🗻 YARDその他タグ一覧
@abstract 抽象クラス/モジュール/メソッドの説明 @api オブジェクトに属するAPIの説明。yardoc --queryで実行した場合のみ出力 @author 作者情報 @deprecated 非推奨のクラスやメソッドであることを表す @private YARD出力時にオプションで出力しないようにできる。 yardoc --no-private @since メソッド・クラスが利用できるようになったバージョンを説明 @todo TODO @version オブジェクトのバージョンを示す
@yield ブロックの説明。注意点としては、[]の中が引数となっていること。 # For a block {|a,b,c| ... } # @yield [a, b, c] Gives 3 random numbers to the block def provide3values(&block) yield(42, 42, 42) end @yieldparam yieldのパラメータの説明 # @yieldparam [String] name the name that is yielded def with_name(name) yield(name) end @yieldreturn yieldの戻り値の説明 # @yieldreturn [Fixnum] the number to add 5 to. def add5_block(&block) 5 + yield end
😼 公式リファレンス
実際は上以外にもタグがありますが、力尽きました! ですので、詳細は公式リファレンスをw
🎂 参考リンク
[ruby]rdocは捨て去られてYARDになった[gem]
🏈 変更来歴
(12/12/02) 新規作成
(14/02/16 23:30) Ruby 2.1で動作確認しつつリニュアール