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