2015-07-03 70 views
0

使用RubyGems API,我需要請求所有版本的gem(帶有api/v1/versions/[gem] .json),之後,對於每個版本,列出所有依賴關係,如api/v1/gems/[gem] .json的結果。在RubyGems上獲取特定版本的Gem的所有依賴項

我看了,最好的方法是在特定版本上調用api/v1/versions/[gem] - [version] .json,但它不提供此版本的依賴關係。

是否有另一種方式獲得特定版本的所有gem依賴關係?

回答

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 
+0

您好我想建立可獲取寶石的所有依賴的API。你能指導我通過這些步驟或發佈你的寶石依賴API代碼。謝謝。 – ProgrammerPanda

+1

嗨!那麼,最簡​​單的方法是重新使用我發佈的代碼。您可以獲得所有版本的第一行和第二行的所有版本的相關性。它會返回一個你需要使用Marshal類加載的文件(它會給你一個代表依賴關係的對象數組),然後你只需循環這個數組來找到你正在尋找的gem版本。 但是,我不能發佈代碼,因爲它是我不再工作的公司的項目。 – GauthierPLM

相關問題