sightstone 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 587af5785d237527f2a8e316356ce84b8c39e544
4
+ data.tar.gz: 3a2cb00c736b6deb110b2f395a0d737e69e689fe
5
+ SHA512:
6
+ metadata.gz: e1e208bec4e4c1621cab7a4715ce688e49070366186e7a8d08b7d92039e153643f2ddcbb25b79a8777eed6c8961790531f6516a4ecb44fed4f8938e6047f5008
7
+ data.tar.gz: b4f3c49ea4792c541c5531e576ecc3128b47fd6c7ba19dd7b84f20ad294a002fd011d0f35e565f402f5801043531850795f10b1da80577d0e692abf00dcd98ec
data/lib/sightstone.rb ADDED
@@ -0,0 +1,32 @@
1
+ require 'rest_client'
2
+ require 'JSON'
3
+ require 'sightstone/modules/champion_module'
4
+ require 'sightstone/modules/summoner_module'
5
+ require 'sightstone/modules/game_module'
6
+ require 'sightstone/modules/league_module'
7
+ require 'sightstone/modules/stats_module'
8
+ require 'sightstone/modules/team_module'
9
+
10
+ class Sightstone
11
+ attr_accessor :region, :api_key
12
+ attr_accessor :summoner, :champion, :game, :league, :stats, :team
13
+
14
+ def initialize(api_key, region)
15
+ @api_key = api_key
16
+ @region = region
17
+
18
+ @summoner = SummonerModule.new(self)
19
+ @champion = ChampionModule.new(self)
20
+ @game = GameModule.new(self)
21
+ @league = LeagueModule.new(self)
22
+ @stats = StatsModule.new(self)
23
+ @team = TeamModule.new(self)
24
+ end
25
+ end
26
+
27
+ # Error classes
28
+ class SightstoneApiException < Exception; end
29
+
30
+ class SummonerNotFoundException < SightstoneApiException; end
31
+
32
+ class SightstoneConnectionException < SightstoneApiException; end
@@ -0,0 +1,18 @@
1
+ class Champion
2
+ attr_accessor :active, :attackRank, :botEnabled, :botMmEnabled
3
+ attr_accessor :defenseRank, :difficultyRank, :freeToPlay, :id, :magicRank, :name, :rankedPlayEnabled
4
+
5
+ def initialize(data)
6
+ @active = data['active']
7
+ @attackRank = data['attackRank']
8
+ @botEnabled = data['botEnabled']
9
+ @defenseRank = data['defenseRank']
10
+ @difficultyRank = data['difficultyRank']
11
+ @freeToPlay = data['freeToPlay']
12
+ @id = data['id']
13
+ @magicRank = data['magicRank']
14
+ @name = data['name']
15
+ @rankedPlayEnabled = data['rankedPlayEnabled']
16
+ end
17
+
18
+ end
@@ -0,0 +1,48 @@
1
+ class League
2
+ attr_accessor :entries, :name, :queue, :tier, :timestamp
3
+
4
+ def initialize(data)
5
+ @name = data['name']
6
+ @queue = data['queue']
7
+ @tier = data['tier']
8
+ @timestamp = data['timestamp']
9
+ @entries = []
10
+ data['entries'].each do |entry|
11
+ @entries << LeagueItem.new(entry)
12
+ end
13
+ end
14
+ end
15
+
16
+ class LeagueItem
17
+ attr_accessor :isFreshBlood, :isHotStreak, :isActive, :isVeteran, :lastPlayed, :leagueName, :leaguePoints, :losses, :miniSeries, :playerOrTeamId, :playerOrTeamName, :queueType, :rank, :tier, :timeUntilDecay, :wins
18
+
19
+ def initialize(data)
20
+ @isFreshBlood=data['isFreshBlood']
21
+ @isHotStreak=data['isHotStreak']
22
+ @isActive=data['isActive']
23
+ @isVeteran=data['isVeteran']
24
+ @lastPlayed=data['lastPlayed']
25
+ @leagueName=data['leageuName']
26
+ @leaguePoints=data['leaguePoints']
27
+ @losses=data['losses']
28
+ @miniSeries= MiniSeries.new(data['miniSeries']) if data.has_key? 'miniSeries'
29
+ @playerOrTeamId=data['playerOrTeamId']
30
+ @playerOrTeamName=data['playerOrTeamName']
31
+ @queueType=data['queueType']
32
+ @rank=data['rank']
33
+ @tier=data['tier']
34
+ @timeUntilDecay=data['timeUntilDecay']
35
+ @wins=data['wins']
36
+ end
37
+ end
38
+
39
+ class MiniSeries
40
+ attr_accessor :losses, :wins, :target, :progress, :timeLeftToPlayMillis
41
+ def initialize(data)
42
+ @losses = data['losses']
43
+ @wins = data['wins']
44
+ @target = data['target']
45
+ @progress = data['progress']
46
+ @timeLeftToPlayMillis = data['timeLeftToPlayMillies']
47
+ end
48
+ end
@@ -0,0 +1,36 @@
1
+ class MasteryBook
2
+ attr_accessor :pages, :summonerId
3
+
4
+ def initialize(data)
5
+ @summonerId = data['summonerId']
6
+ @pages = []
7
+ data['pages'].each do |page|
8
+ @pages << MasteryPage.new(page)
9
+ end
10
+ end
11
+ end
12
+
13
+ class MasteryPage
14
+ attr_accessor :id, :talents, :name, :current
15
+
16
+ def initialize(data)
17
+ @id = data['id']
18
+ @name = data['name']
19
+ @current = data['current']
20
+ @talents = []
21
+ data['talents'].each do |talent|
22
+ @talents << Talent.new(talent)
23
+ end
24
+ end
25
+
26
+ end
27
+
28
+ class Talent
29
+ attr_accessor :id,:rank, :name
30
+
31
+ def initialize(data)
32
+ @id = data['id']
33
+ @name = data['name']
34
+ @rank = data['rank']
35
+ end
36
+ end
@@ -0,0 +1,51 @@
1
+ require 'sightstone/stat'
2
+
3
+ class MatchHistory
4
+ attr_accessor :games, :summonerId
5
+
6
+ def initialize(data)
7
+ @summonerId = data['summonerId']
8
+ @games = []
9
+ data['games'].each do |game|
10
+ games << Game.new(game)
11
+ end
12
+ end
13
+ end
14
+
15
+ class Game
16
+ attr_accessor :championId, :createDate, :createDateString, :fellowPlayers, :gameId, :gameMode, :gameType, :invalid, :level, :mapId, :spell1, :spell2, :statistics, :subType, :teamId
17
+
18
+ def initialize(data)
19
+ @championId=data['championId']
20
+ @createDate=data['createDate']
21
+ @createDateString=data['createDateString']
22
+ @fellowPlayers=[]
23
+ data['fellowPlayers'].each do |player|
24
+ @fellowPlayers << Player.new(player)
25
+ end
26
+ @gameId=data['gameId']
27
+ @gameMode=data['gameMode']
28
+ @gameType=data['gameType']
29
+ @invalid=data['invalid']
30
+ @level=data['level']
31
+ @mapId=data['mapId']
32
+ @spell1=data['spell1]']
33
+ @spell2=data['spell2']
34
+ @statistics = []
35
+ data['statistics'].each do |stat|
36
+ @statistics << Stat.new(stat)
37
+ end
38
+ @subType=data['subType']
39
+ @teamId=data['teamId']
40
+ end
41
+ end
42
+
43
+ class Player
44
+ attr_accessor :championId, :summonerId, :teamId
45
+
46
+ def initialize(data)
47
+ @championId = data['championId']
48
+ @summonerId = data['summonerId']
49
+ @teamId = data['teamId']
50
+ end
51
+ end
@@ -0,0 +1,47 @@
1
+ require 'sightstone/champion'
2
+
3
+ class ChampionModule
4
+
5
+ def initialize(sightstone)
6
+ @sightstone = sightstone
7
+ end
8
+
9
+ def champions(free_to_play=false)
10
+ uri = "https://prod.api.pvp.net/api/lol/#{@sightstone.region}/v1.1/champion"
11
+ response = _get_api_response(uri, {'freeToPlay' => free_to_play})
12
+ puts response
13
+
14
+ _parse_response(response) { |resp|
15
+ data = JSON.parse(resp)
16
+ champions = []
17
+ data['champions'].each do |champ|
18
+ champions << Champion.new(champ)
19
+ end
20
+ return champions
21
+ }
22
+ end
23
+
24
+ private
25
+ def _get_api_response(uri, headers={})
26
+ params = {'api_key' => @sightstone.api_key}.merge headers
27
+ RestClient.get(uri, headers={:params => params}) {|response, request, result| response }
28
+ rescue SocketError => e
29
+ nil
30
+
31
+ end
32
+
33
+ def _parse_response(response, &block)
34
+ response_code = if response.nil?
35
+ 500
36
+ else
37
+ response.code
38
+ end
39
+
40
+ if response_code == 200
41
+ block.call(response.body)
42
+ elsif response_code == 500
43
+ raise Sightstone::SightstoneConnectionException
44
+ end
45
+ end
46
+
47
+ end
@@ -0,0 +1,50 @@
1
+ require 'sightstone/summoner'
2
+ require 'sightstone/match_history'
3
+
4
+ class GameModule
5
+
6
+ def initialize(sightstone)
7
+ @sightstone = sightstone
8
+ end
9
+
10
+ def recent(summoner)
11
+ id = if summoner.is_a? Summoner
12
+ summoner.id
13
+ else
14
+ summoner
15
+ end
16
+ uri = "http://prod.api.pvp.net/api/lol/#{@sightstone.region}/v1.1/game/by-summoner/#{id}/recent"
17
+
18
+ response = _get_api_response(uri)
19
+ _parse_response(response) { |resp|
20
+ data = JSON.parse(resp)
21
+ return MatchHistory.new(data)
22
+ }
23
+ end
24
+
25
+ private
26
+
27
+ def _get_api_response(uri)
28
+ params = {'api_key' => @sightstone.api_key}
29
+ RestClient.get(uri, headers={:params => params}) {|response, request, result| response }
30
+ rescue SocketError => e
31
+ nil
32
+
33
+ end
34
+
35
+ def _parse_response(response, &block)
36
+ response_code = if response.nil?
37
+ 500
38
+ else
39
+ response.code
40
+ end
41
+
42
+ if response_code == 200
43
+ block.call(response.body)
44
+ elsif response_code == 404
45
+ raise Sightstone::SummonerNotFoundException
46
+ elsif response_code == 500
47
+ raise Sightstone::SightstoneConnectionException
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,53 @@
1
+ require 'sightstone/summoner'
2
+ require 'sightstone/league'
3
+
4
+ class LeagueModule
5
+ def initialize(sightstone)
6
+ @sightstone = sightstone
7
+ end
8
+
9
+ def league(summoner)
10
+ id = if summoner.is_a? Summoner
11
+ summoner.id
12
+ else
13
+ summoner
14
+ end
15
+
16
+ uri = "http://prod.api.pvp.net/api/#{@sightstone.region}/v2.1/league/by-summoner/#{id}"
17
+ response = _get_api_response(uri)
18
+ _parse_response(response) { |resp|
19
+ data = JSON.parse(resp)
20
+ leagueKeys = data.keys
21
+ leagues = []
22
+ leagueKeys.each do |key|
23
+ leagues << League.new(data[key])
24
+ end
25
+ return leagues
26
+ }
27
+ end
28
+
29
+ private
30
+
31
+ def _get_api_response(uri)
32
+ params = {'api_key' => @sightstone.api_key}
33
+ RestClient.get(uri, headers={:params => params}) {|response, request, result| response }
34
+ rescue SocketError => e
35
+ nil
36
+
37
+ end
38
+
39
+ def _parse_response(response, &block)
40
+ response_code = if response.nil?
41
+ 500
42
+ else
43
+ response.code
44
+ end
45
+ if response_code == 200
46
+ block.call(response.body)
47
+ elsif response_code == 404
48
+ raise Sightstone::SummonerNotFoundException
49
+ elsif response_code == 500
50
+ raise Sightstone::SightstoneConnectionException
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,74 @@
1
+ require 'sightstone/summoner'
2
+ require 'sightstone/player_stats_summary'
3
+ require 'sightstone/ranked_stats'
4
+
5
+ class StatsModule
6
+ def initialize(sightstone)
7
+ @sightstone = sightstone
8
+ end
9
+
10
+ def summary(summoner, season=nil)
11
+ id = if summoner.is_a? Summoner
12
+ summoner.id
13
+ else
14
+ summoner
15
+ end
16
+ uri = "https://prod.api.pvp.net/api/lol/#{@sightstone.region}/v1.1/stats/by-summoner/#{id}/summary"
17
+ response = if season.nil?
18
+ _get_api_response(uri)
19
+ else
20
+ _get_api_response(uri, {'season' => season})
21
+ end
22
+
23
+ _parse_response(response) { |resp|
24
+ data = JSON.parse(resp)
25
+ return PlayerStatsSummaryList.new(data)
26
+ }
27
+
28
+ end
29
+
30
+ def ranked(summoner, season=nil)
31
+ id = if summoner.is_a? Summoner
32
+ summoner.id
33
+ else
34
+ summoner
35
+ end
36
+ uri = "https://prod.api.pvp.net/api/lol/#{@sightstone.region}/v1.1/stats/by-summoner/#{id}/ranked"
37
+ response = if season.nil?
38
+ _get_api_response(uri)
39
+ else
40
+ _get_api_response(uri, {'season' => season})
41
+ end
42
+
43
+ _parse_response(response) { |resp|
44
+ data = JSON.parse(resp)
45
+ return RankedStats.new(data)
46
+ }
47
+
48
+ end
49
+
50
+ def _get_api_response(uri, header={})
51
+ params = {'api_key' => @sightstone.api_key}.merge header
52
+ RestClient.get(uri, headers={:params => params}) {|response, request, result| response }
53
+ rescue SocketError => e
54
+ nil
55
+
56
+ end
57
+
58
+ def _parse_response(response, &block)
59
+ response_code = if response.nil?
60
+ 500
61
+ else
62
+ response.code
63
+ end
64
+
65
+ if response_code == 200
66
+ block.call(response.body)
67
+ elsif response_code == 404
68
+ raise Sightstone::SummonerNotFoundException
69
+ elsif response_code == 500
70
+ raise Sightstone::SightstoneConnectionException
71
+ end
72
+ end
73
+
74
+ end
@@ -0,0 +1,88 @@
1
+ require 'sightstone/summoner'
2
+ require 'sightstone/masterybook'
3
+ require 'sightstone/runebook'
4
+
5
+ class SummonerModule
6
+ def initialize(sightstone)
7
+ @sightstone = sightstone
8
+ end
9
+
10
+ def summoner(name_or_id)
11
+ uri = if name_or_id.is_a? Integer
12
+ "http://prod.api.pvp.net/api/lol/#{@sightstone.region}/v1.1/summoner/#{name_or_id}"
13
+ else
14
+ "http://prod.api.pvp.net/api/lol/#{@sightstone.region}/v1.1/summoner/by-name/#{name_or_id}"
15
+ end
16
+
17
+ response = _get_api_response(uri)
18
+ _parse_response(response) { |resp|
19
+ data = JSON.parse(resp)
20
+ return Summoner.new(data)
21
+ }
22
+ end
23
+
24
+
25
+ def names(ids)
26
+ ids = ids.join(',')
27
+ uri = "http://prod.api.pvp.net/api/lol/#{@sightstone.region}/v1.1/summoner/#{ids}/name"
28
+ response = _get_api_response(uri)
29
+ _parse_response(response) { |resp|
30
+ data = JSON.parse(resp)
31
+ return data['summoners']
32
+ }
33
+ end
34
+
35
+ def runes(summoner)
36
+ id = if summoner.is_a? Summoner
37
+ summoner.id
38
+ else
39
+ summoner
40
+ end
41
+ uri = "http://prod.api.pvp.net/api/lol/#{@sightstone.region}/v1.1/summoner/#{id}/runes"
42
+ response = _get_api_response(uri)
43
+ _parse_response(response) { |resp|
44
+ data = JSON.parse(resp)
45
+ return RuneBook.new(data)
46
+ }
47
+ end
48
+
49
+ def masteries(summoner)
50
+ id = if summoner.is_a? Summoner
51
+ summoner.id
52
+ else
53
+ summoner
54
+ end
55
+ uri = "http://prod.api.pvp.net/api/lol/#{@sightstone.region}/v1.1/summoner/#{id}/masteries"
56
+ response = _get_api_response(uri)
57
+ _parse_response(response) { |resp|
58
+ data = JSON.parse(resp)
59
+ return MasteryBook.new(data)
60
+ }
61
+ end
62
+
63
+ private
64
+
65
+ def _get_api_response(uri)
66
+ params = {'api_key' => @sightstone.api_key}
67
+ RestClient.get(uri, headers={:params => params}) {|response, request, result| response }
68
+ rescue SocketError => e
69
+ nil
70
+
71
+ end
72
+
73
+ def _parse_response(response, &block)
74
+ response_code = if response.nil?
75
+ 500
76
+ else
77
+ response.code
78
+ end
79
+
80
+ if response_code == 200
81
+ block.call(response.body)
82
+ elsif response_code == 404
83
+ raise Sightstone::SummonerNotFoundException
84
+ elsif response_code == 500
85
+ raise Sightstone::SightstoneConnectionException
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,56 @@
1
+ require 'sightstone/summoner'
2
+ require 'sightstone/team'
3
+
4
+ class TeamModule
5
+ def initialize(sightstone)
6
+ @sightstone = sightstone
7
+ end
8
+
9
+ def teams(summoner)
10
+ id = if summoner.is_a? Summoner
11
+ summoner.id
12
+ else
13
+ summoner
14
+ end
15
+
16
+ uri = "http://prod.api.pvp.net/api/#{@sightstone.region}/v2.1/team/by-summoner/#{id}"
17
+
18
+ response = _get_api_response(uri)
19
+ _parse_response(response) { |resp|
20
+ data = JSON.parse(resp)
21
+ teams = []
22
+ data.each do |team|
23
+ teams << Team.new(team)
24
+ end
25
+ return teams
26
+ }
27
+ end
28
+
29
+
30
+
31
+ private
32
+
33
+ def _get_api_response(uri)
34
+ params = {'api_key' => @sightstone.api_key}
35
+ RestClient.get(uri, headers={:params => params}) {|response, request, result| response }
36
+ rescue SocketError => e
37
+ nil
38
+
39
+ end
40
+
41
+ def _parse_response(response, &block)
42
+ response_code = if response.nil?
43
+ 500
44
+ else
45
+ response.code
46
+ end
47
+
48
+ if response_code == 200
49
+ block.call(response.body)
50
+ elsif response_code == 404
51
+ raise Sightstone::SummonerNotFoundException
52
+ elsif response_code == 500
53
+ raise Sightstone::SightstoneConnectionException
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,30 @@
1
+ require 'sightstone/stat'
2
+
3
+ class PlayerStatsSummaryList
4
+
5
+ attr_accessor :summonerId, :playerStatSummaries
6
+
7
+ def initialize(data)
8
+ @summonerId = data['playerStatSummary']
9
+ @playerStatSummaries = []
10
+ data['playerStatSummaries'].each do |summary|
11
+ @playerStatSummaries << PlayerStatSummary.new(summary)
12
+ end
13
+ end
14
+ end
15
+
16
+ class PlayerStatSummary
17
+ attr_accessor :wins, :losses, :modifyDateStr, :modifyDate, :playerStatSummaryType, :aggregatedStats
18
+
19
+ def initialize(data)
20
+ @wins = data['wins']
21
+ @losses = data['losses']
22
+ @modifyDatStr = data['modifyDateStr']
23
+ @modifyDate = data['modifyDate']
24
+ @playerStatSummaryType = data['playerStatSummaryType']
25
+ @aggregatedStats = []
26
+ data['aggregatedStats'].each do |stat|
27
+ @aggregatedStats << Stat.new(data)
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,40 @@
1
+ require 'sightstone/stat'
2
+
3
+ class RankedStats
4
+ attr_accessor :champions, :modifyData, :modifyDateStr, :summonerId
5
+
6
+ def initialize(data)
7
+ @summonerId = data['summonerId']
8
+ @modifyDate = data['modifyDate']
9
+ @modifyDateStr = data['modifyDateStr']
10
+ @champions = []
11
+
12
+ data['champions'].each do |champ|
13
+ @champions << ChampionStats.new(champ)
14
+ end
15
+ end
16
+ end
17
+
18
+ class ChampionStats
19
+ attr_accessor :id, :name, :stats
20
+
21
+ def initialize(data)
22
+ @id = data['id']
23
+ @name = data['name']
24
+ @stats = []
25
+
26
+ data['stats'].each do |stat|
27
+ @stats << ChampionStat.new(stat)
28
+ end
29
+ end
30
+ end
31
+
32
+ class ChampionStat < Stat
33
+
34
+ attr_accessor :count
35
+
36
+ def initialize(data)
37
+ super(data)
38
+ @count = data['c']
39
+ end
40
+ end
@@ -0,0 +1,37 @@
1
+ class RuneBook
2
+ attr_accessor :pages, :summonerId
3
+
4
+ def initialize(data)
5
+ @summonerId = data['summonerId']
6
+ @pages = []
7
+ data['pages'].each do |page|
8
+ @pages << RunePage.new(page)
9
+ end
10
+ end
11
+ end
12
+
13
+ class RunePage
14
+ attr_accessor :id, :slots, :name, :current
15
+
16
+ def initialize(data)
17
+ @id = data['id']
18
+ @name = data['name']
19
+ @current = data['current']
20
+ @slots = {}
21
+ data['slots'].each do |slot|
22
+ @slots[slot['runeSlotId']] = Rune.new(slot['rune'])
23
+ end
24
+ end
25
+
26
+ end
27
+
28
+ class Rune
29
+ attr_accessor :id, :description, :name, :tier
30
+
31
+ def initialize(data)
32
+ @id = data['id']
33
+ @description = data['description']
34
+ @name = data['name']
35
+ @tier = data['tier']
36
+ end
37
+ end
@@ -0,0 +1,13 @@
1
+ class Stat
2
+ attr_accessor :id, :name, :value
3
+
4
+ def initialize(data)
5
+ @id = data['id']
6
+ @name = data['name']
7
+ @value = if data.has_key? 'value'
8
+ data['value']
9
+ else
10
+ data['count']
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,16 @@
1
+
2
+
3
+ class Summoner
4
+
5
+ attr_accessor :name, :id, :profileIconId, :revisionDate, :level
6
+
7
+ def initialize(data)
8
+ @name = data['name']
9
+ @id = data['id']
10
+ @profileIconId = data['profileIconId']
11
+ @revisionDate = data['revisionDate']
12
+ @level = data['summonerLevel']
13
+ end
14
+
15
+
16
+ end
@@ -0,0 +1,77 @@
1
+ class Team
2
+ attr_accessor :teamStatSummary, :status, :tag, :roster, :lastGameDate, :modifyDate, :teamId, :timestamp, :lastJoinDate, :secondLastJoinDate, :matchHistory, :lastJoinedRankedTeamQueueDate, :name, :thirdLastJoinDate, :createDate
3
+ def initialize(data)
4
+ @status = data['status']
5
+ @tag = data['tag']
6
+ @roster = Roster.new(data['roster'])
7
+ @lastGameDate = data['lastGameDate']
8
+ @modifyDate = data['modifyDate']
9
+ @teamId = data['teamId']['fullId']
10
+ @timestamp = data['timestamp']
11
+ @lastJoinDate = data['lastJoinDate']
12
+ @secondLastJoinDate = data['secondLastJoinDate']
13
+ @matchHistory = []
14
+ data['matchHistory'].each do |game|
15
+ matchHistory << Game.new(game)
16
+ end
17
+ @lastJoinedRankedTeamQueueDate=data['lastJoinedRankedTeamQueueDate']
18
+ @name = data['name']
19
+ @thirdLastJoinDate = data['thirdLastJoinDate']
20
+ @createDate = data['createDate']
21
+ @teamStatSummary = []
22
+ data['teamStatSummary']['teamStatDetails'].each do |detail|
23
+ teamStatSummary << TeamStat.new(detail)
24
+ end
25
+
26
+ end
27
+ end
28
+
29
+ class Roster
30
+ attr_accessor :ownerId, :memberList
31
+ def initialize(data)
32
+ @ownerId = data['ownerId']
33
+ @memberList = []
34
+ data['memberList'].each do |m|
35
+ memberList << Member.new(m)
36
+ end
37
+ end
38
+ end
39
+
40
+ class Member
41
+ attr_accessor :joinDate, :inviteDate, :status, :playerId
42
+ def initialize(data)
43
+ @joinDate = data['joinDate']
44
+ @inviteDate = data['inviteDate']
45
+ @status = data['status']
46
+ @playerId = data['playerId']
47
+ end
48
+ end
49
+
50
+ class TeamStat
51
+ attr_accessor :wins, :losses, :averageGamesPlayed, :teamId, :teamStatType
52
+ def initialize(data)
53
+ @wins = data['wins']
54
+ @losses = data['losses']
55
+ @averageGamesPlayed = data['averageGamesPlayed']
56
+ @teamId = data['teamId']
57
+ @teamStatType = data['teamStatType']
58
+
59
+ end
60
+ end
61
+
62
+ class Game
63
+ attr_accessor :gameMode, :mapId, :assists, :opposingTeamName, :invalid, :deaths, :gameId, :kills, :win, :date, :opposingTeamKills
64
+ def initialize(data)
65
+ @gameMode = data['gameMode']
66
+ @mapId = data['mapId']
67
+ @assists = data['assists']
68
+ @opposingTeamName = data['opposingTeamName']
69
+ @invalid = data['invalid']
70
+ @deaths = data['deaths']
71
+ @gameId = data['gameId']
72
+ @kills = data['kills']
73
+ @win = data['win']
74
+ @date = data['date']
75
+ @opposingTeamKills = data['opposingTeamKills']
76
+ end
77
+ end
metadata ADDED
@@ -0,0 +1,88 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sightstone
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Daniel Bauer
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2012-12-12 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rest-client
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: json
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: Ruby wrapper for riots league of legends api
42
+ email: danijob88@googlemail.com
43
+ executables: []
44
+ extensions: []
45
+ extra_rdoc_files: []
46
+ files:
47
+ - lib/sightstone/champion.rb
48
+ - lib/sightstone/league.rb
49
+ - lib/sightstone/masterybook.rb
50
+ - lib/sightstone/match_history.rb
51
+ - lib/sightstone/modules/champion_module.rb
52
+ - lib/sightstone/modules/game_module.rb
53
+ - lib/sightstone/modules/league_module.rb
54
+ - lib/sightstone/modules/stats_module.rb
55
+ - lib/sightstone/modules/summoner_module.rb
56
+ - lib/sightstone/modules/team_module.rb
57
+ - lib/sightstone/player_stats_summary.rb
58
+ - lib/sightstone/ranked_stats.rb
59
+ - lib/sightstone/runebook.rb
60
+ - lib/sightstone/stat.rb
61
+ - lib/sightstone/summoner.rb
62
+ - lib/sightstone/team.rb
63
+ - lib/sightstone.rb
64
+ homepage: http://rubygems.org/gems/outrage
65
+ licenses:
66
+ - MIT
67
+ metadata: {}
68
+ post_install_message:
69
+ rdoc_options: []
70
+ require_paths:
71
+ - lib
72
+ required_ruby_version: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ required_rubygems_version: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - '>='
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ requirements: []
83
+ rubyforge_project:
84
+ rubygems_version: 2.1.10
85
+ signing_key:
86
+ specification_version: 4
87
+ summary: Ruby wrapper for riots league of legends api
88
+ test_files: []