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



47
48
49
50
51
52
53
54
55
56
57
# 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) ⇒ Object



20
21
22
23
24
25
# 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) ⇒ Object



71
72
73
74
75
76
77
78
79
80
# 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) ⇒ Object



60
61
62
63
64
65
66
67
68
69
# 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) ⇒ Object



82
83
84
85
86
87
88
89
90
91
# 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) ⇒ Object



42
43
44
45
# 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) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
# 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