Sha256: 5ef07ff01035914498889eb7476d726cfe7c25c45e3d7379bae944335b64d36a
Contents?: true
Size: 1.41 KB
Versions: 47
Compression:
Stored size: 1.41 KB
Contents
class Lambdagem::Exist < Lambdagem::Base def initialize(options) @options = options end # We check all the availability before even downloading so we can provide a # full list of gems they might want to research all at once instead of incrementally # # Examples: # # check(single_gem) # check(list, of, gems) def check(*gem_names) gem_names = gem_names.flatten exists = gem_names.inject({}) do |hash, gem_name| exist = url_exists?(gem_url(gem_name)) hash[gem_name] = exist hash.merge(hash) end exists.values.all? {|v| v } # all_exist end # Example url: # https://gems.lambdagems.com/gems/2.5.0/byebug/byebug-9.1.0-x86_64-linux.tgz def url_exists?(url) url = URI.parse(url) req = Net::HTTP.new(url.host, url.port).tap do |http| http.use_ssl = true end res = req.request_head(url.path) res.code == "200" rescue SocketError, OpenURI::HTTPError false end def lambdagems_url s3_bucket = @options[:s3] || "lambdagems" s3_url = "https://s3.amazonaws.com/#{s3_bucket}" @options[:lambdagems_url] || s3_url end # gem_name: byebug-9.1.0 # Example url: # https://gems.lambdagems.com/gems/2.5.0/byebug/byebug-9.1.0-x86_64-linux.tgz def gem_url(gem_name) folder = gem_name.gsub(/-(\d+\.\d+\.\d+.*)/,'') # folder: byebug "#{lambdagems_url}/gems/#{jets_ruby_version}/#{folder}/#{gem_name}-x86_64-linux.tgz" end end
Version data entries
47 entries across 47 versions & 1 rubygems