diff options
| -rw-r--r-- | lib/license/management.rb | 9 | ||||
| -rw-r--r-- | lib/license/management/pypi.rb | 14 |
2 files changed, 12 insertions, 11 deletions
diff --git a/lib/license/management.rb b/lib/license/management.rb index a6986e7..85ef4cc 100644 --- a/lib/license/management.rb +++ b/lib/license/management.rb @@ -14,6 +14,8 @@ require 'license/management/pypi' # This applies a monkey patch to the JsonReport found in the `license_finder` gem. LicenseFinder::JsonReport.prepend(License::Management::Report) + +# This monkey patch can be removed once https://github.com/pivotal/LicenseFinder/pull/659 is released LicenseFinder::Scanner.const_set( :PACKAGE_MANAGERS, LicenseFinder::Scanner::PACKAGE_MANAGERS + [License::Management::Pipenv] @@ -38,5 +40,12 @@ module License def self.root Pathname.new(File.dirname(__FILE__)).join('../..') end + + def self.http + @http ||= Net::Hippie::Client.new.tap do |client| + client.logger = ::Logger.new('http.log') + client.follow_redirects = 3 + end + end end end diff --git a/lib/license/management/pypi.rb b/lib/license/management/pypi.rb index c0254e6..0397532 100644 --- a/lib/license/management/pypi.rb +++ b/lib/license/management/pypi.rb @@ -6,15 +6,14 @@ module License module Management class PyPI include Loggable - attr_reader :http - def initialize(http = default_http) + def initialize(http) @http = http end def definition_for(name, version) uri = "https://pypi.org/pypi/#{name}/#{version}/json" - process(http.get(uri)).tap do |definition| + process(@http.with_retry { |client| client.get(uri) }).tap do |definition| log_info([name, version, definition["license"]].inspect) end rescue *Net::Hippie::CONNECTION_ERRORS @@ -23,7 +22,7 @@ module License class << self def definition(name, version) - @pypi ||= new + @pypi ||= new(License::Management.http) @pypi.definition_for(name, version) end end @@ -37,13 +36,6 @@ module License {} end - def default_http - @default_http ||= Net::Hippie::Client.new.tap do |client| - client.logger = ::Logger.new('http.log') - client.follow_redirects = 3 - end - end - def ok?(response) response.is_a?(Net::HTTPSuccess) end |
