class Demacia::Summoner

Attributes

id[RW]
level[RW]
masteries[RW]
name[RW]
profile_icon[RW]
region[RW]
runes[RW]

Public Class Methods

new(query_string, region) click to toggle source

Class constructor, gets the basic Summoner info from riot api. Does not auto load the masteries nor runes Params:

  • query_string

    The full query string forged from name, entry point and method

  • region

    The region in wich the summoner resides

# File lib/demacia/Summoner.rb, line 18
def initialize(query_string, region)
        answer_string = open(query_string).read
        parsed_answer = JSON.parse(answer_string)
        @level = parsed_answer["summonerLevel"]
        @profile_icon = parsed_answer["profileIconId"]
        @name = parsed_answer["name"]
        @id = parsed_answer["id"]
        @region = region
end

Public Instance Methods

last_ten_games(key) click to toggle source
# File lib/demacia/Summoner.rb, line 76
def last_ten_games(key)
        answer_string = open("http://prod.api.pvp.net/api/lol/" + @region +"/v1.1/game/by-summoner/"+@id.to_s+"/recent?api_key="+key).read
        parsed_answer = JSON.parse(answer_string)
        games = Array.new
        parsed_answer["games"].each do |game|
                game_buffer = Game.new(game["gameId"],game["championId"],game["createDate"], game["fellowPlayers"], game["gameMode"], game["gameType"], game["invalid"], game["level"], game["mapId"], game["spell1"], game["spell2"], game["statistics"], game["subType"], game["teamId"])
                games << game_buffer
        end
        games
end
load_masteries!(key) click to toggle source

Loads masteries based on an api key Params:

  • key

    the api key

# File lib/demacia/Summoner.rb, line 31
def load_masteries!(key)
        @masteries = Array.new
        begin
                answer_string = open("http://prod.api.pvp.net/api/lol/" + @region +"/v1.1/summoner/"+@id.to_s+"/masteries?api_key="+key).read
                parsed_answer = JSON.parse(answer_string)
                parsed_answer["pages"].each do |page| 
                        talents_buffer = Array.new
                        page["talents"].each do |talent|
                                talent_buffer = Demacia::Talent.new(talent["id"], talent["name"], talent["rank"])
                                talents_buffer << talent_buffer
                        end
                        page_buffer = Demacia::Page.new(page["name"], page["current"], talents_buffer)
                        @masteries << page_buffer
                end
        rescue Exception => e
                puts "An error occured when retreiving the summoner's masteries : "
                puts e.message
        end
end
load_runes!(key) click to toggle source

Loads runes based on an api key. The runes are sorted by their slot id Params:

  • key

    the full query string forged from name, entry point and method

# File lib/demacia/Summoner.rb, line 54
def load_runes!(key)
        @runes = Array.new
        begin
                answer_string = open("http://prod.api.pvp.net/api/lol/" + @region +"/v1.1/summoner/"+@id.to_s+"/runes?api_key="+key).read
                parsed_answer = JSON.parse(answer_string)
                parsed_answer["pages"].each do |page|
                        runes_buffer = Array.new
                        page["slots"].each do |slot|
                                rune_buffer = slot["rune"]
                                rune_out = Rune.new(rune_buffer["id"],rune_buffer["description"],rune_buffer["name"],rune_buffer["tier"], slot["runeSlotId"])
                                runes_buffer << rune_out
                        end
                        runes_buffer.sort { |a, b| a.slot_id <=> b.slot_id }
                        tome_buffer = Tome.new(page["id"], page["name"], page["current"], runes_buffer)
                        @runes << tome_buffer
                end
        rescue Exception => e
                puts "An error occured when retreiving the summoner's runes : "
                puts e.message
        end
end
to_s() click to toggle source

Prints the summoner info to the console in a friendly way

# File lib/demacia/Summoner.rb, line 88
def to_s
        return_string = "\t\tSummoner\n"+
                                     "\nName:\t\t"+@name+
                                        "\nID:\t\t"+@id.to_s+
                                        "\nLevel:\t\t"+@level.to_s+
                                        "\nIcon ID:\t"+@profile_icon.to_s
        if masteries.nil? || masteries.empty?
                return_string << "\nNo masteries"
        else
                masteries.each do |page|
                        return_string << "\tMastery Page\n\t"+ page.to_s
                end
        end
end