riot_api_ruby 0.0.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 +15 -0
- data/lib/riot_api.rb +17 -0
- data/lib/riot_api/api.rb +47 -0
- data/lib/riot_api/requester.rb +27 -0
- data/lib/riot_api/strategies/champion.rb +26 -0
- data/lib/riot_api/strategies/default.rb +28 -0
- data/lib/riot_api/strategies/game.rb +22 -0
- data/lib/riot_api/strategies/league.rb +38 -0
- data/lib/riot_api/strategies/lol_static_data.rb +44 -0
- data/lib/riot_api/strategies/stats.rb +26 -0
- data/lib/riot_api/strategies/summoner.rb +49 -0
- data/lib/riot_api/strategies/team.rb +26 -0
- data/lib/riot_api/version.rb +5 -0
- data/spec/riot_api/api_spec.rb +54 -0
- data/spec/riot_api/requester_spec.rb +30 -0
- data/spec/riot_api/strategies/champion_spec.rb +21 -0
- data/spec/riot_api/strategies/default_spec.rb +33 -0
- data/spec/riot_api/strategies/game_spec.rb +16 -0
- data/spec/riot_api/strategies/league_spec.rb +36 -0
- data/spec/riot_api/strategies/lol_static_data_spec.rb +71 -0
- data/spec/riot_api/strategies/stats_spec.rb +21 -0
- data/spec/riot_api/strategies/summoner_spec.rb +36 -0
- data/spec/riot_api/strategies/team_spec.rb +21 -0
- data/spec/spec_helper.rb +3 -0
- metadata +107 -0
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
MWNhY2FiNGVhZmZmZWU5MGY1Yzg1NGEwMjcyN2M1OTFiYTg1NTNkMQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
YjFlNzk5OGNmNjljMjIxZDNiNmQxM2ExYzIzOTJhNjcyMDE0N2Q3ZA==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
ZTFkZGUwZGVjYmYyMDVlNzIwY2U2MzQyOTdkYWQyOTE3YjA0M2NiMTgxMTFm
|
10
|
+
OWRhNGI2MGVjZGNlYzMxMTJlMTRiNWMyNWVmOWU5NWZhNTE5NzVmNDJhMWM3
|
11
|
+
MTZiYWI3MWNjYWUzYWU4NDlmYjU5MzViYmY1YzBmMTk1Y2QwNjU=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
NjlmZWMxMTllMTQwOGUyNmRjNWZmOTg1MDU4MDZlMTQyMWJjNDM3NTcxZjYy
|
14
|
+
NmNiZTE0ZDM3ZjM5ZjhkNTM0YmM3Yjg0ZTA5YzVjNTg0YTk1ZTZjYjFiMmQ4
|
15
|
+
MmM3MTc0NjliNGE3MGVlMWIxMmE4MDAxNDdiMTI5OTUzMTc2OGQ=
|
data/lib/riot_api.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
module RiotAPI
|
2
|
+
require 'faraday'
|
3
|
+
require 'extlib'
|
4
|
+
|
5
|
+
require_relative 'riot_api/strategies/default'
|
6
|
+
require_relative 'riot_api/strategies/summoner'
|
7
|
+
require_relative 'riot_api/strategies/team'
|
8
|
+
require_relative 'riot_api/strategies/champion'
|
9
|
+
require_relative 'riot_api/strategies/game'
|
10
|
+
require_relative 'riot_api/strategies/league'
|
11
|
+
require_relative 'riot_api/strategies/stats'
|
12
|
+
require_relative 'riot_api/strategies/lol_static_data'
|
13
|
+
|
14
|
+
require_relative 'riot_api/api'
|
15
|
+
require_relative 'riot_api/requester'
|
16
|
+
|
17
|
+
end
|
data/lib/riot_api/api.rb
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
module RiotAPI
|
2
|
+
module API
|
3
|
+
|
4
|
+
class StrategyNotRegistered < StandardError; end
|
5
|
+
|
6
|
+
extend self
|
7
|
+
|
8
|
+
def key
|
9
|
+
@key
|
10
|
+
end
|
11
|
+
|
12
|
+
def setup(key)
|
13
|
+
@key = key
|
14
|
+
end
|
15
|
+
|
16
|
+
# register all strategies using the files in strategies folder
|
17
|
+
def register_all
|
18
|
+
dirs = Dir.entries File.join(File.expand_path(File.dirname(__FILE__)), "strategies")
|
19
|
+
dirs.delete(".")
|
20
|
+
dirs.delete("..")
|
21
|
+
dirs.map! { |dir| dir.sub(".rb", "") }
|
22
|
+
dirs.each { |stra| register(stra) }
|
23
|
+
end
|
24
|
+
|
25
|
+
# register a strategy
|
26
|
+
def register(strategy)
|
27
|
+
stra_sym = :"@#{strategy}"
|
28
|
+
stra = instance_variable_get stra_sym
|
29
|
+
if stra.nil?
|
30
|
+
strategy_class = eval("RiotAPI::Strategies::#{strategy.camel_case}")
|
31
|
+
instance_variable_set stra_sym, strategy_class.new.extend(RiotAPI::Requester)
|
32
|
+
define_method(strategy) { instance_variable_get stra_sym }
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
# call strategy with action and arguments
|
37
|
+
def call(strategy, action, *args)
|
38
|
+
stra = instance_variable_get :"@#{strategy}"
|
39
|
+
if stra.nil?
|
40
|
+
raise StrategyNotRegistered
|
41
|
+
else
|
42
|
+
stra.send action, args
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module RiotAPI
|
2
|
+
module Requester
|
3
|
+
|
4
|
+
def conn
|
5
|
+
@conn ||= Faraday.new
|
6
|
+
end
|
7
|
+
|
8
|
+
def call(action, *args, &block)
|
9
|
+
if action =~ /by_(.+)$/
|
10
|
+
url = self.send action, *args[0]
|
11
|
+
else
|
12
|
+
url = self.send action
|
13
|
+
end
|
14
|
+
response = conn.get url + "?api_key=#{API.key}"
|
15
|
+
response.body
|
16
|
+
end
|
17
|
+
|
18
|
+
def method_missing(meth, *args, &block)
|
19
|
+
if meth.to_s =~ /^find_(.+)$/
|
20
|
+
call($1, *args, &block)
|
21
|
+
else
|
22
|
+
super
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# champion-v1.2
|
2
|
+
|
3
|
+
module RiotAPI
|
4
|
+
module Strategies
|
5
|
+
|
6
|
+
class Champion < Default
|
7
|
+
|
8
|
+
def initialize(params={})
|
9
|
+
options = {
|
10
|
+
version: "v1.2",
|
11
|
+
type: "champion"
|
12
|
+
}.merge(params)
|
13
|
+
super options
|
14
|
+
end
|
15
|
+
|
16
|
+
def all
|
17
|
+
request_url
|
18
|
+
end
|
19
|
+
|
20
|
+
def by_id(id)
|
21
|
+
request_url + "/" + id
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module RiotAPI
|
2
|
+
module Strategies
|
3
|
+
class StrategyNotFound < StandardError; end
|
4
|
+
|
5
|
+
class Default
|
6
|
+
|
7
|
+
def initialize(params={})
|
8
|
+
@options = {
|
9
|
+
host: "https://prod.api.pvp.net/api",
|
10
|
+
game: "lol",
|
11
|
+
region: "na",
|
12
|
+
}.merge(params)
|
13
|
+
end
|
14
|
+
|
15
|
+
def api_url
|
16
|
+
@api_url ||= @options[:host] + "/" + @options[:game] + "/" + @options[:region]
|
17
|
+
end
|
18
|
+
|
19
|
+
def request_url
|
20
|
+
raise StrategyNotFound, "Strategy not provided!" \
|
21
|
+
if @options[:type].nil? || @options[:version].nil?
|
22
|
+
@request_url ||= api_url + "/" + @options[:version] + "/" + @options[:type]
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# game-v1.3
|
2
|
+
|
3
|
+
module RiotAPI
|
4
|
+
module Strategies
|
5
|
+
|
6
|
+
class Game < Default
|
7
|
+
|
8
|
+
def initialize(params={})
|
9
|
+
options = {
|
10
|
+
version: "v1.3",
|
11
|
+
type: "game"
|
12
|
+
}.merge(params)
|
13
|
+
super options
|
14
|
+
end
|
15
|
+
|
16
|
+
def recent_by_summoner_id(id)
|
17
|
+
request_url + "/by-summoner/" + id + "/recent"
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# league-v2.4
|
2
|
+
|
3
|
+
module RiotAPI
|
4
|
+
module Strategies
|
5
|
+
|
6
|
+
class League < Default
|
7
|
+
|
8
|
+
def initialize(params={})
|
9
|
+
options = {
|
10
|
+
version: "v2.4",
|
11
|
+
type: "league"
|
12
|
+
}.merge(params)
|
13
|
+
super options
|
14
|
+
end
|
15
|
+
|
16
|
+
def by_summoner_ids(ids)
|
17
|
+
request_url + "/by-summoner/" + ids
|
18
|
+
end
|
19
|
+
|
20
|
+
def entries_by_summoner_ids(ids)
|
21
|
+
request_url + "/by-summoner/" + ids + "/entry"
|
22
|
+
end
|
23
|
+
|
24
|
+
def by_team_ids(ids)
|
25
|
+
request_url + "/by-team/" + ids
|
26
|
+
end
|
27
|
+
|
28
|
+
def entries_by_team_ids(ids)
|
29
|
+
request_url + "/by-team/" + ids + "/entry"
|
30
|
+
end
|
31
|
+
|
32
|
+
def challenger
|
33
|
+
request_url + "/challenger"
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# lol-static-data-v1.2
|
2
|
+
|
3
|
+
module RiotAPI
|
4
|
+
module Strategies
|
5
|
+
|
6
|
+
class LolStaticData < Default
|
7
|
+
|
8
|
+
def initialize(params={})
|
9
|
+
options = {
|
10
|
+
version: "v1.2",
|
11
|
+
type: "static-data"
|
12
|
+
}.merge(params)
|
13
|
+
super options
|
14
|
+
end
|
15
|
+
|
16
|
+
[:champion, :item, :mastery, :rune, :summoner_spell].each do |action|
|
17
|
+
meth = action.to_s
|
18
|
+
meth_dash = meth.sub('_','-')
|
19
|
+
define_method(meth) { request_url + "/#{meth_dash}" }
|
20
|
+
define_method("#{meth}_by_id") do |id|
|
21
|
+
request_url + "/#{meth_dash}/" + id
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def api_url
|
26
|
+
@api_url ||= @options[:host] + "/" + @options[:game] + "/" + \
|
27
|
+
@options[:type] + "/" + @options[:region]
|
28
|
+
end
|
29
|
+
|
30
|
+
def request_url
|
31
|
+
@request_url ||= api_url + "/" + @options[:version]
|
32
|
+
end
|
33
|
+
|
34
|
+
def versions
|
35
|
+
request_url + "/versions"
|
36
|
+
end
|
37
|
+
|
38
|
+
def realm
|
39
|
+
request_url + "/realm"
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# stats-v2.3
|
2
|
+
|
3
|
+
module RiotAPI
|
4
|
+
module Strategies
|
5
|
+
|
6
|
+
class Stats < Default
|
7
|
+
|
8
|
+
def initialize(params={})
|
9
|
+
options = {
|
10
|
+
version: "v1.3",
|
11
|
+
type: "stats"
|
12
|
+
}.merge(params)
|
13
|
+
super options
|
14
|
+
end
|
15
|
+
|
16
|
+
def ranked_by_summoner_id(id)
|
17
|
+
request_url + "/by-summoner/" + id + "/ranked"
|
18
|
+
end
|
19
|
+
|
20
|
+
def summary_by_summoner_id(id)
|
21
|
+
request_url + "/by-summoner/" + id + "/summary"
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# summoner-v1.4
|
2
|
+
|
3
|
+
module RiotAPI
|
4
|
+
module Strategies
|
5
|
+
|
6
|
+
class Summoner < Default
|
7
|
+
|
8
|
+
def initialize(params={})
|
9
|
+
options = {
|
10
|
+
version: "v1.4",
|
11
|
+
type: "summoner"
|
12
|
+
}.merge(params)
|
13
|
+
super options
|
14
|
+
end
|
15
|
+
|
16
|
+
# Get summoner objects mapped by standardized summoner name
|
17
|
+
# for a given list of summoner names
|
18
|
+
def by_names(names)
|
19
|
+
request_url + "/by-name/" + names
|
20
|
+
end
|
21
|
+
|
22
|
+
# Get summoner objects mapped by summoner ID for a given
|
23
|
+
# list of summoner IDs
|
24
|
+
def by_ids(ids)
|
25
|
+
request_url + "/" + ids
|
26
|
+
end
|
27
|
+
|
28
|
+
# Get mastery pages mapped by summoner ID for a given list
|
29
|
+
# of summoner IDs
|
30
|
+
def masteries_by_ids(ids)
|
31
|
+
request_url + "/" + ids + "/masteries"
|
32
|
+
end
|
33
|
+
|
34
|
+
# Get summoner names mapped by summoner ID for a given list
|
35
|
+
# of summoner IDs
|
36
|
+
def names_by_ids(ids)
|
37
|
+
request_url + "/" + ids + "/name"
|
38
|
+
end
|
39
|
+
|
40
|
+
# Get rune pages mapped by summoner ID for a given list
|
41
|
+
# of summoner IDs
|
42
|
+
def runes_by_ids(ids)
|
43
|
+
request_url + "/" + ids + "/runes"
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# team-v2.3
|
2
|
+
|
3
|
+
module RiotAPI
|
4
|
+
module Strategies
|
5
|
+
|
6
|
+
class Team < Default
|
7
|
+
|
8
|
+
def initialize(params={})
|
9
|
+
options = {
|
10
|
+
version: "v2.3",
|
11
|
+
type: "team"
|
12
|
+
}.merge(params)
|
13
|
+
super options
|
14
|
+
end
|
15
|
+
|
16
|
+
def by_summoner_ids(ids)
|
17
|
+
request_url + "/by-summoner/" + ids
|
18
|
+
end
|
19
|
+
|
20
|
+
def by_ids(ids)
|
21
|
+
request_url + "/" + ids
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe RiotAPI::API do
|
4
|
+
|
5
|
+
before { RiotAPI::API.setup("abc") }
|
6
|
+
|
7
|
+
it "returns key" do
|
8
|
+
RiotAPI::API.key.should eq("abc")
|
9
|
+
end
|
10
|
+
|
11
|
+
let(:summoner) { RiotAPI::Strategies::Summoner.new }
|
12
|
+
|
13
|
+
describe "#call" do
|
14
|
+
|
15
|
+
it "raise strategy not registered error" do
|
16
|
+
expect { RiotAPI::API.call("summoner", "find_by_names", "1") }.to \
|
17
|
+
raise_error(RiotAPI::API::StrategyNotRegistered)
|
18
|
+
end
|
19
|
+
|
20
|
+
describe "#registed strategy" do
|
21
|
+
|
22
|
+
before do
|
23
|
+
RiotAPI::API.register("summoner")
|
24
|
+
class MockFaraday; def get(url); OpenStruct.new(body: "foo"); end; end
|
25
|
+
Faraday.stub(:new) { MockFaraday.new }
|
26
|
+
end
|
27
|
+
|
28
|
+
it "calls summoner's method" do
|
29
|
+
expect(RiotAPI::API.summoner).to \
|
30
|
+
receive(:by_names).with("1").and_return("url")
|
31
|
+
|
32
|
+
RiotAPI::API.call("summoner", "find_by_names", "1")
|
33
|
+
end
|
34
|
+
|
35
|
+
it "uses summoner directly" do
|
36
|
+
expect(RiotAPI::API.summoner).to \
|
37
|
+
receive(:by_names).with("1").and_return("url")
|
38
|
+
|
39
|
+
RiotAPI::API.summoner.find_by_names "1"
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
describe "#register_all" do
|
45
|
+
before { RiotAPI::API.register_all }
|
46
|
+
|
47
|
+
it "registers all strategies" do
|
48
|
+
RiotAPI::API.respond_to?(:team).should be(true)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe RiotAPI::Requester do
|
4
|
+
|
5
|
+
let(:request_url) { "https://prod.api.pvp.net/api/lol/na/v1.4/summoner/by-name/tiqoo" }
|
6
|
+
let(:mock_strategy) { OpenStruct.new summoner: request_url }
|
7
|
+
let(:requester) { mock_strategy.extend(RiotAPI::Requester) }
|
8
|
+
let(:conn) { requester.conn }
|
9
|
+
let(:file) { File.read File.join(File.expand_path(File.dirname(__FILE__)), "../fixtures/summoner.json") }
|
10
|
+
let(:response) { OpenStruct.new body: JSON.parse(file) }
|
11
|
+
|
12
|
+
before do
|
13
|
+
RiotAPI::API.stub(:key) { "abc" }
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "#find" do
|
17
|
+
|
18
|
+
it "calls only when find is present" do
|
19
|
+
url = "#{request_url}?api_key=abc"
|
20
|
+
expect(conn).to receive(:get).with(url).and_return(response)
|
21
|
+
requester.find_summoner
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'returns error if strategy do not respond to the action' do
|
25
|
+
expect{ requester.find_unkown }.to raise_error
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe RiotAPI::Strategies::Champion do
|
4
|
+
|
5
|
+
let(:strategy) { RiotAPI::Strategies::Champion.new }
|
6
|
+
|
7
|
+
it "returns request url" do
|
8
|
+
strategy.request_url.should eq("https://prod.api.pvp.net/api/lol/na/v1.2/champion")
|
9
|
+
end
|
10
|
+
|
11
|
+
it "returns all champions url" do
|
12
|
+
strategy.all.should \
|
13
|
+
eq("https://prod.api.pvp.net/api/lol/na/v1.2/champion")
|
14
|
+
end
|
15
|
+
|
16
|
+
it "returns by champion id url" do
|
17
|
+
strategy.by_id("c1").should \
|
18
|
+
eq("https://prod.api.pvp.net/api/lol/na/v1.2/champion/c1")
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe RiotAPI::Strategies::Default do
|
4
|
+
|
5
|
+
let(:strategy) { RiotAPI::Strategies::Default.new(type: "default", version: "0.1") }
|
6
|
+
|
7
|
+
it "returns api url" do
|
8
|
+
strategy.api_url.should eq("https://prod.api.pvp.net/api/lol/na")
|
9
|
+
end
|
10
|
+
|
11
|
+
it "returns request url" do
|
12
|
+
strategy.request_url.should eq("https://prod.api.pvp.net/api/lol/na/0.1/default")
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "#raise_error" do
|
16
|
+
|
17
|
+
it "raise strategy not found if type is not provided" do
|
18
|
+
expect { RiotAPI::Strategies::Default.new.request_url }.to \
|
19
|
+
raise_error(RiotAPI::Strategies::StrategyNotFound)
|
20
|
+
end
|
21
|
+
|
22
|
+
it "raise strategy not found if version is not provided" do
|
23
|
+
expect { RiotAPI::Strategies::Default.new(type: "default").request_url }.to \
|
24
|
+
raise_error(RiotAPI::Strategies::StrategyNotFound)
|
25
|
+
end
|
26
|
+
|
27
|
+
it "raise error if method is not provided" do
|
28
|
+
expect { strategy.send "unkown method" }.to raise_error
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe RiotAPI::Strategies::Game do
|
4
|
+
|
5
|
+
let(:strategy) { RiotAPI::Strategies::Game.new }
|
6
|
+
|
7
|
+
it "returns request url" do
|
8
|
+
strategy.request_url.should eq("https://prod.api.pvp.net/api/lol/na/v1.3/game")
|
9
|
+
end
|
10
|
+
|
11
|
+
it "returns recent games by summoner url" do
|
12
|
+
strategy.recent_by_summoner_id("1").should \
|
13
|
+
eq("https://prod.api.pvp.net/api/lol/na/v1.3/game/by-summoner/1/recent")
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe RiotAPI::Strategies::League do
|
4
|
+
|
5
|
+
let(:strategy) { RiotAPI::Strategies::League.new }
|
6
|
+
|
7
|
+
it "returns request url" do
|
8
|
+
strategy.request_url.should eq("https://prod.api.pvp.net/api/lol/na/v2.4/league")
|
9
|
+
end
|
10
|
+
|
11
|
+
it "returns by summoner ids url" do
|
12
|
+
strategy.by_summoner_ids("1,2").should \
|
13
|
+
eq("https://prod.api.pvp.net/api/lol/na/v2.4/league/by-summoner/1,2")
|
14
|
+
end
|
15
|
+
|
16
|
+
it "returns league entries by summoner ids url" do
|
17
|
+
strategy.entries_by_summoner_ids("1,2").should \
|
18
|
+
eq("https://prod.api.pvp.net/api/lol/na/v2.4/league/by-summoner/1,2/entry")
|
19
|
+
end
|
20
|
+
|
21
|
+
it "returns by team ids url" do
|
22
|
+
strategy.by_team_ids("t1,t2").should \
|
23
|
+
eq("https://prod.api.pvp.net/api/lol/na/v2.4/league/by-team/t1,t2")
|
24
|
+
end
|
25
|
+
|
26
|
+
it "returns entries by team ids url" do
|
27
|
+
strategy.entries_by_team_ids("t1,t2").should \
|
28
|
+
eq("https://prod.api.pvp.net/api/lol/na/v2.4/league/by-team/t1,t2/entry")
|
29
|
+
end
|
30
|
+
|
31
|
+
it "returns challenger tier leagues" do
|
32
|
+
strategy.challenger.should \
|
33
|
+
eq("https://prod.api.pvp.net/api/lol/na/v2.4/league/challenger")
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
@@ -0,0 +1,71 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe RiotAPI::Strategies::LolStaticData do
|
4
|
+
|
5
|
+
let(:strategy) { RiotAPI::Strategies::LolStaticData.new }
|
6
|
+
|
7
|
+
it "returns request url" do
|
8
|
+
strategy.request_url.should eq("https://prod.api.pvp.net/api/lol/static-data/na/v1.2")
|
9
|
+
end
|
10
|
+
|
11
|
+
it "returns versions" do
|
12
|
+
strategy.versions.should \
|
13
|
+
eq("https://prod.api.pvp.net/api/lol/static-data/na/v1.2/versions")
|
14
|
+
end
|
15
|
+
|
16
|
+
it "returns realm" do
|
17
|
+
strategy.realm.should \
|
18
|
+
eq("https://prod.api.pvp.net/api/lol/static-data/na/v1.2/realm")
|
19
|
+
end
|
20
|
+
|
21
|
+
it "returns champion list" do
|
22
|
+
strategy.champion.should \
|
23
|
+
eq("https://prod.api.pvp.net/api/lol/static-data/na/v1.2/champion")
|
24
|
+
end
|
25
|
+
|
26
|
+
it "returns champion by id" do
|
27
|
+
strategy.champion_by_id("1").should \
|
28
|
+
eq("https://prod.api.pvp.net/api/lol/static-data/na/v1.2/champion/1")
|
29
|
+
end
|
30
|
+
|
31
|
+
it "returns item list" do
|
32
|
+
strategy.item.should \
|
33
|
+
eq("https://prod.api.pvp.net/api/lol/static-data/na/v1.2/item")
|
34
|
+
end
|
35
|
+
|
36
|
+
it "returns item by id" do
|
37
|
+
strategy.item_by_id("1").should \
|
38
|
+
eq("https://prod.api.pvp.net/api/lol/static-data/na/v1.2/item/1")
|
39
|
+
end
|
40
|
+
|
41
|
+
it "returns mastery list" do
|
42
|
+
strategy.mastery.should \
|
43
|
+
eq("https://prod.api.pvp.net/api/lol/static-data/na/v1.2/mastery")
|
44
|
+
end
|
45
|
+
|
46
|
+
it "returns mastery by id" do
|
47
|
+
strategy.mastery_by_id("1").should \
|
48
|
+
eq("https://prod.api.pvp.net/api/lol/static-data/na/v1.2/mastery/1")
|
49
|
+
end
|
50
|
+
|
51
|
+
it "returns rune list" do
|
52
|
+
strategy.rune.should \
|
53
|
+
eq("https://prod.api.pvp.net/api/lol/static-data/na/v1.2/rune")
|
54
|
+
end
|
55
|
+
|
56
|
+
it "returns rune by id" do
|
57
|
+
strategy.rune_by_id("1").should \
|
58
|
+
eq("https://prod.api.pvp.net/api/lol/static-data/na/v1.2/rune/1")
|
59
|
+
end
|
60
|
+
|
61
|
+
it "returns summoner-spell list" do
|
62
|
+
strategy.summoner_spell.should \
|
63
|
+
eq("https://prod.api.pvp.net/api/lol/static-data/na/v1.2/summoner-spell")
|
64
|
+
end
|
65
|
+
|
66
|
+
it "returns summoner-spell by id" do
|
67
|
+
strategy.summoner_spell_by_id("1").should \
|
68
|
+
eq("https://prod.api.pvp.net/api/lol/static-data/na/v1.2/summoner-spell/1")
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe RiotAPI::Strategies::Stats do
|
4
|
+
|
5
|
+
let(:strategy) { RiotAPI::Strategies::Stats.new }
|
6
|
+
|
7
|
+
it "returns request url" do
|
8
|
+
strategy.request_url.should eq("https://prod.api.pvp.net/api/lol/na/v1.3/stats")
|
9
|
+
end
|
10
|
+
|
11
|
+
it "returns ranked by-summoner url" do
|
12
|
+
strategy.ranked_by_summoner_id("1").should \
|
13
|
+
eq("https://prod.api.pvp.net/api/lol/na/v1.3/stats/by-summoner/1/ranked")
|
14
|
+
end
|
15
|
+
|
16
|
+
it "returns summary by-summoner url" do
|
17
|
+
strategy.summary_by_summoner_id("1").should \
|
18
|
+
eq("https://prod.api.pvp.net/api/lol/na/v1.3/stats/by-summoner/1/summary")
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe RiotAPI::Strategies::Summoner do
|
4
|
+
|
5
|
+
let(:strategy) { RiotAPI::Strategies::Summoner.new }
|
6
|
+
|
7
|
+
it "returns request url" do
|
8
|
+
strategy.request_url.should eq("https://prod.api.pvp.net/api/lol/na/v1.4/summoner")
|
9
|
+
end
|
10
|
+
|
11
|
+
it "returns by-name url" do
|
12
|
+
strategy.by_names("tiqoo,lanjj").should \
|
13
|
+
eq("https://prod.api.pvp.net/api/lol/na/v1.4/summoner/by-name/tiqoo,lanjj")
|
14
|
+
end
|
15
|
+
|
16
|
+
it "returns by ids url" do
|
17
|
+
strategy.by_ids("1,2").should \
|
18
|
+
eq("https://prod.api.pvp.net/api/lol/na/v1.4/summoner/1,2")
|
19
|
+
end
|
20
|
+
|
21
|
+
it "returns by masteries url" do
|
22
|
+
strategy.masteries_by_ids("1,2").should \
|
23
|
+
eq("https://prod.api.pvp.net/api/lol/na/v1.4/summoner/1,2/masteries")
|
24
|
+
end
|
25
|
+
|
26
|
+
it "returns by names url" do
|
27
|
+
strategy.names_by_ids("1,2").should \
|
28
|
+
eq("https://prod.api.pvp.net/api/lol/na/v1.4/summoner/1,2/name")
|
29
|
+
end
|
30
|
+
|
31
|
+
it "returns by runes url" do
|
32
|
+
strategy.runes_by_ids("1,2").should \
|
33
|
+
eq("https://prod.api.pvp.net/api/lol/na/v1.4/summoner/1,2/runes")
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe RiotAPI::Strategies::Team do
|
4
|
+
|
5
|
+
let(:strategy) { RiotAPI::Strategies::Team.new }
|
6
|
+
|
7
|
+
it "returns request url" do
|
8
|
+
strategy.request_url.should eq("https://prod.api.pvp.net/api/lol/na/v2.3/team")
|
9
|
+
end
|
10
|
+
|
11
|
+
it "returns by-summoner url" do
|
12
|
+
strategy.by_summoner_ids("1,2").should \
|
13
|
+
eq("https://prod.api.pvp.net/api/lol/na/v2.3/team/by-summoner/1,2")
|
14
|
+
end
|
15
|
+
|
16
|
+
it "returns by team ids url" do
|
17
|
+
strategy.by_ids("team1,team2").should \
|
18
|
+
eq("https://prod.api.pvp.net/api/lol/na/v2.3/team/team1,team2")
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,107 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: riot_api_ruby
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Qi He
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-05-28 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: faraday
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.9.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.9.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: extlib
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.9.16
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.9.16
|
41
|
+
description: ! ' Yet another ruby Riot game league of legend api wrapper.
|
42
|
+
|
43
|
+
'
|
44
|
+
email: qihe229@gmail.com
|
45
|
+
executables: []
|
46
|
+
extensions: []
|
47
|
+
extra_rdoc_files: []
|
48
|
+
files:
|
49
|
+
- lib/riot_api.rb
|
50
|
+
- lib/riot_api/api.rb
|
51
|
+
- lib/riot_api/requester.rb
|
52
|
+
- lib/riot_api/strategies/champion.rb
|
53
|
+
- lib/riot_api/strategies/default.rb
|
54
|
+
- lib/riot_api/strategies/game.rb
|
55
|
+
- lib/riot_api/strategies/league.rb
|
56
|
+
- lib/riot_api/strategies/lol_static_data.rb
|
57
|
+
- lib/riot_api/strategies/stats.rb
|
58
|
+
- lib/riot_api/strategies/summoner.rb
|
59
|
+
- lib/riot_api/strategies/team.rb
|
60
|
+
- lib/riot_api/version.rb
|
61
|
+
- spec/riot_api/api_spec.rb
|
62
|
+
- spec/riot_api/requester_spec.rb
|
63
|
+
- spec/riot_api/strategies/champion_spec.rb
|
64
|
+
- spec/riot_api/strategies/default_spec.rb
|
65
|
+
- spec/riot_api/strategies/game_spec.rb
|
66
|
+
- spec/riot_api/strategies/league_spec.rb
|
67
|
+
- spec/riot_api/strategies/lol_static_data_spec.rb
|
68
|
+
- spec/riot_api/strategies/stats_spec.rb
|
69
|
+
- spec/riot_api/strategies/summoner_spec.rb
|
70
|
+
- spec/riot_api/strategies/team_spec.rb
|
71
|
+
- spec/spec_helper.rb
|
72
|
+
homepage: http://github.com/he9qi/riot_api
|
73
|
+
licenses:
|
74
|
+
- MIT
|
75
|
+
metadata: {}
|
76
|
+
post_install_message:
|
77
|
+
rdoc_options: []
|
78
|
+
require_paths:
|
79
|
+
- lib
|
80
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - ! '>='
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: '0'
|
85
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ! '>='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
requirements: []
|
91
|
+
rubyforge_project:
|
92
|
+
rubygems_version: 2.2.2
|
93
|
+
signing_key:
|
94
|
+
specification_version: 4
|
95
|
+
summary: Ruby Riot Game API Wrapper.
|
96
|
+
test_files:
|
97
|
+
- spec/riot_api/api_spec.rb
|
98
|
+
- spec/riot_api/requester_spec.rb
|
99
|
+
- spec/riot_api/strategies/champion_spec.rb
|
100
|
+
- spec/riot_api/strategies/default_spec.rb
|
101
|
+
- spec/riot_api/strategies/game_spec.rb
|
102
|
+
- spec/riot_api/strategies/league_spec.rb
|
103
|
+
- spec/riot_api/strategies/lol_static_data_spec.rb
|
104
|
+
- spec/riot_api/strategies/stats_spec.rb
|
105
|
+
- spec/riot_api/strategies/summoner_spec.rb
|
106
|
+
- spec/riot_api/strategies/team_spec.rb
|
107
|
+
- spec/spec_helper.rb
|