2012-11-29 17 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搜索路徑中。