diff options
| author | mo khan <mo.khan@gmail.com> | 2020-01-13 17:07:35 -0700 |
|---|---|---|
| committer | mo khan <mo.khan@gmail.com> | 2020-01-15 15:03:07 -0700 |
| commit | 95d1ad36bde834c29f61f84cec84fe6bb91cc741 (patch) | |
| tree | 0676d151885105d73f61faa73c06a6a003197fcf /lib | |
| parent | 1cc6c02f2f34252a85d354741db0a80d0f199286 (diff) | |
Memoize the HTTP client
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/license_finder/package_utils/pypi.rb | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/lib/license_finder/package_utils/pypi.rb b/lib/license_finder/package_utils/pypi.rb index cfe3d66..e1617ee 100644 --- a/lib/license_finder/package_utils/pypi.rb +++ b/lib/license_finder/package_utils/pypi.rb @@ -7,14 +7,17 @@ module LicenseFinder class << self def definition(name, version) url = "https://pypi.org/pypi/#{name}/#{version}/json" - response = Net::Hippie::Client.new.tap do |client| - client.follow_redirects = 3 - client.with_retry { |x| x.get(url) } - end + response = http.with_retry { |client| client.get(url) } response.is_a?(Net::HTTPSuccess) ? JSON.parse(response.body).fetch('info', {}) : {} rescue *Net::Hippie::CONNECTION_ERRORS {} end + + def http + @http ||= Net::Hippie::Client.new.tap do |client| + client.follow_redirects = 3 + end + end end end end |
