class TeamApi::NameCanonicalizer

Public Class Methods

sort_by_last_name(team) click to toggle source

Sorts an array of team member data hashes based on the team members' last names.

team

An array of team member data hashes

# File lib/team_api/name_canonicalizer.rb, line 8
def self.sort_by_last_name(team)
  team.sort_by { |member| comparable_name member }
end
sort_by_last_name!(team) click to toggle source
# File lib/team_api/name_canonicalizer.rb, line 12
def self.sort_by_last_name!(team)
  team.sort_by! { |member| comparable_name member }
end

Private Class Methods

comparable_name(person) click to toggle source
# File lib/team_api/name_canonicalizer.rb, line 16
def self.comparable_name(person)
  if person['last_name']
    [person['last_name'].downcase, person['first_name'].downcase]
  else
    # Trim off title suffix, if any.
    full_name = person['full_name'].downcase.split(',')[0]
    last_name = full_name.split.last
    [last_name, full_name]
  end
end