Sha256: 692289fae25b3a2a5f4995d56f502018a90fd5940c102d694997a1a0c9decc29

Contents?: true

Size: 814 Bytes

Versions: 4

Compression:

Stored size: 814 Bytes

Contents

require 'open-uri'

module Jets::Gems
  class Exist
    include Jets::Gems::Api::Concern

    # 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 = gem_exist?(gem_name)
        hash[gem_name] = exist
        hash.merge(hash)
      end

      exists.values.all? {|v| v } # all_exist
    end

    def gem_exist?(gem_name)
      data = api.check_exist(gem_name: gem_name)
      data["exist"]
    rescue SocketError, OpenURI::HTTPError, OpenSSL::SSL::SSLError
      false
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
serverlessgems-0.1.3 lib/jets/gems/exist.rb
serverlessgems-0.1.2 lib/jets/gems/exist.rb
serverlessgems-0.1.1 lib/jets/gems/exist.rb
serverlessgems-0.1.0 lib/jets/gems/exist.rb