ruby_sightstone 0.2.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.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/ruby_sightstone.rb +53 -0
  3. metadata +44 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 6916fe0f7a05d98391c0885e4d6274a5f5b2bbca
4
+ data.tar.gz: b7eb67985d72d4ed996fb3f0fdfca1002a853982
5
+ SHA512:
6
+ metadata.gz: 2a77d6b40ddec4856b534b33c9148da7da582d08c9712d9995074487ed728f688a2699fd38364e1171868a6891950cac1f9493dbba0e87267c06458e5ac09d2a
7
+ data.tar.gz: b3f8fd0e8dd00f9cf7bed1da33beb31bed150707f0eb2b4c35cfde86d737db40eb96a2220f145ee5576076e7f008e14ebee595c09fa8ab090d9250c2685aaeb1
@@ -0,0 +1,53 @@
1
+ # @author Boyang Niu
2
+ # Lightweight wrapper for some of the Riot API
3
+ class RubySightstone
4
+ # Creates a new client to the Riot API given a key and a region
5
+ #
6
+ # @param api_key [String] the api key to be used with this client
7
+ # @param region [String] the region that this client will use to get responses (na, eu, kr, ...)
8
+ def initialize(api_key, region)
9
+ @base_params = {api_key: api_key}
10
+ @base_url = "https://na.api.pvp.net/api/lol"
11
+ @region = region
12
+ end
13
+
14
+ def get_latest_match_for_summoner(summoner_id)
15
+ 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)
18
+
19
+ validate_and_respond(resp){ JSON(resp.body)["matches"].first }
20
+ end
21
+
22
+ def get_static_data(type, id)
23
+ 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) }
28
+ end
29
+
30
+ def get_match_details(match_id)
31
+ 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) }
36
+ end
37
+
38
+ def get_summoner_id(name)
39
+ 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] }
44
+ end
45
+
46
+ def validate_and_respond(resp, &data)
47
+ if resp.kind_of? Net::HTTPSuccess
48
+ yield
49
+ else
50
+ raise "#{resp.code} encountered from riot for #{resp.uri}"
51
+ end
52
+ end
53
+ end
metadata ADDED
@@ -0,0 +1,44 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ruby_sightstone
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ platform: ruby
6
+ authors:
7
+ - Boyang Niu
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-10-25 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: A lightweight wrapper around the Riot API
14
+ email: boyangniu@gmail.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/ruby_sightstone.rb
20
+ homepage: http://rubygems.org/gems/ruby-sightstone
21
+ licenses:
22
+ - MIT
23
+ metadata: {}
24
+ post_install_message:
25
+ rdoc_options: []
26
+ require_paths:
27
+ - lib
28
+ required_ruby_version: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ required_rubygems_version: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ">="
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ requirements: []
39
+ rubyforge_project:
40
+ rubygems_version: 2.4.5
41
+ signing_key:
42
+ specification_version: 4
43
+ summary: Riot wrapper in ruby
44
+ test_files: []