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.



271
272
273
# File 'lib/repocrawler/crawler.rb', line 271

def initialize(gem_name)
  @gem_name = gem_name
end

Instance Method Details

#get_dependenciesObject

get the dependencies



317
318
319
320
321
322
# File 'lib/repocrawler/crawler.rb', line 317

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

  dependencies
end

#get_total_downloadsObject

total number of downloads



325
326
327
328
329
330
# File 'lib/repocrawler/crawler.rb', line 325

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



276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
# File 'lib/repocrawler/crawler.rb', line 276

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



292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
# File 'lib/repocrawler/crawler.rb', line 292

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