2013-02-05 34 views
0

我實際上是在寫我自己的RubyGem。自己的RubyGems:內部路徑

如何獲取RubyGem的路徑,即是否需要?

require "./mygeminternally.rb" 
# => the path (actually "./") must be the path to the internals of the gem while it is being compiled 

難道只是Dir.getwd?我需要一種方法將我帶到gem的路徑,以便我可以使用內部模板。請注意,在編譯gem時必須訪問模板或配置文件,這很容易就像選擇正確的路徑一樣嗎?

你的,

Joern

+1

你的問題有點不清楚。你是否試圖從**的寶石內加載**?如果是這樣,也許[本指南](http://guides.rubygems.org/patterns/#loading-code)會有所幫助?如果你想從客戶端代碼加載你的gem,你可以在本地構建和安裝它:gem build gemname gem spec然後gem install gemname version.gem只需要它就可以了出版的寶石。或者我誤解了你的問題? – exbinary

+0

是的,這是指導。你可以把它作爲答案發布,所以我可以將其作爲正確答案應用。 – JAkk

回答

1

在寶石你應該總是使用相對路徑您lib目錄,並永遠不要試圖評估的絕對路徑,因爲這可能導致在一些邊緣情況的問題。

當我說我lib實際上意味着在.gemspec文件添加到require_paths目錄之一,但在幾乎所有情況下,這被設置爲只['lib']

這在RubyGems Guide中有詳細描述(正如@ an4rco在他的評論中提到的 - 給他一個贊成票)。