module SportsRank
SportsRank — pick the most prominent match from a filtered list. Public: pick_match, status_score, tier_score Tests: test/lib/sports_rank_test.rb
Constants
- REGION_BONUS
- STATUS_SCORES
- TIER_PATTERNS
Public Instance Methods
Source
# File lib/sports_rank.rb, line 27 def pick_match(matches, region_code:) Array(matches).max_by { |match| score(match, region_code: region_code) } end
Source
# File lib/sports_rank.rb, line 47 def region_bonus(match, region_code) SportsRegion.match_region?(match, region_code) ? REGION_BONUS : 0 end
Source
# File lib/sports_rank.rb, line 31 def score(match, region_code:) status_score(match) + tier_score(match) + region_bonus(match, region_code) end
Source
# File lib/sports_rank.rb, line 35 def status_score(match) STATUS_SCORES.fetch(match["status"].to_s.downcase, 0) end
Source
# File lib/sports_rank.rb, line 39 def tier_score(match) text = match["competition"].to_s TIER_PATTERNS.each do |pattern, points| return points if text.match?(pattern) end 0 end