2013-07-15 144 views
1

這是針對我正在嘗試並希望最終創建一個gem的Rails CLI。如何檢測當前工作目錄是否爲Rails項目根目錄

任何人都有一個正則表達式的想法或類似的方式來確定當前的工作目錄是否是rails項目的rails根目錄?

def check_current_directory 
    current_directory = Dir.getwd 
    if current_directory # How to determine if inside Rails root? 
    proceed 
    else 
    abort("You must be in the root of your Rails app to use this gem") 
    end 
end 

任何幫助或想法表示讚賞

+0

爲什麼不忽略當前目錄和'chdir'到你想要的位置? –

+0

@ muistooshort這會更困難。爲了方便用戶,我需要root來計算路徑。有點複雜的解釋,但謝謝你的建議。 – fontno

回答

5

This是如何Rails的自身做到這一點。基本上它檢查Rails可執行文件是否存在,例如'bin/rails','script/rails'。

+0

謝謝,這正是我所尋找的 – fontno

+0

鏈接已損壞。建議: http://edgeapi.rubyonrails.org/classes/Rails/AppRailsLoader.html#method-i-exec_app_rails –

0

你總是可以得到利用Rails.root Rails項目的根路徑。

答案是:if current_directory == Rails.root.to_path

+0

和/或使用'File.dirname(__ FILE __)',或者在Ruby 2.0中,'__dir__'。 –

+0

@railscard我沒有在Rails中包含任何東西,而是嘗試從應用程序外部將文件等注入到現有的Rails應用程序中。所以我不認爲我可以訪問'Rails.root',但我會看看它。感謝您的建議 – fontno

相關問題