class Repos::RubyGemsData

Public Class Methods

new(gem_name) click to toggle source
# File lib/repocrawler/crawler.rb, line 292
def initialize(gem_name)
  @gem_name = gem_name
end

Public Instance Methods

get_dependencies() click to toggle source

get the dependencies

# File lib/repocrawler/crawler.rb, line 338
def get_dependencies
  oga_info = Gems.info @gem_name
  dependencies = oga_info['dependencies']

  dependencies
end
get_total_downloads() click to toggle source

total number of downloads

# File lib/repocrawler/crawler.rb, line 346
def get_total_downloads
  oga_info = Gems.info @gem_name
  total_downloads = oga_info['downloads']

  total_downloads
end
get_version_downloads() click to toggle source

get the downloads of each versions

# File lib/repocrawler/crawler.rb, line 297
def get_version_downloads
  versions = Gems.versions @gem_name

  version_downloads = versions.map do |version|
    if version['platform'] === 'ruby'
      {
        'number' => version['number'],
        'downloads' =>version['downloads_count']
      }
    end
  end.reverse!

  version_downloads.compact! if version_downloads.include? nil
  version_downloads
end
get_version_downloads_trend(start_date='', end_date='') click to toggle source
# File lib/repocrawler/crawler.rb, line 313
def get_version_downloads_trend(start_date='', end_date='')
  versions = Gems.versions @gem_name

  end_date = Date.today if end_date.to_s == ''
  version_downloads_trend = versions.map do |version|
    start = version['created_at'] if start_date.to_s == ''

    if version['platform'] === 'ruby'
      version_downloads_days = Gems.downloads @gem_name, version['number'], start, end_date
      {
        'number' => version['number'],
        'downloads_date' => version_downloads_days,
        'created_at'  => version['created_at']
      }
    end
  end.reverse!

  version_downloads_trend.compact! if version_downloads_trend.include? nil

  version_downloads_trend.each do |version|
    version['downloads_date'].delete_if {|_key, value| value == 0}
  end
end