マニュアル: Thor

投稿日:

使い方

  • desc は必ず付けること。でないと警告が出る。
    • desc の1番目の引数はコマンド(サブコマンド) + 引数の書式
    • desc の2番目の引数はコマンドの説明
  • option :all, :type => :boolean--all に対応。未設定時はnilになる。
  • サブコマンドはThorクラスを継承したクラスを作って、親クラスに以下の記述を入れる。
    • subcommand "サブコマンド名", サブコマンドのクラス
    • 例: subcommand "tag", TagCommand

長い説明

以下のようにする。

  • ヒアドキュメント(インデントあり)
  • gsubで改行をU+0005に変換(公式ドキュメントに記載あり)
  long_desc <<~LONGDESC.gsub(/\n/, "\x5")
    説明1行目
    説明2行目
    説明3行目
  LONGDESC

ただし、行が長すぎると折り返されちゃうようです[^1]。

管理外メソッド

メソッドを定義するとコマンドとして扱われますが、 コマンドとして扱われたくないメソッドを定義する時は、 no_commandsまたはno_tasksで囲みます。

no_commandsより、

class MyScript < Thor
  no_commands do
    def this_is_not_a_command
    end
  end
end

公式サイト