ruby_sightstone 0.2.0 → 0.2.1
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 +4 -4
- data/lib/ruby_sightstone.rb +55 -20
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4e5763dac26451fb0e9d488eaa1a192051d2f006
|
4
|
+
data.tar.gz: 81e05bb7ad0be548db2c6d8dee83a759613bd446
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6718382f7ff35dfe0257632c2918bfcca8d7a0bc21e574d6b30cfca6d5e816939db055ed14fd804cd6ede3b9f5fc440a6a6fd9f655fed3017093d3d089452696
|
7
|
+
data.tar.gz: 45f1a39810b668d4150646a23425ebad7a924118df11145cc3e49a58b54aa035cce3c00e4b1a46140be0919b2c63f484c2078d6ef8011c5e41044156903d5202
|
data/lib/ruby_sightstone.rb
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
require 'uri'
|
3
|
+
require 'json'
|
1
4
|
# @author Boyang Niu
|
2
5
|
# Lightweight wrapper for some of the Riot API
|
3
6
|
class RubySightstone
|
@@ -11,43 +14,75 @@ class RubySightstone
|
|
11
14
|
@region = region
|
12
15
|
end
|
13
16
|
|
14
|
-
def
|
17
|
+
def champions(params={})
|
18
|
+
req = URI("#{@base_url}/#{@region}/v1.2/champion")
|
19
|
+
make_request_and_validate(req, params)
|
20
|
+
end
|
21
|
+
|
22
|
+
def champion(*ids)
|
23
|
+
champions["champions"].select { |x| ids.include?(x["id"]) }
|
24
|
+
end
|
25
|
+
|
26
|
+
def recent_games(summoner_id, params={})
|
27
|
+
req = URI("#{@base_url}/#{@region}/v1.3/game/by-summoner/#{summoner_id}/recent")
|
28
|
+
make_request_and_validate(req, params)
|
29
|
+
end
|
30
|
+
|
31
|
+
def league(summoner_ids, params={})
|
32
|
+
req = URI("#{@base_url}/#{@region}/v2.5/league/by-summoner/#{summoner_ids.join(",")}")
|
33
|
+
make_request_and_validate(req, params)
|
34
|
+
end
|
35
|
+
|
36
|
+
def matchlist(summoner_id, params={})
|
15
37
|
req = URI("#{@base_url}/#{@region}/v2.2/matchlist/by-summoner/#{summoner_id}")
|
16
|
-
req
|
17
|
-
|
38
|
+
make_request_and_validate(req, params)
|
39
|
+
end
|
18
40
|
|
19
|
-
|
41
|
+
def latest_match(summoner_id)
|
42
|
+
matchlist({"begin": 0, "end": 1})["matches"].first
|
20
43
|
end
|
21
44
|
|
22
|
-
def
|
45
|
+
def static_data(type, params={})
|
23
46
|
req = URI("#{@base_url}/static-data/#{@region}/v1.2/#{type}")
|
24
|
-
req
|
25
|
-
resp = Net::HTTP.get_response(req)
|
26
|
-
|
27
|
-
validate_and_respond(resp){ JSON(resp.body) }
|
47
|
+
make_request_and_validate(req, params)
|
28
48
|
end
|
29
49
|
|
30
|
-
def
|
50
|
+
def match(match_id, params={})
|
31
51
|
req = URI("#{@base_url}/#{@region}/v2.2/match/#{match_id}")
|
32
|
-
req
|
33
|
-
resp = Net::HTTP.get_response(req)
|
34
|
-
|
35
|
-
validate_and_respond(resp){ JSON(resp.body) }
|
52
|
+
make_request_and_validate(req, params)
|
36
53
|
end
|
37
54
|
|
38
|
-
def
|
55
|
+
def summoner(name, params={})
|
39
56
|
req = URI("#{@base_url}/#{@region}/v1.4/summoner/by-name/#{name}")
|
40
|
-
req
|
41
|
-
|
42
|
-
|
43
|
-
|
57
|
+
make_request_and_validate(req, params)
|
58
|
+
end
|
59
|
+
|
60
|
+
def stats_ranked(summoner_id, params={})
|
61
|
+
req = URI("#{@base_url}/#{@region}/v1.3/stats/by-summoner/#{summoner_id}/ranked")
|
62
|
+
make_request_and_validate(req, params)
|
63
|
+
end
|
64
|
+
|
65
|
+
def stats_summary(summoner_id, params={})
|
66
|
+
req = URI("#{@base_url}/#{@region}/v1.3/stats/by-summoner/#{summoner_id}/summary")
|
67
|
+
make_request_and_validate(req, params)
|
68
|
+
end
|
69
|
+
|
70
|
+
private
|
71
|
+
def make_request_and_validate(req, params)
|
72
|
+
req.query = URI.encode_www_form(@base_params.merge! params)
|
73
|
+
resp = Net::HTTP.get_response(req)
|
74
|
+
|
75
|
+
validate_and_respond(resp){ JSON(resp.body) }
|
44
76
|
end
|
45
77
|
|
46
78
|
def validate_and_respond(resp, &data)
|
47
79
|
if resp.kind_of? Net::HTTPSuccess
|
48
80
|
yield
|
49
81
|
else
|
50
|
-
raise "#{resp.code} encountered from riot for #{resp.uri}"
|
82
|
+
raise RiotAPIException.new("#{resp.code} encountered from riot for #{resp.uri}")
|
51
83
|
end
|
52
84
|
end
|
53
85
|
end
|
86
|
+
|
87
|
+
class RiotAPIException < Exception
|
88
|
+
end
|