class RubyGg::Summoner

Attributes

profile_url[R]
rank_url[R]

Public Class Methods

new(api_key, region) click to toggle source
# File lib/ruby_gg/summoner.rb, line 9
def initialize(api_key, region)
    @api_key = api_key
    @region = region
    @base_url = "https://#{@region}.api.riotgames.com"
    @rank_url = '/lol/league/v3/positions/by-summoner/'
    @profile_url = '/lol/summoner/v3/summoners/'
    @top_champions = '/lol/champion-mastery/v3/champion-masteries/by-summoner/'
    @leagueVer = HTTParty.get('https://ddragon.leagueoflegends.com/api/versions.json').parsed_response[0]
end

Public Instance Methods

champion_mastery(id, count = 0) click to toggle source
# File lib/ruby_gg/summoner.rb, line 47
def champion_mastery(id, count = 0)
    mastery = HTTParty.get("#{@base_url}#{@top_champions}#{id.to_i}?api_key=#{@api_key}").parsed_response
    topChamps = []
    if not count.to_i <= 0 or mastery.size == count.to_i
        (0...count.to_i).each {|x| topChamps.push(mastery[x])}
        return topChamps
    else
        return mastery
    end
    
end
find(name) click to toggle source
# File lib/ruby_gg/summoner.rb, line 20
def find(name)
    userPayload = HTTParty.get(URI.encode("#{@base_url}#{@profile_url}by-name/#{name}?api_key=#{@api_key}")).parsed_response
    user = {}
    userPayload.each{|k,v| user[k.to_sym] = v}
    return user
end
get_flex(id) click to toggle source
# File lib/ruby_gg/summoner.rb, line 71
def get_flex(id)
    rank_payload = HTTParty.get("#{@base_url}#{@rank_url}#{id.to_i}?api_key=#{@api_key}").parsed_response
    flex = {}
    @flex = nil
    rank_payload.each{|x| @flex = rank_payload.index(x) if x['queueType'].eql?'RANKED_FLEX_SR'}
    if not @flex.nil?
        (rank_payload[@flex]).each {|k,v| flex[k.to_sym] = v if not "queueType".eql?k or "playerOrTeamName".eql?k or "playerOrTeamId".eql?k}
    end
    return flex
end
get_solo(id) click to toggle source
# File lib/ruby_gg/summoner.rb, line 60
def get_solo(id)
    rankPayload = HTTParty.get("#{@base_url}#{@rank_url}#{id.to_i}?api_key=#{@api_key}").parsed_response
    solo = {}
    @solo = nil
    rankPayload.each{|x| @solo = rankPayload.index(x) if x['queueType'].eql?'RANKED_SOLO_5x5'}
    if not @solo.nil?
        (rankPayload[@solo]).each {|k,v| solo[k.to_sym] = v if not "queueType".eql?k or "playerOrTeamName".eql?k or "playerOrTeamId".eql?k}
    end
    return solo
end
get_tt(id) click to toggle source
# File lib/ruby_gg/summoner.rb, line 82
def get_tt(id)
    rankPayload = HTTParty.get("#{@base_url}#{@rank_url}#{id.to_i}?api_key=#{@api_key}").parsed_response
    tt = {}
    @tt = nil
    rankPayload.each{|x| @tt = rankPayload.index(x) if x['queueType'].eql?'RANKED_TT_SR'}
    if not @tt.nil?
        (rankPayload[@tt]).each {|k,v| tt[k.to_sym] = v if not "queueType".eql?k or "playerOrTeamName".eql?k or "playerOrTeamId".eql?k}
    end
    return tt
end
icon(iconId) click to toggle source
# File lib/ruby_gg/summoner.rb, line 42
def icon(iconId)
    icon = "https://ddragon.leagueoflegends.com/cdn/#{@leagueVer}/img/profileicon/#{iconId.to_i}.png"
    return icon
end
rank_info(id) click to toggle source
# File lib/ruby_gg/summoner.rb, line 27
def rank_info(id)
    rankPayload = HTTParty.get("#{@base_url}#{@rank_url}#{id.to_i}?api_key=#{@api_key}").parsed_response
    rankInfo = {:solo => {}, :flex => {}, :tt => {}}
    rankPayload.each {|x|
        if x['queueType'].eql?"RANKED_SOLO_5x5"
            x.each {|k,v|rankInfo[:solo][k.to_sym] = v}
        elsif x['queueType'].eql? "RANKED_FLEX_SR"
            x.each {|k,v|rankInfo[:flex][k.to_sym] = v}
            
        elsif x['queueType'].eql? "RANKED_TT_SR"
            x.each {|k,v|rankInfo[:tt][k.to_sym] = v}
        end }
    return rankInfo
end