我想在ruby中使用Bundler对象加载Gemfile,并能够查看gems,依赖项和各种组。由于这显然没有记录,任何知道捆绑源的人都知道如何做到这一点吗?
答案 0 :(得分:1)
我所知道的唯一方法是通过bundle viz
来表示哪些群组拥有哪些版本的依赖关系。
通过bundle viz documentation或$ bundle help viz
,您可以看到-V
选项将输出生成的图表中的版本。
注意,您需要安装依赖项(通常为ruby-graphviz
)。您将获得与以下内容类似的图像:
注意,这可能不是解析此数据的最简单方法;但是,这是可用的方法。
答案 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您可能需要更多地查找特定宝石所依赖的其他宝石,但希望这会让您开始。它确实实现了我的目标。