Module: Bundler::Checksum::Command::Helper

Extended by:
Helper
Included in:
Helper
Defined in:
lib/bundler/checksum/command/helper.rb

Instance Method Summary collapse

Instance Method Details

#remote_checksums_for_gem(gem_name, gem_version) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/bundler/checksum/command/helper.rb', line 10

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