ruby - Thor 中带连字符的子命令

标签 ruby thor

我正在使用 Thor 编写 CLI gem。现在我有两个子命令,我想用连字符连接它们的名称。但我不知道如何让它发挥作用。

这是主类

module CLI
  class Base < Thor

    desc "api-token COMMAND", "Configure the API token"
    subcommand "api-token", ApiToken

这是子命令类

module CLI
  class ApiToken < Thor
    include Shared

    namespace "api-token"

子命令显示在主 help 输出中,如果我输入

$ bundle exec bin/cli help api-token

它向我展示了子命令操作的正确输出。所以至少有东西在连接。

但是当我尝试使用命令时,这就是我所看到的

$ bundle exec bin/cli api-token set
> Could not find command "api-token".

如果我把它写成一个单词或使用下划线,命令就可以正常工作,但我真的更喜欢连字符。

最佳答案

不需要map,只是

class Test < Thor
  desc 'howto-dash', "dash in command name"
  def howto_dash
    puts "dashing through the snow"
  end
end

输出:

> thor list
test
----
thor test:howto-dash  # dash in command name

关于ruby - Thor 中带连字符的子命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40064574/

相关文章:

javascript - 在 Rails 中使用 AJAX 发出 DELETE 请求时,如何从表单获取不同的 id 值?

ruby-on-rails-3 - 如何在Railtie中使用thor代替rake

ruby - 如何使用 thor -T 列出 method_options?

ruby-on-rails - Rails 5 迁移数据类型问题

ruby-on-rails - 当 Test::Unit 测试运行时,我如何才能看到实际发生了什么?

ruby-on-rails - 在什么情况下会从父进程获取 Ruby $LOAD_PATH?

ruby-on-rails - 如何更改自定义 Rails 生成器的源代码? (雷神)

ruby - 雷神中的命令别名

Ruby - Thor 首先执行特定任务

ruby-on-rails - 从 pgAdmin III 运行 heroku 数据库命令? (哈利的预发射器)