Class: Github::Repository

Inherits:
Object
  • Object
show all
Defined in:
lib/gitget/github_repository.rb

Overview

Main class to set up a Github User

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data: nil) ⇒ Repository

Returns a new instance of Repository.



12
13
14
# File 'lib/gitget/github_repository.rb', line 12

def initialize(data: nil)
  load_data(data)
end

Instance Attribute Details

#created_atObject (readonly)

Returns the value of attribute created_at.



6
7
8
# File 'lib/gitget/github_repository.rb', line 6

def created_at
  @created_at
end

#forksObject (readonly)

Returns the value of attribute forks.



6
7
8
# File 'lib/gitget/github_repository.rb', line 6

def forks
  @forks
end

#forks_countObject (readonly)

Returns the value of attribute forks_count.



6
7
8
# File 'lib/gitget/github_repository.rb', line 6

def forks_count
  @forks_count
end

#full_nameObject (readonly)

Returns the value of attribute full_name.



6
7
8
# File 'lib/gitget/github_repository.rb', line 6

def full_name
  @full_name
end

#git_urlObject (readonly)

Returns the value of attribute git_url.



6
7
8
# File 'lib/gitget/github_repository.rb', line 6

def git_url
  @git_url
end

#has_downloadsObject (readonly)

Returns the value of attribute has_downloads.



6
7
8
# File 'lib/gitget/github_repository.rb', line 6

def has_downloads
  @has_downloads
end

#has_issuesObject (readonly)

Returns the value of attribute has_issues.



6
7
8
# File 'lib/gitget/github_repository.rb', line 6

def has_issues
  @has_issues
end

#idObject (readonly)

Returns the value of attribute id.



6
7
8
# File 'lib/gitget/github_repository.rb', line 6

def id
  @id
end

#is_forkObject (readonly)

Returns the value of attribute is_fork.



6
7
8
# File 'lib/gitget/github_repository.rb', line 6

def is_fork
  @is_fork
end

#is_privateObject (readonly)

Returns the value of attribute is_private.



6
7
8
# File 'lib/gitget/github_repository.rb', line 6

def is_private
  @is_private
end

#languageObject (readonly)

Returns the value of attribute language.



6
7
8
# File 'lib/gitget/github_repository.rb', line 6

def language
  @language
end

#nameObject (readonly)

Returns the value of attribute name.



6
7
8
# File 'lib/gitget/github_repository.rb', line 6

def name
  @name
end

#open_issuesObject (readonly)

Returns the value of attribute open_issues.



6
7
8
# File 'lib/gitget/github_repository.rb', line 6

def open_issues
  @open_issues
end

#open_issues_countObject (readonly)

Returns the value of attribute open_issues_count.



6
7
8
# File 'lib/gitget/github_repository.rb', line 6

def open_issues_count
  @open_issues_count
end

#pushed_atObject (readonly)

Returns the value of attribute pushed_at.



6
7
8
# File 'lib/gitget/github_repository.rb', line 6

def pushed_at
  @pushed_at
end

#sizeObject (readonly)

Returns the value of attribute size.



6
7
8
# File 'lib/gitget/github_repository.rb', line 6

def size
  @size
end

#stargazers_countObject (readonly)

Returns the value of attribute stargazers_count.



6
7
8
# File 'lib/gitget/github_repository.rb', line 6

def stargazers_count
  @stargazers_count
end

#updated_atObject (readonly)

Returns the value of attribute updated_at.



6
7
8
# File 'lib/gitget/github_repository.rb', line 6

def updated_at
  @updated_at
end

#watchersObject (readonly)

Returns the value of attribute watchers.



6
7
8
# File 'lib/gitget/github_repository.rb', line 6

def watchers
  @watchers
end

#watchers_countObject (readonly)

Returns the value of attribute watchers_count.



6
7
8
# File 'lib/gitget/github_repository.rb', line 6

def watchers_count
  @watchers_count
end

Class Method Details

.find(owner:, repo:) ⇒ Object



43
44
45
46
47
# File 'lib/gitget/github_repository.rb', line 43

def self.find(owner:, repo:)
  repo_data = Github::API.repo_info(owner, repo)
  return nil if repo_data['message'] == 'Not Found'
  new(data: repo_data)\
end

Instance Method Details

#load_data(repo_data) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/gitget/github_repository.rb', line 27

def load_data(repo_data)
  @id = repo_data['id']
  @full_name = repo_data['full_name']
  @is_private = repo_data['is_private']
  @is_fork = repo_data['is_fork']
  @created_at = repo_data['created_at']
  @pushed_at = repo_data['pushed_at']
  @size = repo_data['size']
  @stargazers_count = repo_data['stargazers_count']
  @watchers_count = repo_data['watchers_count']
  @forks_count = repo_data['forks_count']
  @open_issues_count = repo_data['open_issues_count']
  @language = repo_data['language']
  @git_url = repo_data['git_url']
end

#statsObject



16
17
18
19
20
21
22
23
24
25
# File 'lib/gitget/github_repository.rb', line 16

def stats
  return @stats if @stats

  @stats = {}
  %w(
    contributors commit_activity code_frequency participation punch_card
  ).each do |stat|
    @stats[stat] = Github::API.repo_stat(@full_name, stat)
  end
end