簡體   English   中英

Thor:定義參數后,如何使Thor任務顯示幫助?

[英]Thor : How can I get my Thor task to display help when I have defined an argument?

我正在轉換一個小項目以使用Thor,並且心不在a,我想使用內置幫助來記錄可用的任務。 但是,如果我使用參數定義任務,則任務級別的幫助將還原為該類的幫助-這意味着將不顯示任何任務描述或預期參數的詳細信息。

我希望能夠擁有一個可以用參數而不是參數調用的方法,因此可以像這樣使用

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

我將問題歸結為以下thorfile,除了損壞的幫助輸出外,它可以按我的要求工作。 我刪除了其他所有參數,因為它們對問題沒有影響。 第一個任務ok:foo將正常顯示幫助,第二個任務壞了: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

如何定義參數並顯示正確的任務幫助?

您的thorfile文件中有小錯誤。

您有參數而不是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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM