ghuls-lib 1.1.3 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/ghuls/lib.rb +20 -33
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 91d1a894139f17e933e802fd1d27f59e1a0b82a4
|
4
|
+
data.tar.gz: c56fc6748fe1d35005202c4491d5dd176ed19381
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bd4a495f647029cc917e9e22728730a573a4e8b2ecc7e20753bca93db80d08678a2cd67336f6be5d6b2efdfc5fd56f12d175a6991d671151ed86a7bebe7a8f8e
|
7
|
+
data.tar.gz: 44f297bff0cacaf26e4ff4ddbbfd4bea4a34f525b089d3a93a38e4f5a9251cc5538bf8d7867c2ae0cdcae1d0b110d6245101c6ce04ace05cf261c106bd460234
|
data/lib/ghuls/lib.rb
CHANGED
@@ -32,37 +32,24 @@ module GHULS
|
|
32
32
|
full.at(full.index(single) + 1)
|
33
33
|
end
|
34
34
|
|
35
|
-
# Gets whether or not the user exists.
|
36
|
-
# @param username [String] The user to check
|
37
|
-
# @param github [Octokit::Client] The instance of Octokit to use.
|
38
|
-
# @return [Boolean] True if it does, false if it doesn't.
|
39
|
-
def self.user_exists?(username, github)
|
40
|
-
begin
|
41
|
-
github.user(username)
|
42
|
-
rescue Octokit::NotFound
|
43
|
-
return false
|
44
|
-
end
|
45
|
-
true
|
46
|
-
end
|
47
|
-
|
48
35
|
# Gets the username and checks if it exists in the process.
|
49
|
-
# @param
|
50
|
-
# @param github [Octokit::Client]
|
51
|
-
# @return [
|
36
|
+
# @param user [Any] The user ID or name.
|
37
|
+
# @param github [Octokit::Client] The instance of Octokit::Client.
|
38
|
+
# @return [Hash] Data formatted as { username: username, avatar: url }
|
52
39
|
# @return [Boolean] False if it does not exist.
|
53
|
-
def self.get_user_and_check(
|
40
|
+
def self.get_user_and_check(user, github)
|
54
41
|
begin
|
55
|
-
|
42
|
+
user_full = github.user(user)
|
56
43
|
rescue Octokit::NotFound
|
57
44
|
return false
|
58
45
|
end
|
59
|
-
username[:login]
|
46
|
+
{ username: user_full[:login], avatar: user_full[:avatar_url] }
|
60
47
|
end
|
61
48
|
|
62
49
|
# Returns the repos in the user's organizations that they have actually
|
63
50
|
# contributed to.
|
64
|
-
# @param username [String] See #
|
65
|
-
# @param github [Octokit::Client] See #
|
51
|
+
# @param username [String] See #get_user_and_check
|
52
|
+
# @param github [Octokit::Client] See #get_user_and_check
|
66
53
|
# @return [Array] All the repository full names that the user has
|
67
54
|
# contributed to.
|
68
55
|
def self.get_org_repos(username, github)
|
@@ -90,8 +77,8 @@ module GHULS
|
|
90
77
|
end
|
91
78
|
|
92
79
|
# Gets the langauges and their bytes for the user.
|
93
|
-
# @param username [String] See #
|
94
|
-
# @param github [Octokit::Client] See #
|
80
|
+
# @param username [String] See #get_user_and_check
|
81
|
+
# @param github [Octokit::Client] See #get_user_and_check
|
95
82
|
# @return [Hash] The languages and their bytes, as formatted as
|
96
83
|
# { :Ruby => 129890, :CoffeeScript => 5970 }
|
97
84
|
def self.get_user_langs(username, github)
|
@@ -113,8 +100,8 @@ module GHULS
|
|
113
100
|
end
|
114
101
|
|
115
102
|
# Gets the languages and their bytes for the user's organizations.
|
116
|
-
# @param username [String] See #
|
117
|
-
# @param github [Octokit::Client] See #
|
103
|
+
# @param username [String] See #get_user_and_check
|
104
|
+
# @param github [Octokit::Client] See #get_user_and_check
|
118
105
|
# @return [Hash] See #get_user_langs
|
119
106
|
def self.get_org_langs(username, github)
|
120
107
|
org_repos = get_org_repos(username, github)
|
@@ -170,12 +157,12 @@ module GHULS
|
|
170
157
|
end
|
171
158
|
|
172
159
|
# Performs the main analysis of the user's organizations.
|
173
|
-
# @param username [String] See #
|
174
|
-
# @param github [Octokit::Client] See #
|
160
|
+
# @param username [String] See #get_user_and_check
|
161
|
+
# @param github [Octokit::Client] See #get_user_and_check
|
175
162
|
# @return [Hash] See #get_language_percentages
|
176
|
-
# @return [Boolean] False if
|
163
|
+
# @return [Boolean] False if get_user_and_check returns false.
|
177
164
|
def self.analyze_orgs(username, github)
|
178
|
-
if
|
165
|
+
if get_user_and_check(username, github) != false
|
179
166
|
langs = get_org_langs(username, github)
|
180
167
|
return false if langs.empty?
|
181
168
|
get_language_percentages(langs)
|
@@ -185,12 +172,12 @@ module GHULS
|
|
185
172
|
end
|
186
173
|
|
187
174
|
# Performs the main analysis of the user.
|
188
|
-
# @param username [String] See #
|
189
|
-
# @param github [Octokit::Client] See #
|
175
|
+
# @param username [String] See #get_user_and_check
|
176
|
+
# @param github [Octokit::Client] See #get_user_and_check
|
190
177
|
# @return [Hash] See #analyze_orgs
|
191
178
|
# @return [Boolean] See #analyze_orgs
|
192
179
|
def self.analyze_user(username, github)
|
193
|
-
if
|
180
|
+
if get_user_and_check(username, github) != false
|
194
181
|
langs = get_user_langs(username, github)
|
195
182
|
return false if langs.empty?
|
196
183
|
get_language_percentages(langs)
|
@@ -206,7 +193,7 @@ module GHULS
|
|
206
193
|
# to find the maximum number of users, which may not be the best way to do
|
207
194
|
# it. However, none of the documented GitHub APIs show that we can get the
|
208
195
|
# total number of GitHub users.
|
209
|
-
# @param github [Octokit::Client] See #
|
196
|
+
# @param github [Octokit::Client] See #get_user_and_check
|
210
197
|
# @return [String] A random username.
|
211
198
|
def self.get_random_user(github)
|
212
199
|
source = open('https://github.com/search?utf8=%E2%9C%93&q=repos%3A%3E-1' \
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ghuls-lib
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eli Foster
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-11-
|
11
|
+
date: 2015-11-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: octokit
|