2011-09-05 33 views
3

如果找不到寶石,是否有辦法安全地要求寶石寶石,以免引發異常?安全地需要Ruby中的寶石

我要尋找一個解決辦法接近這個:

if require 'hirb' 
    # do some hirb related stuff 
else 
    # do other stuff 
end 

我想這確保沒有多餘的寶石都沒有我的部署到生產。

+1

當你不需要什麼東西時,Ruby應該有一個'kind_of_want'命令。 –

+1

'def would_like(gemname,&block);開始;需要gemname;產量;救援LoadError;放入「無法加載#{gemname}」;結束;結束':D – Kostas

回答

11

它可能會做這樣的:

begin 
    require 'hirb' 
rescue LoadError => e 
    puts "could not find hirb" 
end 
0

做到這一點,最好的方法是使用打捆,這樣你可以肯定真的會被安裝在你的寶石。

+0

Bundler對它的功能很有幫助,但它並不能幫助我在哪裏進行此項檢查。 – Kostas

+0

好吧,我會使用Kernel.gem然後加載一個寶石,並確保它是一個寶石,而不是其他文件。 – sunkencity