如何查看特定宝石组的所有宝石?

时间:2013-03-19 11:45:23

标签: ruby-on-rails ruby bundler gemfile

我希望看到为test环境加载的所有gem,包括版本和依赖项。这样的事情有可能吗?

2 个答案:

答案 0 :(得分:2)

你可以自己动手:

require 'bundler/setup'

group = :development

deps = Bundler.environment.dependencies.select do |dep|
  dep.groups.include?(group) or dep.groups.include?(:default)
end

puts "Gems included by the bundle in group #{group}:"
deps.each do |dep|
  spec = dep.to_spec
  puts "* #{spec.name} (#{spec.version})"
end

示例Gemfile

source 'https://rubygems.org'


gem 'sinatra'
gem 'thor'

group :test do
  gem 'rspec'
end

group :development do
  gem 'rspec'
  gem 'pry'
end

示例输出:

Gems included by the bundle in group development:
* sinatra (1.4.1)
* thor (0.17.0)
* rspec (2.13.0)
* pry (0.9.12)

答案 1 :(得分:1)

它应该已经存在于你的Gemfile中

指定测试的块中的任何内容都将成为测试环境的一部分,测试块之外的任何内容都将被加载。

所有依赖项都应列在Gemfile.lock

修改

好的,根据您的反馈,这应该做你想要的。

Rails c test

在测试环境中打开控制台

pp Gem.loaded_specs.sort

这将按字母顺序精确打印所有规格