使用RubyGems API,我需要请求所有版本的gem(使用api / v1 / versions / [gem] .json),然后,对于每个版本,列出所有依赖项,如api / v1的结果/gems/[gem].json。
我看了,最好的方法是在特定版本上调用api / v1 / versions / [gem] - [version] .json,但它不提供此版本的依赖项。
是否有其他方法可以获取特定版本的gem的所有依赖项?
答案 0 :(得分:0)
我找到了解决方案。最好(也是唯一的方法)是使用gem的依赖文件,它列出了每个gem版本的所有依赖项。 要获取此文件,必须调用API的依赖地址:http://guides.rubygems.org/rubygems-org-api/#misc-methods(最后一个)。
在那之后,这几行完成所有事情以获得特定版本的依赖关系:
url = URI("https://rubygems.org/api/v1/dependencies?gems=#{gem_name}")
dependencies = Net::HTTP.get(url)
data = Marshal.load(dependencies).each do |dependency|
break dependency if dependency[:number] == gem_version
end