Class: GemInsight::GemDataFetcher

Inherits:
Object
  • Object
show all
Defined in:
lib/gem/insight/gem_data_fetcher.rb

Constant Summary collapse

RUBYGEMS_API_BASE_URL =
'https://rubygems.org/api/v2/rubygems/'

Class Method Summary collapse

Class Method Details

.fetch_gem_details(gem_name, gem_version = 'latest') ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/gem/insight/gem_data_fetcher.rb', line 8

def self.fetch_gem_details(gem_name, gem_version = 'latest')
  api_url = "#{RUBYGEMS_API_BASE_URL}#{gem_name}/versions/#{gem_version}.json"
  uri = URI(api_url)

  response = Net::HTTP.get(uri)
  gem_data = JSON.parse(response)

  {
    name: gem_data['name'],
    version: gem_data['version'],
    total_downloads: gem_data['downloads'],
    documentation_url: gem_data['documentation_uri'],
    ruby_version_support: gem_data['ruby_version'],
    compatibility: gem_data['platform'],
    github_repository: gem_data['source_code_uri'],
    bug_tracker: gem_data['bug_tracker_uri'],
    gem_uri: gem_data['gem_uri'],
    changelog: gem_data['changelog_uri']
    # Add other details as needed
  }
end