Class: RubyGg::Summoner

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby_gg/summoner.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api_key, region) ⇒ Summoner

Returns a new instance of Summoner.



9
10
11
12
13
14
15
16
17
# 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

Instance Attribute Details

#profile_urlObject (readonly)

Returns the value of attribute profile_url.



7
8
9
# File 'lib/ruby_gg/summoner.rb', line 7

def profile_url
  @profile_url
end

#rank_urlObject (readonly)

Returns the value of attribute rank_url.



6
7
8
# File 'lib/ruby_gg/summoner.rb', line 6

def rank_url
  @rank_url
end

Instance Method Details

#champion_mastery(id, count = 0) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
# File 'lib/ruby_gg/summoner.rb', line 34

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) ⇒ Object



19
20
21
22
23
24
25
26
27
# File 'lib/ruby_gg/summoner.rb', line 19

def find(name)
    userPayload = HTTParty.get(URI.encode("#{@base_url}#{@profile_url}by-name/#{name}?api_key=#{@api_key}")).parsed_response
    summonerInfo = {}
    summonerInfo[:user] = get_user(userPayload['id'])
    summonerInfo[:solo] = get_solo(userPayload['id'])
    summonerInfo[:flex] = get_flex(userPayload['id'])
    summonerInfo[:tt] = get_tt(userPayload['id'])
    return summonerInfo
end

#get_flex(id) ⇒ Object



64
65
66
67
68
69
70
71
72
73
# File 'lib/ruby_gg/summoner.rb', line 64

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) ⇒ Object



53
54
55
56
57
58
59
60
61
62
# File 'lib/ruby_gg/summoner.rb', line 53

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) ⇒ Object



75
76
77
78
79
80
81
82
83
84
# File 'lib/ruby_gg/summoner.rb', line 75

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

#get_user(id) ⇒ Object



46
47
48
49
50
51
# File 'lib/ruby_gg/summoner.rb', line 46

def get_user(id)
    userPayload = HTTParty.get("#{@base_url}#{@profile_url}#{id.to_i}?api_key=#{@api_key}").parsed_response
    user = {}
    userPayload.each{|k,v| user[k.to_sym] = v}
    return user
end

#icon(iconId) ⇒ Object



29
30
31
32
# File 'lib/ruby_gg/summoner.rb', line 29

def icon(iconId)
    icon = "https://ddragon.leagueoflegends.com/cdn/#{@leagueVer}/img/profileicon/#{iconId.to_i}.png"
    return icon
end