Bundler:列出组中的gem

时间:2014-07-02 01:01:09

标签: ruby gem rubygems bundle bundler

例如,我有以下Gemfile:

source "https://rubygems.org"

group :example_group do
  gem 'example_gem'
  gem 'another_example_gem'
end

如何列出内部的所有宝石:Ruby中的example_group?不是真的在寻找shell命令。

2 个答案:

答案 0 :(得分:0)

不确定你在这里想做什么,但有些想法:

  • Gemfile是ruby代码,意味着你可以在那里写简单的ruby
  • ' gem' Gemfile中的方法确实返回dependencies
  • 的当前列表

类似于:

source "https://rubygems.org"

gems = []

group :example_group do
  gem 'example_gem'
  gems << gem 'another_example_gem'
end

group_gems = gems.select { |gm| gm.groups.include?(:example_group) }.map { |gm| gm.name }
p group_gems.uniq

使用bundler时会打印出组中的宝石(例如,bundle install)。你可以将它们保存在某个地方而不是打印它们。

答案 1 :(得分:0)

Bundler::Graph改编,您可以:

Bundler.load.current_dependencies.select{|dep|
  dep.groups.include?(:example_group)}.map(&:name)