blob: fa06bfe3da470725ec88d70d4925000081a40b8b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# frozen_string_literal: true
require 'json'
require 'net/http'
module Bundler::Checksum::Command
module Helper
extend self
def remote_checksums_for_gem(gem_name, gem_version)
response = Net::HTTP.get_response(URI(
"https://rubygems.org/api/v1/versions/#{gem_name}.json"
))
return [] unless response.code == '200'
gem_candidates = JSON.parse(response.body, symbolize_names: true)
gem_candidates.select! { |g| g[:number] == gem_version.to_s }
gem_candidates.map {
|g| {:name => gem_name, :version => gem_version, :platform => g[:platform], :checksum => g[:sha]}
}
rescue JSON::ParserError
[]
end
end
end
|