class StravaTT::Leaderboard

Attributes

store[R]

Public Class Methods

new() click to toggle source
# File lib/stravatt/leaderboard.rb, line 5
def initialize
  @store = {}
end

Public Instance Methods

add(user_id, effort) click to toggle source
# File lib/stravatt/leaderboard.rb, line 9
def add user_id, effort
  store[user_id] = effort
end
sort() click to toggle source
# File lib/stravatt/leaderboard.rb, line 13
def sort
  results = store.sort do |(a_id, a_effort), (b_id, b_effort)|
    return a unless b_effort
    return b unless a_effort

    a_effort.moving_time <=> b_effort.moving_time
  end

  results.map do |(id, effort)|
    {
      user_id: id,
      effort: effort
    }
  end
end