2015-10-03 150 views
0

假設我正在開發一個Ruby gem,它將通過添加到其gemfile文件中來安裝在項目中。從我的寶石中,我想知道項目的根目錄路徑。我怎麼弄到的?從Ruby Gem中,我如何獲取項目的目錄路徑?

+0

也http://stackoverflow.com/questions/10132949。 – sawa

+0

我認爲這個問題可能是重複的,但它似乎要求使用gem項目的目錄而不是gem目錄本身的路徑。 – matt

+0

@matt如果是這樣,那麼這與寶石無關。 – sawa

回答

1

如果您使用的是Rails,請使用Rails.root

如果你不知道'主要項目'是Rails ......那麼它並不是一個好方法。

全球$0是ruby腳本被調用的命令名稱。但是這不會包含一條路徑。你可以試試File.expand_path $0,但是有很多原因會導致這個不能給你你想要的,包括程序可能改變了它的「工作目錄」。 Dir.pwd會給你「當前工作目錄」,只有當項目從「項目目錄」被調用並且代碼沒有改變當前工作目錄時,它纔可能是「項目」的目錄。

通常情況下,ruby中實際上沒有「項目」或「項目目錄」的內置概念 - 您可以擁有一個根本不屬於項目組成部分的ruby腳本,它只是一個文件生活在你想要的文件系統中的任何地方。

我不認爲有一個通用的可靠方法來做到這一點,它取決於「項目」是如何建立的,當然這是寶石不能確定的。

但是,如果您使用的是Rails,Rails.root,因爲Rails具有如何設置和調用的約定,並在其啓動過程中實現了功能Rails.root以記錄Rails的項目目錄。

相關問題