Class: GemVersionCheck::LockfileFetcher
- Inherits:
-
Object
- Object
- GemVersionCheck::LockfileFetcher
- Defined in:
- lib/gem_version_check/lockfile_fetcher.rb
Defined Under Namespace
Classes: NotFoundError
Instance Method Summary collapse
- #content ⇒ Object
-
#gemfile_lock_url ⇒ Object
github.com redirects github.com/user/project/raw/master/Gemfile.lock to raw.github.com/user/project/master/Gemfile.lock github enterprise does not redirect TODO: change if github enterprise redirects too.
-
#initialize(project) ⇒ LockfileFetcher
constructor
A new instance of LockfileFetcher.
- #repository ⇒ Object
- #request(uri) ⇒ Object
Constructor Details
#initialize(project) ⇒ LockfileFetcher
Returns a new instance of LockfileFetcher.
6 7 8 |
# File 'lib/gem_version_check/lockfile_fetcher.rb', line 6 def initialize(project) @project = project end |
Instance Method Details
#content ⇒ Object
10 11 12 13 14 15 |
# File 'lib/gem_version_check/lockfile_fetcher.rb', line 10 def content uri = URI.parse(repository) body = request(uri) raise NotFoundError.new(repository) if body.nil? body end |
#gemfile_lock_url ⇒ Object
github.com redirects github.com/user/project/raw/master/Gemfile.lock to raw.github.com/user/project/master/Gemfile.lock github enterprise does not redirect TODO: change if github enterprise redirects too
30 31 32 33 34 35 36 37 |
# File 'lib/gem_version_check/lockfile_fetcher.rb', line 30 def gemfile_lock_url host = GemVersionCheck.configuration.github_host if GemVersionCheck.configuration.github_host == "github.com" "https://raw.#{host}/#{@project}/master/Gemfile.lock" else "https://#{host}/raw/#{@project}/master/Gemfile.lock" end end |
#repository ⇒ Object
17 18 19 20 21 22 23 24 25 |
# File 'lib/gem_version_check/lockfile_fetcher.rb', line 17 def repository @repository ||= begin if @project =~ /^http(s)?:\/\// @project else gemfile_lock_url end end end |
#request(uri) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/gem_version_check/lockfile_fetcher.rb', line 39 def request(uri) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true if uri.scheme == 'https' request = Net::HTTP::Get.new(uri.request_uri) if token = GemVersionCheck.configuration.token request.basic_auth token, 'x-oauth-basic' end response = http.request(request) if response.code == "200" response.body else puts "Error retrieving Gemfile.lock: #{response.inspect}" nil end end |