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.



157
158
159
# File 'lib/repocrawler/crawler.rb', line 157

def initialize(gem_name)
  @gem_name = gem_name
end

Instance Method Details

#get_dependenciesObject

get the dependencies



202
203
204
205
206
207
# File 'lib/repocrawler/crawler.rb', line 202

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

  dependencies
end

#get_total_downloadsObject

total number of downloads



210
211
212
213
214
215
# File 'lib/repocrawler/crawler.rb', line 210

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



162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
# File 'lib/repocrawler/crawler.rb', line 162

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



178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
# File 'lib/repocrawler/crawler.rb', line 178

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
      }
    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