Class: Repos::RubyGemsData

Inherits:
Object
  • Object
show all
Defined in:
lib/repocrawler/crawler.rb

Instance Method Summary collapse

Constructor Details

#initialize(gem_name) ⇒ RubyGemsData

Returns a new instance of RubyGemsData.



292
293
294
# File 'lib/repocrawler/crawler.rb', line 292

def initialize(gem_name)
  @gem_name = gem_name
end

Instance Method Details

#get_dependenciesObject

get the dependencies



338
339
340
341
342
343
# File 'lib/repocrawler/crawler.rb', line 338

def get_dependencies
  oga_info = Gems.info @gem_name
  dependencies = oga_info['dependencies']

  dependencies
end

#get_total_downloadsObject

total number of downloads



346
347
348
349
350
351
# 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_downloadsObject

get the downloads of each versions



297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
# 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 = '') ⇒ Object



313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
# 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