vigor 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/vigor.rb +7 -109
- data/lib/vigor/client.rb +21 -0
- data/lib/vigor/mastery_page.rb +19 -0
- data/lib/vigor/page.rb +14 -0
- data/lib/vigor/rune.rb +15 -0
- data/lib/vigor/rune_page.rb +20 -0
- data/lib/vigor/summoner.rb +29 -0
- data/lib/vigor/talent.rb +11 -0
- data/spec/cassettes/Vigor_Client/can_find_a_summoner_by_id.yml +39 -0
- data/spec/cassettes/Vigor_Client/can_find_a_summoner_by_name.yml +39 -0
- data/spec/cassettes/Vigor_Client/can_find_summoners_whose_names_have_whitespace.yml +39 -0
- data/spec/cassettes/Vigor_Client/works_on_servers_other_than_NA.yml +39 -0
- data/spec/cassettes/Vigor_Summoner/can_fetch_masteries.yml +145 -0
- data/spec/cassettes/Vigor_Summoner/can_fetch_runes.yml +559 -0
- data/spec/client_spec.rb +35 -0
- data/spec/spec_helper.rb +14 -0
- data/spec/summoner_spec.rb +30 -0
- metadata +56 -15
data/lib/vigor.rb
CHANGED
@@ -1,109 +1,7 @@
|
|
1
|
-
require '
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
def initialize(api_key, region = "na")
|
9
|
-
self.class.default_params :api_key => api_key
|
10
|
-
self.class.base_uri "http://prod.api.pvp.net/api/lol/#{region}/v1.1"
|
11
|
-
end
|
12
|
-
|
13
|
-
def summoner(lookup_value)
|
14
|
-
if lookup_value.is_a? String
|
15
|
-
return Summoner.new(self.class.get("/summoner/by-name/" + lookup_value.gsub(/\s+/, "")))
|
16
|
-
else
|
17
|
-
return Summoner.new(self.class.get("/summoner/" + lookup_value.to_s))
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
class Summoner
|
23
|
-
attr_accessor :id, :name, :profile_icon_id, :level, :revision_date
|
24
|
-
|
25
|
-
def initialize(data)
|
26
|
-
@id = data["id"]
|
27
|
-
@name = data["name"]
|
28
|
-
@profile_icon_id = data["profileIconId"]
|
29
|
-
@level = data["summonerLevel"]
|
30
|
-
@revision_date = DateTime.strptime(data["revisionDate"].to_s,'%s')
|
31
|
-
end
|
32
|
-
|
33
|
-
def mastery_pages
|
34
|
-
@mastery_pages ||= Client.get("/summoner/" + @id.to_s + "/masteries")["pages"].map {|page| MasteryPage.new(page)}
|
35
|
-
end
|
36
|
-
|
37
|
-
def rune_pages
|
38
|
-
@rune_pages ||= Client.get("/summoner/" + @id.to_s + "/runes")["pages"].map {|page| RunePage.new(page)}
|
39
|
-
end
|
40
|
-
|
41
|
-
def current_mastery_page
|
42
|
-
mastery_pages.find {|page| page.current? }
|
43
|
-
end
|
44
|
-
|
45
|
-
def current_rune_page
|
46
|
-
rune_pages.find {|page| page.current? }
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
class Page
|
51
|
-
attr_accessor :name
|
52
|
-
|
53
|
-
def initialize(data)
|
54
|
-
@name = data["name"]
|
55
|
-
@current = data["current"]
|
56
|
-
end
|
57
|
-
|
58
|
-
def current?
|
59
|
-
@current
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
class MasteryPage < Page
|
64
|
-
attr_accessor :talents
|
65
|
-
|
66
|
-
def initialize(data)
|
67
|
-
super
|
68
|
-
|
69
|
-
return if data["talents"].nil?
|
70
|
-
@talents = data["talents"].map {|talent| Talent.new(talent)}
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
class Talent
|
75
|
-
attr_accessor :id, :rank, :name
|
76
|
-
|
77
|
-
def initialize(data)
|
78
|
-
@id = data["id"]
|
79
|
-
@rank = data["rank"]
|
80
|
-
@name = data["name"]
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
class RunePage < Page
|
85
|
-
attr_accessor :runes, :id
|
86
|
-
|
87
|
-
def initialize(data)
|
88
|
-
super
|
89
|
-
@id = data["id"]
|
90
|
-
|
91
|
-
return if data["slots"].nil?
|
92
|
-
@runes = data["slots"].map {|slot| Rune.new(slot)}
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
class Rune
|
97
|
-
attr_accessor :slot, :id, :description, :name, :tier
|
98
|
-
|
99
|
-
def initialize(data)
|
100
|
-
rune = data["rune"]
|
101
|
-
|
102
|
-
@slot = data["runeSlotId"]
|
103
|
-
@id = rune["id"]
|
104
|
-
@description = rune["description"]
|
105
|
-
@name = rune["name"]
|
106
|
-
@tier = rune["tier"]
|
107
|
-
end
|
108
|
-
end
|
109
|
-
end
|
1
|
+
require 'vigor/summoner'
|
2
|
+
require 'vigor/client'
|
3
|
+
require 'vigor/page'
|
4
|
+
require 'vigor/mastery_page'
|
5
|
+
require 'vigor/talent'
|
6
|
+
require 'vigor/rune_page'
|
7
|
+
require 'vigor/rune'
|
data/lib/vigor/client.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'httparty'
|
2
|
+
|
3
|
+
module Vigor
|
4
|
+
class Client
|
5
|
+
include HTTParty
|
6
|
+
# debug_output $stderr
|
7
|
+
|
8
|
+
def initialize(api_key, region = "na")
|
9
|
+
self.class.default_params :api_key => api_key
|
10
|
+
self.class.base_uri "http://prod.api.pvp.net/api/lol/#{region}/v1.1"
|
11
|
+
end
|
12
|
+
|
13
|
+
def summoner(lookup_value)
|
14
|
+
if lookup_value.is_a? String
|
15
|
+
return Summoner.new(self.class.get("/summoner/by-name/" + lookup_value.gsub(/\s+/, "")))
|
16
|
+
else
|
17
|
+
return Summoner.new(self.class.get("/summoner/" + lookup_value.to_s))
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Vigor
|
2
|
+
class MasteryPage < Page
|
3
|
+
include Enumerable
|
4
|
+
attr_accessor :talents
|
5
|
+
|
6
|
+
def initialize(data)
|
7
|
+
super
|
8
|
+
|
9
|
+
return if data["talents"].nil?
|
10
|
+
@talents = data["talents"].map {|talent| Talent.new(talent)}
|
11
|
+
end
|
12
|
+
|
13
|
+
def each(&block)
|
14
|
+
@talents.each do |talent|
|
15
|
+
block.call(talent)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/vigor/page.rb
ADDED
data/lib/vigor/rune.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
module Vigor
|
2
|
+
class Rune
|
3
|
+
attr_accessor :slot, :id, :description, :name, :tier
|
4
|
+
|
5
|
+
def initialize(data)
|
6
|
+
rune = data["rune"]
|
7
|
+
|
8
|
+
@slot = data["runeSlotId"]
|
9
|
+
@id = rune["id"]
|
10
|
+
@description = rune["description"]
|
11
|
+
@name = rune["name"]
|
12
|
+
@tier = rune["tier"]
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Vigor
|
2
|
+
class RunePage < Page
|
3
|
+
include Enumerable
|
4
|
+
attr_accessor :runes, :id
|
5
|
+
|
6
|
+
def initialize(data)
|
7
|
+
super
|
8
|
+
@id = data["id"]
|
9
|
+
|
10
|
+
return if data["slots"].nil?
|
11
|
+
@runes = data["slots"].map {|slot| Rune.new(slot)}
|
12
|
+
end
|
13
|
+
|
14
|
+
def each(&block)
|
15
|
+
@runes.each do |rune|
|
16
|
+
block.call(rune)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Vigor
|
2
|
+
class Summoner
|
3
|
+
attr_accessor :id, :name, :profile_icon_id, :level, :revision_date
|
4
|
+
|
5
|
+
def initialize(data)
|
6
|
+
@id = data["id"]
|
7
|
+
@name = data["name"]
|
8
|
+
@profile_icon_id = data["profileIconId"]
|
9
|
+
@level = data["summonerLevel"]
|
10
|
+
@revision_date = DateTime.strptime(data["revisionDate"].to_s,'%s')
|
11
|
+
end
|
12
|
+
|
13
|
+
def mastery_pages
|
14
|
+
Client.get("/summoner/" + @id.to_s + "/masteries")["pages"].map {|page| MasteryPage.new(page)}
|
15
|
+
end
|
16
|
+
|
17
|
+
def rune_pages
|
18
|
+
Client.get("/summoner/" + @id.to_s + "/runes")["pages"].map {|page| RunePage.new(page)}
|
19
|
+
end
|
20
|
+
|
21
|
+
def current_mastery_page
|
22
|
+
mastery_pages.find {|page| page.current? }
|
23
|
+
end
|
24
|
+
|
25
|
+
def current_rune_page
|
26
|
+
rune_pages.find {|page| page.current? }
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
data/lib/vigor/talent.rb
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://prod.api.pvp.net/api/lol/na/v1.1/summoner/23893133?api_key=<API_KEY>
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers: {}
|
10
|
+
response:
|
11
|
+
status:
|
12
|
+
code: 200
|
13
|
+
message: OK
|
14
|
+
headers:
|
15
|
+
Access-Control-Allow-Headers:
|
16
|
+
- Content-Type
|
17
|
+
Access-Control-Allow-Methods:
|
18
|
+
- GET, POST, DELETE, PUT
|
19
|
+
Access-Control-Allow-Origin:
|
20
|
+
- ! '*'
|
21
|
+
Content-Type:
|
22
|
+
- application/json;charset=UTF-8
|
23
|
+
Date:
|
24
|
+
- Thu, 12 Dec 2013 10:36:46 GMT
|
25
|
+
Server:
|
26
|
+
- Jetty(9.1.0.v20131115)
|
27
|
+
X-Newrelic-App-Data:
|
28
|
+
- PxQFWFFSDwQTVVdUBAgAVkYdFGQHBDcQUQxLA1tMXV1dORYzVBJHNQFUZAQUFVFQVThOA0dYa0kIXlpvTR0RB1cLVwxFZBtEAksIPR4SRg8JWVkEFD8XSEMRDA9YX1IULVVLE0ohJjYZQBRSFggYAh1VCVAIWARWVwEbTFdPGldRAFJTUwJTXlVTB1BXVQZAbQ==
|
29
|
+
Content-Length:
|
30
|
+
- '143'
|
31
|
+
Connection:
|
32
|
+
- keep-alive
|
33
|
+
body:
|
34
|
+
encoding: US-ASCII
|
35
|
+
string: ! '{"id":23893133,"name":"Semiel","profileIconId":518,"summonerLevel":30,"revisionDate":1386532311000,"revisionDateStr":"12/08/2013
|
36
|
+
07:51 PM UTC"}'
|
37
|
+
http_version:
|
38
|
+
recorded_at: Thu, 12 Dec 2013 10:36:31 GMT
|
39
|
+
recorded_with: VCR 2.8.0
|
@@ -0,0 +1,39 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://prod.api.pvp.net/api/lol/na/v1.1/summoner/by-name/semiel?api_key=<API_KEY>
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers: {}
|
10
|
+
response:
|
11
|
+
status:
|
12
|
+
code: 200
|
13
|
+
message: OK
|
14
|
+
headers:
|
15
|
+
Access-Control-Allow-Headers:
|
16
|
+
- Content-Type
|
17
|
+
Access-Control-Allow-Methods:
|
18
|
+
- GET, POST, DELETE, PUT
|
19
|
+
Access-Control-Allow-Origin:
|
20
|
+
- ! '*'
|
21
|
+
Content-Type:
|
22
|
+
- application/json;charset=UTF-8
|
23
|
+
Date:
|
24
|
+
- Thu, 12 Dec 2013 10:36:46 GMT
|
25
|
+
Server:
|
26
|
+
- Jetty(9.1.0.v20131115)
|
27
|
+
X-Newrelic-App-Data:
|
28
|
+
- PxQFWFFSDwQTVVdUBAgAVkYdFGQHBDcQUQxLA1tMXV1dORYzVBJHNQFUZAQUFVFQVThOA0dYa0kIXlpvTR0RB1cLVwxFZBtEAksIPR4SRg8JWVkEFD8XUUlJDwNaVGtJH19XXgcbQ0p3J2xLGhQEHANJCU8BUQJbVA4OUEpOCR8SVlcGA1VRVAcGBwtRXgcAUkBl
|
29
|
+
Content-Length:
|
30
|
+
- '143'
|
31
|
+
Connection:
|
32
|
+
- keep-alive
|
33
|
+
body:
|
34
|
+
encoding: US-ASCII
|
35
|
+
string: ! '{"id":23893133,"name":"Semiel","profileIconId":518,"summonerLevel":30,"revisionDate":1386532311000,"revisionDateStr":"12/08/2013
|
36
|
+
07:51 PM UTC"}'
|
37
|
+
http_version:
|
38
|
+
recorded_at: Thu, 12 Dec 2013 10:36:31 GMT
|
39
|
+
recorded_with: VCR 2.8.0
|
@@ -0,0 +1,39 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://prod.api.pvp.net/api/lol/na/v1.1/summoner/by-name/BestRivenNA?api_key=<API_KEY>
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers: {}
|
10
|
+
response:
|
11
|
+
status:
|
12
|
+
code: 200
|
13
|
+
message: OK
|
14
|
+
headers:
|
15
|
+
Access-Control-Allow-Headers:
|
16
|
+
- Content-Type
|
17
|
+
Access-Control-Allow-Methods:
|
18
|
+
- GET, POST, DELETE, PUT
|
19
|
+
Access-Control-Allow-Origin:
|
20
|
+
- ! '*'
|
21
|
+
Content-Type:
|
22
|
+
- application/json;charset=UTF-8
|
23
|
+
Date:
|
24
|
+
- Thu, 12 Dec 2013 10:36:47 GMT
|
25
|
+
Server:
|
26
|
+
- Jetty(9.1.0.v20131115)
|
27
|
+
X-Newrelic-App-Data:
|
28
|
+
- PxQFWFFSDwQTVVdUBAgAVkYdFGQHBDcQUQxLA1tMXV1dORYzVBJHNQFUZAQUFVFQVThOA0dYa0kIXlpvTR0RB1cLVwxFZBtEAksIPR4SRg8JWVkEFD8XUUlJDwNaVGtJH19XXgcbQ0p3J2xLGhQEHANJCU8BUQBRVgQAVlJPFQIcRgIAAFJTAAJQAQdRBAZXAgEaPw==
|
29
|
+
Content-Length:
|
30
|
+
- '150'
|
31
|
+
Connection:
|
32
|
+
- keep-alive
|
33
|
+
body:
|
34
|
+
encoding: US-ASCII
|
35
|
+
string: ! '{"id":32400810,"name":"Best Riven NA","profileIconId":508,"summonerLevel":30,"revisionDate":1386729379000,"revisionDateStr":"12/11/2013
|
36
|
+
02:36 AM UTC"}'
|
37
|
+
http_version:
|
38
|
+
recorded_at: Thu, 12 Dec 2013 10:36:31 GMT
|
39
|
+
recorded_with: VCR 2.8.0
|
@@ -0,0 +1,39 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://prod.api.pvp.net/api/lol/euw/v1.1/summoner/by-name/Froggen?api_key=<API_KEY>
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers: {}
|
10
|
+
response:
|
11
|
+
status:
|
12
|
+
code: 200
|
13
|
+
message: OK
|
14
|
+
headers:
|
15
|
+
Access-Control-Allow-Headers:
|
16
|
+
- Content-Type
|
17
|
+
Access-Control-Allow-Methods:
|
18
|
+
- GET, POST, DELETE, PUT
|
19
|
+
Access-Control-Allow-Origin:
|
20
|
+
- ! '*'
|
21
|
+
Content-Type:
|
22
|
+
- application/json;charset=UTF-8
|
23
|
+
Date:
|
24
|
+
- Thu, 12 Dec 2013 10:36:46 GMT
|
25
|
+
Server:
|
26
|
+
- Jetty(9.1.0.v20131115)
|
27
|
+
X-Newrelic-App-Data:
|
28
|
+
- PxQFWFFSDwQTVVdUBAgPUkYdFGQHBDcQUQxLA1tMXV1dORYzVBJHNQFUZAQUFVFQVThOA0dYa0kIXlpvTR0RB1cLVwxFZBtEAksIPR4SRg8JWVkEFD8XUUlJDwNaVGtJH19XXgcbQ0p3J2xLGhQEHANJCU8BUQBQVwAOWUpOCR8SUlNTAQVSVVUHDlFQVFoAVUBl
|
29
|
+
Content-Length:
|
30
|
+
- '144'
|
31
|
+
Connection:
|
32
|
+
- keep-alive
|
33
|
+
body:
|
34
|
+
encoding: US-ASCII
|
35
|
+
string: ! '{"id":19531813,"name":"Froggen","profileIconId":562,"summonerLevel":30,"revisionDate":1386782571000,"revisionDateStr":"12/11/2013
|
36
|
+
05:22 PM UTC"}'
|
37
|
+
http_version:
|
38
|
+
recorded_at: Thu, 12 Dec 2013 10:36:31 GMT
|
39
|
+
recorded_with: VCR 2.8.0
|
@@ -0,0 +1,145 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://prod.api.pvp.net/api/lol/na/v1.1/summoner/by-name/semiel?api_key=<API_KEY>
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers: {}
|
10
|
+
response:
|
11
|
+
status:
|
12
|
+
code: 200
|
13
|
+
message: OK
|
14
|
+
headers:
|
15
|
+
Access-Control-Allow-Headers:
|
16
|
+
- Content-Type
|
17
|
+
Access-Control-Allow-Methods:
|
18
|
+
- GET, POST, DELETE, PUT
|
19
|
+
Access-Control-Allow-Origin:
|
20
|
+
- ! '*'
|
21
|
+
Content-Type:
|
22
|
+
- application/json;charset=UTF-8
|
23
|
+
Date:
|
24
|
+
- Thu, 12 Dec 2013 10:34:37 GMT
|
25
|
+
Server:
|
26
|
+
- Jetty(9.1.0.v20131115)
|
27
|
+
X-Newrelic-App-Data:
|
28
|
+
- PxQFWFFSDwQTVVdUBAgAVkYdFGQHBDcQUQxLA1tMXV1dORYzVBJHNQFUZAQUFVFQVThOA0dYa0kIXlpvTR0RB1cLVwxFZBtEAksIPR4SRg8JWVkEFD8XUUlJDwNaVGtJH19XXgcbQ0p3J2xLGhQEHANJCU8BUQBQUQICV0pOCR8SVlcGUVdUXwdXAQoEUFBXEj8=
|
29
|
+
Transfer-Encoding:
|
30
|
+
- chunked
|
31
|
+
Connection:
|
32
|
+
- keep-alive
|
33
|
+
body:
|
34
|
+
encoding: US-ASCII
|
35
|
+
string: ! '{"id":23893133,"name":"Semiel","profileIconId":518,"summonerLevel":30,"revisionDate":1386532311000,"revisionDateStr":"12/08/2013
|
36
|
+
07:51 PM UTC"}'
|
37
|
+
http_version:
|
38
|
+
recorded_at: Thu, 12 Dec 2013 10:34:21 GMT
|
39
|
+
- request:
|
40
|
+
method: get
|
41
|
+
uri: http://prod.api.pvp.net/api/lol/na/v1.1/summoner/23893133/masteries?api_key=<API_KEY>
|
42
|
+
body:
|
43
|
+
encoding: US-ASCII
|
44
|
+
string: ''
|
45
|
+
headers: {}
|
46
|
+
response:
|
47
|
+
status:
|
48
|
+
code: 200
|
49
|
+
message: OK
|
50
|
+
headers:
|
51
|
+
Access-Control-Allow-Headers:
|
52
|
+
- Content-Type
|
53
|
+
Access-Control-Allow-Methods:
|
54
|
+
- GET, POST, DELETE, PUT
|
55
|
+
Access-Control-Allow-Origin:
|
56
|
+
- ! '*'
|
57
|
+
Content-Type:
|
58
|
+
- application/json;charset=UTF-8
|
59
|
+
Date:
|
60
|
+
- Thu, 12 Dec 2013 10:34:37 GMT
|
61
|
+
Server:
|
62
|
+
- Jetty(9.1.0.v20131115)
|
63
|
+
X-Newrelic-App-Data:
|
64
|
+
- PxQFWFFSDwQTVVdUBAgAVkYdFGQHBDcQUQxLA1tMXV1dORYzVBJHNQFUZAQUFVFQVThOA0dYa0kIXlpvTR0RB1cLVwxFZBtEAksIPR4SRg8JWVkEFD8XSEMRDA9YX1IULVVLb00LAhFEB0oLXUsUGnQgbUgTTQNMVBoHT1ZVDAoAXFhbGxwGSkYABlBaA1FaB1cNUA5aAAMKR2Q=
|
65
|
+
Content-Length:
|
66
|
+
- '2757'
|
67
|
+
Connection:
|
68
|
+
- keep-alive
|
69
|
+
body:
|
70
|
+
encoding: US-ASCII
|
71
|
+
string: ! '{"summonerId":23893133,"pages":[{"name":"Mastery Page 4","current":false,"talents":[{"id":4233,"name":"Hardiness","rank":3},{"id":4211,"name":"Block","rank":2},{"id":4121,"name":"Expose
|
72
|
+
Weakness","rank":1},{"id":4213,"name":"Enchanted Armor","rank":2},{"id":4244,"name":"Evasive","rank":1},{"id":4234,"name":"Resistance","rank":3},{"id":4222,"name":"Veteran
|
73
|
+
Scars","rank":3},{"id":4113,"name":"Sorcery","rank":4},{"id":4221,"name":"Unyielding","rank":1},{"id":4252,"name":"Tenacious","rank":4},{"id":4123,"name":"Mental
|
74
|
+
Force","rank":3},{"id":4262,"name":"Legendary Guardian","rank":1},{"id":4133,"name":"Arcane
|
75
|
+
Mastery","rank":1},{"id":4232,"name":"Juggernaut","rank":1}]},{"name":"Mastery
|
76
|
+
Page 1","current":false,"talents":[{"id":4212,"name":"Recovery","rank":2},{"id":4242,"name":"Swiftness","rank":1},{"id":4213,"name":"Enchanted
|
77
|
+
Armor","rank":2},{"id":4211,"name":"Block","rank":1},{"id":4244,"name":"Evasive","rank":1},{"id":4333,"name":"Vampirism","rank":1},{"id":4234,"name":"Resistance","rank":3},{"id":4322,"name":"Summoner''s
|
78
|
+
Insight","rank":1},{"id":4323,"name":"Strength of Spirit","rank":1},{"id":4222,"name":"Veteran
|
79
|
+
Scars","rank":3},{"id":4252,"name":"Tenacious","rank":4},{"id":4262,"name":"Legendary
|
80
|
+
Guardian","rank":1},{"id":4312,"name":"Fleet of Foot","rank":3},{"id":4313,"name":"Meditation","rank":3},{"id":4232,"name":"Juggernaut","rank":1},{"id":4233,"name":"Hardiness","rank":2}]},{"name":"Mastery
|
81
|
+
Page 2","current":false,"talents":[{"id":4212,"name":"Recovery","rank":2},{"id":4211,"name":"Block","rank":2},{"id":4121,"name":"Expose
|
82
|
+
Weakness","rank":1},{"id":4134,"name":"Executioner","rank":3},{"id":4154,"name":"Arcane
|
83
|
+
Blade","rank":1},{"id":4222,"name":"Veteran Scars","rank":3},{"id":4113,"name":"Sorcery","rank":4},{"id":4221,"name":"Unyielding","rank":1},{"id":4144,"name":"Dangerous
|
84
|
+
Game","rank":1},{"id":4152,"name":"Devastating Strikes","rank":3},{"id":4123,"name":"Mental
|
85
|
+
Force","rank":3},{"id":4133,"name":"Arcane Mastery","rank":1},{"id":4143,"name":"Archmage","rank":3},{"id":4232,"name":"Juggernaut","rank":1},{"id":4162,"name":"Havoc","rank":1}]},{"name":"AP","current":true,"talents":[{"id":4212,"name":"Recovery","rank":2},{"id":4211,"name":"Block","rank":2},{"id":4121,"name":"Expose
|
86
|
+
Weakness","rank":1},{"id":4134,"name":"Executioner","rank":3},{"id":4154,"name":"Arcane
|
87
|
+
Blade","rank":1},{"id":4222,"name":"Veteran Scars","rank":3},{"id":4113,"name":"Sorcery","rank":4},{"id":4221,"name":"Unyielding","rank":1},{"id":4144,"name":"Dangerous
|
88
|
+
Game","rank":1},{"id":4152,"name":"Devastating Strikes","rank":3},{"id":4123,"name":"Mental
|
89
|
+
Force","rank":3},{"id":4133,"name":"Arcane Mastery","rank":1},{"id":4143,"name":"Archmage","rank":3},{"id":4232,"name":"Juggernaut","rank":1},{"id":4162,"name":"Havoc","rank":1}]}]}'
|
90
|
+
http_version:
|
91
|
+
recorded_at: Thu, 12 Dec 2013 10:34:21 GMT
|
92
|
+
- request:
|
93
|
+
method: get
|
94
|
+
uri: http://prod.api.pvp.net/api/lol/na/v1.1/summoner/23893133/masteries?api_key=<API_KEY>
|
95
|
+
body:
|
96
|
+
encoding: US-ASCII
|
97
|
+
string: ''
|
98
|
+
headers: {}
|
99
|
+
response:
|
100
|
+
status:
|
101
|
+
code: 200
|
102
|
+
message: OK
|
103
|
+
headers:
|
104
|
+
Access-Control-Allow-Headers:
|
105
|
+
- Content-Type
|
106
|
+
Access-Control-Allow-Methods:
|
107
|
+
- GET, POST, DELETE, PUT
|
108
|
+
Access-Control-Allow-Origin:
|
109
|
+
- ! '*'
|
110
|
+
Content-Type:
|
111
|
+
- application/json;charset=UTF-8
|
112
|
+
Date:
|
113
|
+
- Fri, 13 Dec 2013 20:03:18 GMT
|
114
|
+
Server:
|
115
|
+
- Jetty(9.1.0.v20131115)
|
116
|
+
X-Newrelic-App-Data:
|
117
|
+
- PxQFWFFSDwQTVVdUBAgAVkYdFGQHBDcQUQxLA1tMXV1dORYzVBJHNQFUZAQUFVFQVThOA0dYa0kIXlpvTR0RB1cLVwxFZBtEAksIPR4SRg8JWVkEFD8XSEMRDA9YX1IULVVLb00LAhFEB0oLXUsUGnQgbUgTTQNMVBoHT1ZWDQoHUFRaAx0aV0gTBQZTVQJVU1UPAAsLAVRWR2Q=
|
118
|
+
Transfer-Encoding:
|
119
|
+
- chunked
|
120
|
+
Connection:
|
121
|
+
- keep-alive
|
122
|
+
body:
|
123
|
+
encoding: US-ASCII
|
124
|
+
string: ! '{"summonerId":23893133,"pages":[{"name":"Mastery Page 4","current":false,"talents":[{"id":4233,"name":"Hardiness","rank":3},{"id":4211,"name":"Block","rank":2},{"id":4121,"name":"Expose
|
125
|
+
Weakness","rank":1},{"id":4213,"name":"Enchanted Armor","rank":2},{"id":4244,"name":"Evasive","rank":1},{"id":4234,"name":"Resistance","rank":3},{"id":4222,"name":"Veteran''s
|
126
|
+
Scars","rank":3},{"id":4113,"name":"Sorcery","rank":4},{"id":4221,"name":"Unyielding","rank":1},{"id":4252,"name":"Legendary
|
127
|
+
Guardian","rank":4},{"id":4123,"name":"Mental Force","rank":3},{"id":4262,"name":"Tenacious","rank":1},{"id":4133,"name":"Arcane
|
128
|
+
Mastery","rank":1},{"id":4232,"name":"Juggernaut","rank":1}]},{"name":"Mastery
|
129
|
+
Page 1","current":false,"talents":[{"id":4212,"name":"Recovery","rank":2},{"id":4242,"name":"Swiftness","rank":1},{"id":4213,"name":"Enchanted
|
130
|
+
Armor","rank":2},{"id":4211,"name":"Block","rank":1},{"id":4244,"name":"Evasive","rank":1},{"id":4333,"name":"Vampirism","rank":1},{"id":4234,"name":"Resistance","rank":3},{"id":4322,"name":"Summoner''s
|
131
|
+
Insight","rank":1},{"id":4323,"name":"Strength of Spirit","rank":1},{"id":4222,"name":"Veteran''s
|
132
|
+
Scars","rank":3},{"id":4252,"name":"Legendary Guardian","rank":4},{"id":4262,"name":"Tenacious","rank":1},{"id":4312,"name":"Fleet
|
133
|
+
of Foot","rank":3},{"id":4313,"name":"Meditation","rank":3},{"id":4232,"name":"Juggernaut","rank":1},{"id":4233,"name":"Hardiness","rank":2}]},{"name":"Mastery
|
134
|
+
Page 2","current":false,"talents":[{"id":4212,"name":"Recovery","rank":2},{"id":4211,"name":"Block","rank":2},{"id":4121,"name":"Expose
|
135
|
+
Weakness","rank":1},{"id":4134,"name":"Executioner","rank":3},{"id":4154,"name":"Arcane
|
136
|
+
Blade","rank":1},{"id":4222,"name":"Veteran''s Scars","rank":3},{"id":4113,"name":"Sorcery","rank":4},{"id":4221,"name":"Unyielding","rank":1},{"id":4144,"name":"Dangerous
|
137
|
+
Game","rank":1},{"id":4152,"name":"Devastating Strikes","rank":3},{"id":4123,"name":"Mental
|
138
|
+
Force","rank":3},{"id":4133,"name":"Arcane Mastery","rank":1},{"id":4143,"name":"Archmage","rank":3},{"id":4232,"name":"Juggernaut","rank":1},{"id":4162,"name":"Havoc","rank":1}]},{"name":"AP","current":true,"talents":[{"id":4212,"name":"Recovery","rank":2},{"id":4211,"name":"Block","rank":2},{"id":4121,"name":"Expose
|
139
|
+
Weakness","rank":1},{"id":4134,"name":"Executioner","rank":3},{"id":4154,"name":"Arcane
|
140
|
+
Blade","rank":1},{"id":4222,"name":"Veteran''s Scars","rank":3},{"id":4113,"name":"Sorcery","rank":4},{"id":4221,"name":"Unyielding","rank":1},{"id":4144,"name":"Dangerous
|
141
|
+
Game","rank":1},{"id":4152,"name":"Devastating Strikes","rank":3},{"id":4123,"name":"Mental
|
142
|
+
Force","rank":3},{"id":4133,"name":"Arcane Mastery","rank":1},{"id":4143,"name":"Archmage","rank":3},{"id":4232,"name":"Juggernaut","rank":1},{"id":4162,"name":"Havoc","rank":1}]}]}'
|
143
|
+
http_version:
|
144
|
+
recorded_at: Fri, 13 Dec 2013 20:03:19 GMT
|
145
|
+
recorded_with: VCR 2.8.0
|