我怎样才能找到宝石和在Ruby中使用Bundler的组?

时间:2014-03-24 02:48:44

标签: ruby bundler

我想在ruby中使用Bundler对象加载Gemfile,并能够查看gems,依赖项和各种组。由于这显然没有记录,任何知道捆绑源的人都知道如何做到这一点吗?

2 个答案:

答案 0 :(得分:1)

我所知道的唯一方法是通过bundle viz来表示哪些群组拥有哪些版本的依赖关系。

通过bundle viz documentation$ bundle help viz,您可以看到-V选项将输出生成的图表中的版本。

注意,您需要安装依赖项(通常为ruby-graphviz)。您将获得与以下内容类似的图像:

This example image from one of my discarded projects

注意,这可能不是解析此数据的最简单方法;但是,这是可用的方法。

答案 1 :(得分:1)

在探索Bundler源代码之后...我发现你可以做到这一点......

require 'bundler'
b = Bundler::Dsl.new
b.eval_gemfile('Gemfile')  # point to your Gemfile path

b.dependencies.each do |g|
  puts g.name
  puts g.groups
  puts g.requirements_list
end

@sevenseacat您可能需要更多地查找特定宝石所依赖的其他宝石,但希望这会让您开始。它确实实现了我的目标。