2012-11-29 19 views
4

我有一个宝石,my_gem,它有thor作为运行时依赖。我有位于宝石在雷神的子类:从宝石的源目录执行位于捆绑宝石中的Thor任务

lib/tasks/task.thor

我可以运行:

bundle 
thor task:my_task 

和my_task将被执行。

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

bundle 
thor task:my_task 

我得到:

可用

没有雷神任务是什么我做错了吗?

+0

我有一种想法,我可能需要'捆绑执行任务:my_task',但仍然没有解决问题。 –

+1

您可以提供一个完整的示例,以便其他人可以尝试重现该问题吗?这会让你更容易帮助你。 –

+1

来自其他宝石的任务不会自动包含在你的宝石中。不知道是否以及如何告诉thor从gem中加载这些任务文件,但由于gem的'lib'文件夹在加载路径中,因此您应该能够以某种方式加载它。 – rubiii

回答

0

在我看来,如果我正确地理解了这一点,你的lib/tasks/task.thor实际上就是gem本身的一部分,并且你期望thor能够找到你的thor文件埋在你的宝石中。

如果是这种情况,这将无法正常工作,因为thor不会自动查找您的gem目录。

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

如果你确实需要以这种方式运行thor,那么你的宝石必须把你的thor文件放在thor搜索路径中。