Class: Licensure::LicenseFetcher

Inherits:
Object
  • Object
show all
Defined in:
lib/licensure/license_fetcher.rb

Overview

Fetches gem license data from local gemspecs and RubyGems API.

Constant Summary collapse

RUBYGEMS_ENDPOINT =
"https://rubygems.org/api/v1/gems".freeze
GITHUB_LICENSE_ENDPOINT =
"https://api.github.com/repos".freeze
REQUEST_TIMEOUT =
5

Instance Method Summary collapse

Instance Method Details

#fetch(name, version) ⇒ Licensure::GemLicenseInfo

Parameters:

  • name (String)
  • version (String)

Returns:



22
23
24
25
26
27
28
29
30
# File 'lib/licensure/license_fetcher.rb', line 22

def fetch(name, version)
  local = fetch_from_gemspec(name)
  return build_info_from_payload(name, version, local, :gemspec) if local

  remote = fetch_from_api(name)
  return build_info_from_payload(name, version, remote, :api) if remote

  build_info(name, version, [], :unknown, nil)
end

#fetch_all(dependencies) ⇒ Array<Licensure::GemLicenseInfo>

Parameters:

  • dependencies (Array<Hash{Symbol => String}>)

Returns:



15
16
17
# File 'lib/licensure/license_fetcher.rb', line 15

def fetch_all(dependencies)
  dependencies.map { |dependency| fetch(dependency[:name], dependency[:version]) }
end