class FavLanguage::LanguageStats

Attributes

token[R]
username[R]

Public Class Methods

new(username:, token: nil, repo_list_class: RepoList) click to toggle source
# File lib/fav_language/language_stats.rb, line 3
def initialize(username:, token: nil, repo_list_class: RepoList)
  @username = username
  @token = token
  @repo_list_class = repo_list_class
end

Public Instance Methods

fetch() click to toggle source
# File lib/fav_language/language_stats.rb, line 9
def fetch
  language_stats.group_by(&:language).map do |language, stats|
    OpenStruct.new(language: language, weight: stats.inject(0){ |sum, next_one| sum + next_one.bytes })
  end
end

Private Instance Methods

github() click to toggle source
# File lib/fav_language/language_stats.rb, line 22
def github
  @github ||= Github.new(oauth_token: token || ENV['GH_AUTH_TOKEN'])
end
language_stats() click to toggle source
# File lib/fav_language/language_stats.rb, line 18
def language_stats
  @repo_list_class.new(github: github, username: username).language_stats
end