team_api 0.0.7 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/team_api/joiner.rb +36 -13
- data/lib/team_api/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b082409d55f76bea8898d5a6c1de80965ba7c131
|
4
|
+
data.tar.gz: aba420884aa800ce9b6f081c7cb19f52d7322a02
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c65b65e63296bc6df730f2fca3b79c9a1223170d73ae86d53d587556a6c195e891b761cba248ed37e1e2927170877044e53eac5cd1ff735ed523689d9fb4e439
|
7
|
+
data.tar.gz: 9992a74f2887388b34a7c5742a358b138e6bb77a7d01326c931ca73f12c2b90bf43305ddaf73cb57be6f5a3e6833c80a51f217525341eb85e456d9b682e7acec
|
data/lib/team_api/joiner.rb
CHANGED
@@ -17,8 +17,8 @@ module TeamApi
|
|
17
17
|
def self.join_data(site)
|
18
18
|
impl = JoinerImpl.new site
|
19
19
|
site.data.merge! impl.collection_data
|
20
|
-
impl.promote_or_remove_data
|
21
20
|
impl.init_team_data site.data['team']
|
21
|
+
impl.promote_or_remove_data
|
22
22
|
impl.join_project_data
|
23
23
|
Api.add_self_links site
|
24
24
|
impl.join_snippet_data
|
@@ -27,7 +27,7 @@ module TeamApi
|
|
27
27
|
|
28
28
|
class TeamIndexer
|
29
29
|
def initialize(data)
|
30
|
-
@team = data
|
30
|
+
@team = (data || {}).dup
|
31
31
|
end
|
32
32
|
|
33
33
|
def team
|
@@ -66,13 +66,27 @@ module TeamApi
|
|
66
66
|
.concat((team['private'] || {}).values)
|
67
67
|
end
|
68
68
|
|
69
|
-
def
|
69
|
+
def team_member_key_by_type(ref)
|
70
70
|
(ref.is_a? String) ? ref : (ref['id'] || ref['email'] || ref['github'])
|
71
71
|
end
|
72
72
|
|
73
|
+
def team_member_key(ref)
|
74
|
+
key = team_member_key_by_type(ref).downcase
|
75
|
+
team_by_email[key] || team_by_github[key] || key
|
76
|
+
end
|
77
|
+
|
73
78
|
def team_member_from_reference(reference)
|
79
|
+
key = team_member_key reference
|
80
|
+
if team['private']
|
81
|
+
team[key] || team['private'][key]
|
82
|
+
else
|
83
|
+
team[key]
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
def team_member_is_private(reference)
|
74
88
|
key = team_member_key(reference).downcase
|
75
|
-
team[
|
89
|
+
team['private'] && team['private'][key]
|
76
90
|
end
|
77
91
|
end
|
78
92
|
|
@@ -141,6 +155,23 @@ module TeamApi
|
|
141
155
|
data['errors'][name] = errors
|
142
156
|
end
|
143
157
|
|
158
|
+
def should_exclude_member(reference)
|
159
|
+
@public_mode && team_indexer.team_member_is_private(reference)
|
160
|
+
end
|
161
|
+
|
162
|
+
def get_canonical_reference(reference, errors)
|
163
|
+
member = team_indexer.team_member_from_reference reference
|
164
|
+
if member.nil?
|
165
|
+
errors << 'Unknown Team Member: ' +
|
166
|
+
team_indexer.team_member_key(reference)
|
167
|
+
nil
|
168
|
+
elsif should_exclude_member(reference)
|
169
|
+
nil
|
170
|
+
else
|
171
|
+
member['name'].downcase
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
144
175
|
# Replaces each member of team_list with a key into the team hash.
|
145
176
|
# Values can be:
|
146
177
|
# - Strings that are already team hash keys
|
@@ -150,15 +181,7 @@ module TeamApi
|
|
150
181
|
# - Hashes that contain a 'github' property
|
151
182
|
def join_team_list(team_list, errors)
|
152
183
|
(team_list || []).map! do |reference|
|
153
|
-
|
154
|
-
|
155
|
-
if member.nil?
|
156
|
-
errors << 'Unknown Team Member: ' +
|
157
|
-
team_indexer.team_member_key(reference)
|
158
|
-
nil
|
159
|
-
else
|
160
|
-
member['name'].downcase
|
161
|
-
end
|
184
|
+
get_canonical_reference reference, errors
|
162
185
|
end.compact! || []
|
163
186
|
end
|
164
187
|
|
data/lib/team_api/version.rb
CHANGED