2012-11-05 33 views
0

真的是新手的問題...如何引用寶石中的類?

我的項目中的很多應用程序都有很多共享代碼在寶石中。我正在嘗試在這個gem中添加一個例程,它將在幾個應用程序中被rake任務共享。

因此,在創業板的lib/utilities目錄我有cleanup.rb:

module Utilities 
    class Cleanup 

    def self.perform 
     puts "Performing cleanup" 
    end 

    end 
end 

然後在應用中的lib /任務,我有cleanup.rake:

require "utilities/cleanup" 

namespace :mynamespace do 
    task :do_cleanup => :environment do 
    Utilities::Cleanup.perform 
    end 
end 

所有我從rake mynamespace得到:do_cleanup是「未初始化的常量Utilities :: Cleanup」。

我已經嘗試過上述幾種變體。我的寶石是用捆綁軟件管理的,但是「捆綁執行耙子」給出了相同的結果。我嘗試使用gem "utilities/cleanup"而不是require。我發誓,我試着弄清楚如何在模塊和類之間進行通信,而不僅僅是這種語言中的任何其他內容!它總是「我在這裏引用哪個代碼?」和「爲什麼不能這樣做?」找到我寫的課程?「)

+0

是的,我引用Gemfile中gem的本地目錄副本。該要求不會失敗。 – Mojo

回答

1

您可能需要編寫::Utilities::Cleanup.perform以顯式使用頂級命名空間。