ruby-thor 在 gem 可执行文件中调用多个 类

ruby-thor calling multiple classes in a gem executable

我正在学习 ruby 和 thor.. 我被困在这里:

我在一个模块中有两个 类(都使用 Thor)。我只能在 gem 可执行文件中使用一个。当我添加如下所示和 运行 时,我 get Could not find command "hello".

Test::HammerOfTheGods.start(ARGV)
Test::Git.start(ARGV)

您打算如何让这两个不同的 class 一起工作?您是否希望每个命令的所有命令都可用?如果是这样,您可以只使用一个 class 吗? Thor 并非设计为以这种方式工作。您收到错误的原因是因为您第一次调用 .start 时,如果找不到该命令,则会抛出错误。

如果您担心 class 定义特别长,您可以将每个命令的定义分成单独的文件,但使用相同的 class。