2

私は小さなプロジェクトを Thor を使用するように変換していますが、ぼんやりしているので、組み込みのヘルプを使用して利用可能なタスクを文書化したいと考えています。しかし、引数を使用してタスクを定義すると、タスク レベルのヘルプはクラスのヘルプに戻ります。つまり、タスクの説明や予期されるパラメーターの詳細は表示されません。

このように使用できるように、パラメーターではなく引数で呼び出すことができるメソッドを使用できるようにしたい

$ thor broke:foo hello
in a.thor broke:foo arg1=hello

問題を次の thorfile に要約しました。これは、壊れたヘルプ出力を除いて、私が望むように機能します。問題に違いがないため、他のパラメーターはすべて削除しました。最初のタスク ok:foo は通常どおりヘルプを表示しますが、2 番目のタスク break:foo はあまり役に立ちません:

class Ok < Thor
    desc "foo", "ok test2"
    def foo
        puts "in a.thor ok:foo\n"
    end
end
class Broke < Thor
    argument :arg1, :type=>:string, :desc => "arg1"
    desc "foo", "broke test1"
    def foo
        puts "in a.thor broke:foo arg1=#{self.arg1}\n"
    end
end

ok:foo タスク メソッドのヘルプを要求すると、次のようになります。

$ thor help ok:foo
    Usage:
      thor ok:foo

    ok test

break:foo タスクのヘルプをリクエストすることはあまり役に立ちません:

$ thor help broke:foo
    Tasks:
      thor broke:foo ARG1          # broke test1
      thor broke:help ARG1 [TASK]  # Describe available tasks or one specific task

引数を定義して適切なタスク ヘルプを表示するにはどうすればよいですか?

4

1 に答える 1

0

トールファイルに小さな間違いがあります。

method_optionの代わりに引数があります。

ここで正しいバージョン:

class Ok < Thor
    desc "foo", "ok test2"
    def foo
        puts "in a.thor ok:foo\n"
    end
end
class Broke < Thor
    method_option :arg1, :type=>:string, :desc => "arg1"
    desc "foo", "broke test1"
    def foo
        puts "in a.thor broke:foo arg1=#{self.arg1}\n"
    end
end

github.com のmethod_optionに関するWiki

于 2012-06-14T21:49:48.227 に答える