Class: Jets::Gems::Exist
- Inherits:
-
Object
- Object
- Jets::Gems::Exist
- Defined in:
- lib/jets/gems/exist.rb
Instance Method Summary collapse
-
#check(*gem_names) ⇒ Object
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.
-
#gem_url(gem_name) ⇒ Object
gem_name: byebug-9.1.0 Example url: gems2.lambdagems.com/gems/2.5.0/byebug/byebug-9.1.0.zip.
-
#initialize(options) ⇒ Exist
constructor
A new instance of Exist.
- #ruby_folder ⇒ Object
- #source_url ⇒ Object
-
#url_exists?(url) ⇒ Boolean
Example url: gems2.lambdagems.com/gems/2.5.0/byebug/byebug-9.1.0.zip.
Constructor Details
#initialize(options) ⇒ Exist
Returns a new instance of Exist.
5 6 7 |
# File 'lib/jets/gems/exist.rb', line 5 def initialize() @options = end |
Instance Method Details
#check(*gem_names) ⇒ Object
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)
16 17 18 19 20 21 22 23 24 25 |
# File 'lib/jets/gems/exist.rb', line 16 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 |
#gem_url(gem_name) ⇒ Object
gem_name: byebug-9.1.0 Example url:
https://gems2.lambdagems.com/gems/2.5.0/byebug/byebug-9.1.0.zip
47 48 49 50 |
# File 'lib/jets/gems/exist.rb', line 47 def gem_url(gem_name) folder = gem_name.gsub(/-(\d+\.\d+\.\d+.*)/,'') # folder: byebug "#{source_url}/gems/#{Jets::Gems.ruby_folder}/#{folder}/#{gem_name}.zip" end |
#ruby_folder ⇒ Object
52 53 54 |
# File 'lib/jets/gems/exist.rb', line 52 def ruby_folder Jets::Gems.ruby_folder end |
#source_url ⇒ Object
40 41 42 |
# File 'lib/jets/gems/exist.rb', line 40 def source_url @options[:source_url] || s3_url end |
#url_exists?(url) ⇒ Boolean
Example url:
https://gems2.lambdagems.com/gems/2.5.0/byebug/byebug-9.1.0.zip
29 30 31 32 33 34 35 36 37 38 |
# File 'lib/jets/gems/exist.rb', line 29 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, OpenSSL::SSL::SSLError false end |