4

我有一个 gem,my_gem,它具有thor作为运行时依赖项。我有一个托尔的子类位于宝石中:

lib/tasks/task.thor

从 gem 的源目录我可以运行:

bundle
thor task:my_task

并且 my_task 将被执行。

但是,如果我将my_gem包含在另一个项目的 Gemfile 中,当我运行时:

bundle
thor task:my_task

我得到:

没有可用的雷神任务

我究竟做错了什么?

4

1 回答 1

0

在我看来,如果我理解正确,您的 lib/tasks/task.thor 实际上是 gem 本身的一部分,并且您希望 thor 找到埋在 gem 中的 thor 文件。

如果是这种情况,这将不起作用,因为 thor 不会自动查看您的 gem 目录。

您可能需要考虑根本不使用 thor 文件,而只需编写一个命令来使用 thor 来处理您的命令行参数,例如 Rails 所做的那样。

如果您真的需要以这种方式运行 thor,那么您的 gem 必须执行将您的 thor 文件放在 thor 搜索路径中的“魔法”。

于 2014-07-18T22:52:17.367 回答