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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/ruby_sightstone.rb +55 -20
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6916fe0f7a05d98391c0885e4d6274a5f5b2bbca
4
- data.tar.gz: b7eb67985d72d4ed996fb3f0fdfca1002a853982
3
+ metadata.gz: 4e5763dac26451fb0e9d488eaa1a192051d2f006
4
+ data.tar.gz: 81e05bb7ad0be548db2c6d8dee83a759613bd446
5
5
  SHA512:
6
- metadata.gz: 2a77d6b40ddec4856b534b33c9148da7da582d08c9712d9995074487ed728f688a2699fd38364e1171868a6891950cac1f9493dbba0e87267c06458e5ac09d2a
7
- data.tar.gz: b3f8fd0e8dd00f9cf7bed1da33beb31bed150707f0eb2b4c35cfde86d737db40eb96a2220f145ee5576076e7f008e14ebee595c09fa8ab090d9250c2685aaeb1
6
+ metadata.gz: 6718382f7ff35dfe0257632c2918bfcca8d7a0bc21e574d6b30cfca6d5e816939db055ed14fd804cd6ede3b9f5fc440a6a6fd9f655fed3017093d3d089452696
7
+ data.tar.gz: 45f1a39810b668d4150646a23425ebad7a924118df11145cc3e49a58b54aa035cce3c00e4b1a46140be0919b2c63f484c2078d6ef8011c5e41044156903d5202
@@ -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 get_latest_match_for_summoner(summoner_id)
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.query = URI.encode_www_form(@base_params.merge!({beginIndex: 0, endIndex: 1}))
17
- resp = Net::HTTP.get_response(req)
38
+ make_request_and_validate(req, params)
39
+ end
18
40
 
19
- validate_and_respond(resp){ JSON(resp.body)["matches"].first }
41
+ def latest_match(summoner_id)
42
+ matchlist({"begin": 0, "end": 1})["matches"].first
20
43
  end
21
44
 
22
- def get_static_data(type, id)
45
+ def static_data(type, params={})
23
46
  req = URI("#{@base_url}/static-data/#{@region}/v1.2/#{type}")
24
- req.query = URI.encode_www_form(@base_params.merge!({beginIndex: 0, endIndex: 1}))
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 get_match_details(match_id)
50
+ def match(match_id, params={})
31
51
  req = URI("#{@base_url}/#{@region}/v2.2/match/#{match_id}")
32
- req.query = URI.encode_www_form(@base_params)
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 get_summoner_id(name)
55
+ def summoner(name, params={})
39
56
  req = URI("#{@base_url}/#{@region}/v1.4/summoner/by-name/#{name}")
40
- req.query = URI.encode_www_form(@base_params)
41
- resp = Net::HTTP.get_response(req)
42
-
43
- validate_and_respond(resp){ JSON(resp.body)[name] }
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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_sightstone
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Boyang Niu