ruby - 如何查看系统中是否安装了 gem?

标签 ruby rubygems gem

如何查看系统中是否安装了gem?

%x('gem' 'list').split.find{|i| i == "capybara"}

有没有更短的方法?

最佳答案

如果您尝试在 ruby​​ 中执行此操作,则可以使用内置的 RubyGem 方法。旧版本提供了一个返回 bool 值的 Gem.available?('capybara') 方法,但这已被弃用。现在推荐的方式是使用(假设你使用的是支持它的版本):

Gem::Specification::find_by_name('capybara')

http://rubygems.rubyforge.org/rubygems-update/Gem/Specification.html

更新

如果你想要一个 bool 结果,你可以使用 .find_all_by_name() 并检查结果数组是否为空:

if Gem::Specification::find_all_by_name('capybara').any?
  # Gem is available
end

关于ruby - 如何查看系统中是否安装了 gem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8490167/

相关文章:

ruby - 私有(private) gem 服务器 - 在服务器上找不到依赖项 (404)

ruby - 为什么会出现未初始化常量 Stuff::HTTPParty 错误?

javascript - 如何使用 gem 'intros-rails' 在 Rails 中创建导游

ruby-on-rails - 如何从 Rails 2.3.5 中的模型渲染部分

mysql - rake 中止!未初始化的常量 Mysql2

ruby-on-rails - gem 更新: unable to convert "\xE7" to UTF-8 in conversion from ASCII-8BIT to UTF-8 to US-ASCII

ruby - 在 ruby​​ 上管理 setter 和 getter 方法

mysql - 如何从服务器中的文件转储

ruby-on-rails - 开发生成 HTML : should I rather use nested content_tag()s or partials? 的辅助函数

gem - 在非 Rails 应用程序中需要 Gemfile 中的所有 gem?