class TeamApi::TeamIndexer
Public Class Methods
new(data)
click to toggle source
# File lib/team_api/joiner.rb, line 29 def initialize(data) @team = (data || {}).dup end
Public Instance Methods
create_indexes()
click to toggle source
# File lib/team_api/joiner.rb, line 37 def create_indexes team_by_email team_by_github team_by_deprecated_name end
team()
click to toggle source
# File lib/team_api/joiner.rb, line 33 def team @team || {} end
team_by_deprecated_name()
click to toggle source
Returns an index of team member usernames keyed by deprecated names.
# File lib/team_api/joiner.rb, line 54 def team_by_deprecated_name @team_by_deprecated_name ||= team_index_by_field 'deprecated_name' end
team_by_email()
click to toggle source
Returns an index of team member usernames keyed by email address.
# File lib/team_api/joiner.rb, line 44 def team_by_email @team_by_email ||= team_index_by_field 'email' end
team_by_github()
click to toggle source
Returns an index of team member usernames keyed by GitHub username.
# File lib/team_api/joiner.rb, line 49 def team_by_github @team_by_github ||= team_index_by_field 'github' end
team_index_by_field(field)
click to toggle source
Returns an index of team member usernames keyed by a particular field.
# File lib/team_api/joiner.rb, line 59 def team_index_by_field(field) team_members.map do |member| value = member[field] value = member['private'][field] if value.nil? && member['private'] [value.downcase, member['name'].downcase] unless value.nil? end.compact.to_h end
team_member_from_reference(reference)
click to toggle source
# File lib/team_api/joiner.rb, line 84 def team_member_from_reference(reference) key = team_member_key reference if team['private'] team[key] || team['private'][key] else team[key] end end
team_member_is_private(reference)
click to toggle source
# File lib/team_api/joiner.rb, line 94 def team_member_is_private(reference) key = team_member_key(reference).downcase team['private'] && team['private'][key] end
team_member_key(ref)
click to toggle source
# File lib/team_api/joiner.rb, line 79 def team_member_key(ref) key = team_member_key_by_type(ref).downcase team_by_email[key] || team_by_github[key] || team_by_deprecated_name[key] || key end
team_member_key_by_type(ref)
click to toggle source
# File lib/team_api/joiner.rb, line 75 def team_member_key_by_type(ref) (ref.is_a? String) ? ref : (ref['id'] || ref['email'] || ref['github'] || ref['deprecated_name']) end
team_members()
click to toggle source
Returns the list of team members, with site.data['private'] members included.
# File lib/team_api/joiner.rb, line 69 def team_members @team_members ||= team.map { |key, value| value unless key == 'private' } .compact .concat((team['private'] || {}).values) end