updated to new api version, documented

This commit is contained in:
danijoo
2013-12-30 22:19:15 +01:00
parent bdddd98a20
commit 920da14ec0
2 changed files with 37 additions and 9 deletions

View File

@@ -1,11 +1,15 @@
# Class to represent a league
# @attr [String] name name of the league
# @attr [String] queue queue Type (can be: RANKED_SOLO_5x5, RANKED_TEAM_3x3, RANKED_TEAM_5x5)
# @attr [String] tier tier of the requestet summoner (can be: CHALLENGER, DIAMOND, PLATINUM, GOLD, SILVER, BRONZE)
# @attr [Array<LeagueItem>] entries
class League class League
attr_accessor :entries, :name, :queue, :tier, :timestamp attr_accessor :entries, :name, :queue, :tier
def initialize(data) def initialize(data)
@name = data['name'] @name = data['name']
@queue = data['queue'] @queue = data['queue']
@tier = data['tier'] @tier = data['tier']
@timestamp = data['timestamp']
@entries = [] @entries = []
data['entries'].each do |entry| data['entries'].each do |entry|
@entries << LeagueItem.new(entry) @entries << LeagueItem.new(entry)
@@ -13,29 +17,48 @@ class League
end end
end end
# One entry of a league
# @attr [Boolean] isFreshBlood determines if summoner is new in the league
# @attr [Boolean] isHotStreak hotStreak = 3 games won in a row
# @attr [Boolean] isInactive true if summoner is inactive
# @attr [Boolean] isVetern true if veteran
# @attr [Fixnum] lastPlayed timestamp of last played game
# @attr [String] leagueName name of the league
# @attr [Fixnum] leaguePoints leaguePoints
# @attr [MiniSeries, nil] nil if player has no miniseries, a miniseries object if he is in one
# @attr [String] playerOrTeamId id of the player or team as a string
# @attr [String] playerOrTeamName name of the player/team
# @attr [String] queueType type of the queue
# @attr [String] rank rank (can be: I, II, III, IV, V)
# @attr [String] tier tier (can be: CHALLENGER, DIAMOND, PLATINUM, GOLD, SILVER, BRONZE)
# @attr [Fixnum] wins number of won matches in given queue
class LeagueItem class LeagueItem
attr_accessor :isFreshBlood, :isHotStreak, :isActive, :isVeteran, :lastPlayed, :leagueName, :leaguePoints, :losses, :miniSeries, :playerOrTeamId, :playerOrTeamName, :queueType, :rank, :tier, :timeUntilDecay, :wins attr_accessor :isFreshBlood, :isHotStreak, :isInactive, :isVeteran, :lastPlayed, :leagueName, :leaguePoints, :miniSeries, :playerOrTeamId, :playerOrTeamName, :queueType, :rank, :tier, :wins
def initialize(data) def initialize(data)
@isFreshBlood=data['isFreshBlood'] @isFreshBlood=data['isFreshBlood']
@isHotStreak=data['isHotStreak'] @isHotStreak=data['isHotStreak']
@isActive=data['isActive'] @isInactive=data['isInactive']
@isVeteran=data['isVeteran'] @isVeteran=data['isVeteran']
@lastPlayed=data['lastPlayed'] @lastPlayed=data['lastPlayed']
@leagueName=data['leageuName'] @leagueName=data['leagueName']
@leaguePoints=data['leaguePoints'] @leaguePoints=data['leaguePoints']
@losses=data['losses']
@miniSeries= MiniSeries.new(data['miniSeries']) if data.has_key? 'miniSeries' @miniSeries= MiniSeries.new(data['miniSeries']) if data.has_key? 'miniSeries'
@playerOrTeamId=data['playerOrTeamId'] @playerOrTeamId=data['playerOrTeamId']
@playerOrTeamName=data['playerOrTeamName'] @playerOrTeamName=data['playerOrTeamName']
@queueType=data['queueType'] @queueType=data['queueType']
@rank=data['rank'] @rank=data['rank']
@tier=data['tier'] @tier=data['tier']
@timeUntilDecay=data['timeUntilDecay']
@wins=data['wins'] @wins=data['wins']
end end
end end
# Class to represent a MiniSeries (Promotion games)
# @attr [Fixnum] losses number of lost games of the series
# @attr [Fixnum] wins number of won games of the series
# @attr [Fixnum] target number of required wins to win the series
# @attr [Fixnum] timeLeftToPlayMillis time left to complete the series
# @attr [String] win/loose history as a string. Each character shows a (W)in, (L)oss or (N)ot played
class MiniSeries class MiniSeries
attr_accessor :losses, :wins, :target, :progress, :timeLeftToPlayMillis attr_accessor :losses, :wins, :target, :progress, :timeLeftToPlayMillis
def initialize(data) def initialize(data)
@@ -43,6 +66,6 @@ class MiniSeries
@wins = data['wins'] @wins = data['wins']
@target = data['target'] @target = data['target']
@progress = data['progress'] @progress = data['progress']
@timeLeftToPlayMillis = data['timeLeftToPlayMillies'] @timeLeftToPlayMillis = data['timeLeftToPlayMillis']
end end
end end

View File

@@ -2,11 +2,16 @@ require 'sightstone/modules/sightstone_base_module'
require 'sightstone/summoner' require 'sightstone/summoner'
require 'sightstone/league' require 'sightstone/league'
# module to provide calls to the league api
class LeagueModule < SightstoneBaseModule class LeagueModule < SightstoneBaseModule
def initialize(sightstone) def initialize(sightstone)
@sightstone = sightstone @sightstone = sightstone
end end
# Provides league information of a summoner
# @param [Summoner, Integer] summoner
# @param optional [Hash] optional arguments: :region => replaces default region
# @returns [Array<League>] an array of all leagues the summoner and his teams are in
def league(summoner, optional={}) def league(summoner, optional={})
region = optional[:region] || @sightstone.region region = optional[:region] || @sightstone.region
id = if summoner.is_a? Summoner id = if summoner.is_a? Summoner
@@ -15,7 +20,7 @@ class LeagueModule < SightstoneBaseModule
summoner summoner
end end
uri = "https://prod.api.pvp.net/api/#{region}/v2.1/league/by-summoner/#{id}" uri = "https://prod.api.pvp.net/api/lol/#{region}/v2.2/league/by-summoner/#{id}"
response = _get_api_response(uri) response = _get_api_response(uri)
_parse_response(response) { |resp| _parse_response(response) { |resp|
data = JSON.parse(resp) data = JSON.parse(resp)