执行位于捆绑宝石中的Thor任务

时间:2012-11-29 03:33:59

标签: ruby gem bundler command-line-interface thor

我有一个gem my_gem ,它有 thor 作为运行时依赖项。我在宝石中有一个Thor的子类:

lib/tasks/task.thor

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

bundle
thor task:my_task

和my_task将被执行。

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

bundle
thor task:my_task

我明白了:

  

没有可用的任务

我做错了什么?

1 个答案:

答案 0 :(得分:0)

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

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

您可能想要考虑根本不使用thor文件,只需编写一个使用thor来处理命令行参数的命令,例如Rails就可以了。

如果你真的需要以这种方式运行thor,那么你的宝石必须“将你的Thor文件放入搜索路径中的魔力”。