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 |
# File 'lib/gem_version_check/lockfile_fetcher.rb', line 30 def gemfile_lock_url if GemVersionCheck.configuration.github_host == "github.com" "https://raw.#{GemVersionCheck.configuration.github_host}/#{@project}/master/Gemfile.lock" else "https://#{GemVersionCheck.configuration.github_host}/#{@project}/raw/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
38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/gem_version_check/lockfile_fetcher.rb', line 38 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) response = http.request(request) if response.code == "200" response.body else puts "Error retrieving Gemfile.lock: #{response.inspect}" nil end end |