danijoo/Sightstone

View on GitHub
lib/sightstone/ranked_stats.rb

Summary

Maintainability
A
0 mins
Test Coverage
module Sightstone
# Ranked stats of a summoner
# @attr [Fixnum] modifyDate date of last modification
# @attr [Fixnum] summonerId id of the summoner
# @attr [Hash<Fixnum, Hash<String, Fixnum>>] champions Statisitc for each champion in a Hash. Each key stands for a champions id (0 is sum of all champs) and returns a Hash<stat, stat_value>.
class RankedStats
  attr_accessor :champions, :modifyDate, :summonerId
  
  def initialize(data)
    @summonerId = data['summonerId']
    @modifyDate = data['modifyDate']
    @champions = {}
    @names = {}
    
    data['champions'].each do |champ|
      id = champ['id']
      if(!@champions.has_key?(id))
        @champions[id] = Hash.new
        @names[champ['name']] = id
      end 

      stat_keys = champ['stats'].keys
      stat_keys.each do |key|
        @champions[id][key] = champ['stats'][key]
      end
    end

    # returns the statistics of a champion by its normailized name
    # @param name [String] normalized name or Combined
    # @return [Hash<String, Fixnum>] A Hash mapping statistic names to their values
    def get_statistics_by_name(name)
      if(@names.has_key? name)
        @champions[@names[name]]
      end
    end
  end
end
end