繁体   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