Ruby 安全地要求宝石在红宝石

Ruby 安全地要求宝石在红宝石,ruby,rubygems,require,Ruby,Rubygems,Require,是否有一种方法可以安全地要求ruby gem,以便在找不到该gem时不会引发异常 我正在寻找一个接近这一点的解决方案: if require 'hirb' # do some hirb related stuff else # do other stuff end 我希望这样做是为了确保没有不必要的gem会使我的部署失败。可能会这样做: begin require 'hirb' rescue LoadError => e puts "could not find hirb

是否有一种方法可以安全地要求ruby gem,以便在找不到该gem时不会引发异常

我正在寻找一个接近这一点的解决方案:

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

我希望这样做是为了确保没有不必要的gem会使我的部署失败。

可能会这样做:

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

最好的方法是使用bundler,这样你就可以确保你的gem真的会被安装。

bundler的功能很好,但它对我想进行此检查的位置没有帮助。好的,我会使用Kernel.gem来加载gem,并确保它是一个gem而不是其他文件。Ruby应该有一个
类的\u want
命令,用于在您不真正需要
东西时使用;开始;要求姓名;产量救援装载错误;放置“无法加载#{gemname}”;结束;结束
:D