summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authormo khan <mo.khan@gmail.com>2020-01-13 17:07:35 -0700
committermo khan <mo.khan@gmail.com>2020-01-15 15:03:07 -0700
commit95d1ad36bde834c29f61f84cec84fe6bb91cc741 (patch)
tree0676d151885105d73f61faa73c06a6a003197fcf /lib
parent1cc6c02f2f34252a85d354741db0a80d0f199286 (diff)
Memoize the HTTP client
Diffstat (limited to 'lib')
-rw-r--r--lib/license_finder/package_utils/pypi.rb11
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