Sha256: c4cad24127c848bf04feb6dbdaa974dc193d54ef7d1464882bb186d4d8f65be4

Contents?: true

Size: 964 Bytes

Versions: 3

Compression:

Stored size: 964 Bytes

Contents

require_relative "../leaderboard.rb"

module PlaylyfeClient
  module V2
    class PlayersLeaderboard < PlaylyfeClient::V2::Leaderboard

      private 
        
        def fill_positions(data)  
          data.each do |pos|
            rank=(pos[:rank] || pos["rank"]).to_i - 1
            score=pos[:score] || pos["score"] || 0
            entity= pos[:player] || pos["player"]

            player=game.players.find(entity[:id] || entity["id"])

            #all players should be listed in game, so if nothing is found raise exception
            if player.nil?
              fail PlaylyfeClient::LeaderboardError.new("{\"error\": \"Player not found\", \"error_description\": \"Player '#{entity[:id] || entity["id"]}' from '#{self.name}'[#{self.id}] leaderboard was not found between game.players!\"}")
            end 
      
            @positions[rank] = {entity: player, score: score}
          end  

          @positions
        end  

    end
  end
end  

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
playlyfe_client-1.0.5 lib/playlyfe_client/v2/leaderboard/players_leaderboard.rb
playlyfe_client-1.0.4 lib/playlyfe_client/v2/leaderboard/players_leaderboard.rb
playlyfe_client-1.0.2 lib/playlyfe_client/v2/leaderboard/players_leaderboard.rb