Ruby中檢測Gem是否安裝的方法
最近參加七牛的demo大賽,決定使用ruby開發(fā)。于是遇到了一些疑問,然后解決了,這里記錄一下。
在Ruby中,Gem是一個很常見的東西,其相當(dāng)于插件,Ruby有很多很棒的gem,避免了我們重復(fù)造輪子,我的demo中需要安裝gem,但是為了更加實現(xiàn)好一些,先檢測gem是否已經(jīng)安裝,如果沒有安裝,在繼續(xù)安裝,否則不安裝。
于是,怎么在Ruby中檢測gem是否安裝呢,其實也很簡單,直接上代碼就可以了。不需太多解釋。begin…rescue…相當(dāng)于java中的try catch。
#!/usr/bin/env ruby
# encoding: utf-8
def checkGemAvailable(gemName, versionLimit=nil)
isAvailable = false
begin
if versionLimit == nil
gem gemName
else
gem gemName, versionLimit
end
isAvailable = true
rescue LoadError
end
isAvailable
end
跑起來看一看
puts checkGemAvailable('rack')
puts checkGemAvailable('rack', '>=2')
我機(jī)器的rack信息
rack (1.5.2)
所以上面執(zhí)行的結(jié)果為
true
false
相關(guān)文章
Python的Flask框架中SERVER_NAME域名項的配置教程
SERVER_NAME項在Flask的路由配置中至關(guān)重要,特別是在配置絕對url和子域名的操作中,這里我們就來看一下Python的Flask框架中SERVER_NAME項的配置教程:2016-06-06淘寶網(wǎng)提供的國內(nèi)RubyGems鏡像簡介和使用方法
由于國內(nèi)的網(wǎng)絡(luò)環(huán)境,導(dǎo)致 rubygems.org 存放在 Amazon S3 上面的資源文件間歇性連接失敗,因此使用gem或bundle時常常會遇到長久無響應(yīng)的情況2014-04-04Ruby 中的 module_function 和 extend self異同
本文主要給大家介紹了在Ruby中 module_function 和 extend self的共同點和區(qū)別,非常的詳細(xì),也很實用,方便大家更好的理解的module_function 和 extend self2017-05-05