Class: GemChangelogDiff::RubygemsClient
- Inherits:
-
Object
- Object
- GemChangelogDiff::RubygemsClient
- Defined in:
- lib/gem_changelog_diff/rubygems_client.rb
Overview
Queries the RubyGems.org API for gem metadata and source repository URLs.
Constant Summary collapse
- RUBYGEMS_API =
"https://rubygems.org/api/v1/gems/%<name>s.json"
Instance Method Summary collapse
-
#initialize(cache: nil, uri_resolver: UriResolver.new) ⇒ RubygemsClient
constructor
A new instance of RubygemsClient.
-
#latest_version(gem_name) ⇒ String?
Returns the latest version string for a gem from RubyGems.
-
#repo_url(gem_name) ⇒ String?
Looks up the GitHub repository slug for a gem.
Constructor Details
#initialize(cache: nil, uri_resolver: UriResolver.new) ⇒ RubygemsClient
Returns a new instance of RubygemsClient.
11 12 13 14 |
# File 'lib/gem_changelog_diff/rubygems_client.rb', line 11 def initialize(cache: nil, uri_resolver: UriResolver.new) @cache = cache @uri_resolver = uri_resolver end |
Instance Method Details
#latest_version(gem_name) ⇒ String?
Returns the latest version string for a gem from RubyGems.
29 30 31 32 |
# File 'lib/gem_changelog_diff/rubygems_client.rb', line 29 def latest_version(gem_name) data = fetch_gem_data(gem_name) data&.dig("version") end |
#repo_url(gem_name) ⇒ String?
Looks up the GitHub repository slug for a gem.
19 20 21 22 23 24 |
# File 'lib/gem_changelog_diff/rubygems_client.rb', line 19 def repo_url(gem_name) data = fetch_gem_data(gem_name) return nil unless data @uri_resolver.resolve(data) end |