【问题标题】:Safely require gems in Ruby在 Ruby 中安全地需要 gem
【发布时间】:2011-11-10 14:08:31
【问题描述】:

有没有办法安全地要求红宝石宝石,以免在找不到宝石时引发异常?

我正在寻找接近此的解决方案:

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

我希望这样可以确保没有不必要的 gem 导致我的部署失败。

【问题讨论】:

  • Ruby 应该有一个 kind_of_want 命令,用于当你不真正 require 某事时。
  • def would_like(gemname, &block); begin; require gemname; yield; rescue LoadError; puts "Could not load #{gemname}"; end; end:D

标签: ruby rubygems require


【解决方案1】:

大概是这样的:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • Bundler 对它的作用有好处,但它对我想要做这个检查的地方没有帮助。
    • 好的,我会使用 Kernel.gem 然后加载一个 gem,并确保它是一个 gem 而不是其他文件。
    猜你喜欢
    • 2016-09-02
    • 2015-09-12
    • 2014-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-17
    相关资源
    最近更新 更多