hextech 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +9 -0
- data/.rspec +2 -0
- data/.rubocop.yml +17 -0
- data/CHANGELOG.md +54 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +134 -0
- data/LICENSE.md +21 -0
- data/README.md +50 -0
- data/bin/console +15 -0
- data/bin/setup +8 -0
- data/docs/logo.png +0 -0
- data/hextech.gemspec +41 -0
- data/lib/hextech/adapter.rb +46 -0
- data/lib/hextech/base_struct.rb +13 -0
- data/lib/hextech/errors.rb +26 -0
- data/lib/hextech/global/account/base.rb +25 -0
- data/lib/hextech/global/account/by_puuid.rb +30 -0
- data/lib/hextech/global/account/by_riot_id.rb +35 -0
- data/lib/hextech/global/account.rb +23 -0
- data/lib/hextech/global/active_shard.rb +43 -0
- data/lib/hextech/global/response/account/by_puuid.rb +17 -0
- data/lib/hextech/global/response/account/by_riot_id.rb +17 -0
- data/lib/hextech/global/response/active_shard.rb +15 -0
- data/lib/hextech/global.rb +8 -0
- data/lib/hextech/league/champion_rotation.rb +39 -0
- data/lib/hextech/league/champions.rb +35 -0
- data/lib/hextech/league/clash/all_tournaments.rb +29 -0
- data/lib/hextech/league/clash/base.rb +25 -0
- data/lib/hextech/league/clash/by_summoner_id.rb +30 -0
- data/lib/hextech/league/clash/by_tournament_id.rb +30 -0
- data/lib/hextech/league/clash/team_by_team_id.rb +30 -0
- data/lib/hextech/league/clash/tournament_by_team_id.rb +30 -0
- data/lib/hextech/league/clash.rb +38 -0
- data/lib/hextech/league/mastery/all_champions.rb +30 -0
- data/lib/hextech/league/mastery/base.rb +25 -0
- data/lib/hextech/league/mastery/by_champion.rb +31 -0
- data/lib/hextech/league/mastery/total_score.rb +26 -0
- data/lib/hextech/league/mastery.rb +28 -0
- data/lib/hextech/league/match/base.rb +25 -0
- data/lib/hextech/league/match/by_match_id.rb +26 -0
- data/lib/hextech/league/match/by_puuid.rb +26 -0
- data/lib/hextech/league/match/timeline.rb +26 -0
- data/lib/hextech/league/match.rb +28 -0
- data/lib/hextech/league/patches.rb +23 -0
- data/lib/hextech/league/response/active_games.rb +43 -0
- data/lib/hextech/league/response/champion_rotation.rb +15 -0
- data/lib/hextech/league/response/champions.rb +60 -0
- data/lib/hextech/league/response/clash/player.rb +18 -0
- data/lib/hextech/league/response/clash/team.rb +27 -0
- data/lib/hextech/league/response/clash/tournament.rb +25 -0
- data/lib/hextech/league/response/featured_games.rb +47 -0
- data/lib/hextech/league/response/mastery.rb +21 -0
- data/lib/hextech/league/response/status.rb +17 -0
- data/lib/hextech/league/response/summoner.rb +19 -0
- data/lib/hextech/league/spectator/active_games.rb +30 -0
- data/lib/hextech/league/spectator/base.rb +25 -0
- data/lib/hextech/league/spectator/featured_games.rb +29 -0
- data/lib/hextech/league/spectator.rb +23 -0
- data/lib/hextech/league/status.rb +39 -0
- data/lib/hextech/league/summoner/base.rb +29 -0
- data/lib/hextech/league/summoner/by_account_id.rb +26 -0
- data/lib/hextech/league/summoner/by_puuid.rb +26 -0
- data/lib/hextech/league/summoner/by_summoner_id.rb +26 -0
- data/lib/hextech/league/summoner/by_summoner_name.rb +30 -0
- data/lib/hextech/league/summoner.rb +33 -0
- data/lib/hextech/league/third_party_code.rb +36 -0
- data/lib/hextech/league.rb +27 -0
- data/lib/hextech/mixins/argument_checks.rb +13 -0
- data/lib/hextech/mixins/callable.rb +17 -0
- data/lib/hextech/mixins/transform_keys.rb +63 -0
- data/lib/hextech/response.rb +43 -0
- data/lib/hextech/send_request.rb +43 -0
- data/lib/hextech/valorant/response/status.rb +67 -0
- data/lib/hextech/valorant/status.rb +38 -0
- data/lib/hextech/valorant.rb +4 -0
- data/lib/hextech/version.rb +5 -0
- data/lib/hextech.rb +19 -0
- metadata +265 -0
@@ -0,0 +1,8 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'global/response/active_shard'
|
4
|
+
require_relative 'global/response/account/by_puuid'
|
5
|
+
require_relative 'global/response/account/by_riot_id'
|
6
|
+
|
7
|
+
require_relative 'global/account'
|
8
|
+
require_relative 'global/active_shard'
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
class ChampionRotation < Hextech::Adapter
|
6
|
+
|
7
|
+
REGIONS = %w[euw1 eun1 na1 oc1 kr br1 tr1 la2 la1 ru jp1].freeze
|
8
|
+
|
9
|
+
def initialize(region: 'euw1')
|
10
|
+
@region = region
|
11
|
+
|
12
|
+
super()
|
13
|
+
end
|
14
|
+
|
15
|
+
def call
|
16
|
+
validate_collection_for(collection: REGIONS, option: region)
|
17
|
+
|
18
|
+
super
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
attr_reader :region
|
24
|
+
|
25
|
+
def host
|
26
|
+
"https://#{region}.api.riotgames.com"
|
27
|
+
end
|
28
|
+
|
29
|
+
def path
|
30
|
+
'/lol/platform/v3/champion-rotations'
|
31
|
+
end
|
32
|
+
|
33
|
+
def response_class
|
34
|
+
Hextech::League::Response::ChampionRotation
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
class Champions < Hextech::Adapter
|
6
|
+
|
7
|
+
def initialize
|
8
|
+
@latest_patch = Hextech::League::Patches.new.latest
|
9
|
+
|
10
|
+
super()
|
11
|
+
end
|
12
|
+
|
13
|
+
def call
|
14
|
+
response = super
|
15
|
+
|
16
|
+
response[:data].each_with_object({}) do |(champion, data), hash|
|
17
|
+
hash[champion] = Hextech::League::Response::Champions.new(data)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
attr_reader :latest_patch
|
24
|
+
|
25
|
+
def host
|
26
|
+
'https://ddragon.leagueoflegends.com'
|
27
|
+
end
|
28
|
+
|
29
|
+
def path
|
30
|
+
"/cdn/#{latest_patch}/data/en_US/champion.json"
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
module Clash
|
6
|
+
class AllTournaments < Hextech::League::Clash::Base
|
7
|
+
|
8
|
+
def initialize(region:)
|
9
|
+
@region = region
|
10
|
+
|
11
|
+
super()
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
attr_reader :region
|
17
|
+
|
18
|
+
def path
|
19
|
+
'/lol/clash/v1/tournaments'
|
20
|
+
end
|
21
|
+
|
22
|
+
def response_class
|
23
|
+
Hextech::League::Response::Clash::Tournament
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
module Clash
|
6
|
+
class Base < Hextech::Adapter
|
7
|
+
|
8
|
+
REGIONS = %w[euw1 eun1 na1 oc1 kr br1 tr1 la2 la1 ru jp1].freeze
|
9
|
+
|
10
|
+
def call
|
11
|
+
validate_collection_for(collection: REGIONS, option: region)
|
12
|
+
|
13
|
+
super
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def host
|
19
|
+
"https://#{region}.api.riotgames.com"
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
module Clash
|
6
|
+
class BySummonerId < Hextech::League::Clash::Base
|
7
|
+
|
8
|
+
def initialize(summoner_id:, region:)
|
9
|
+
@summoner_id = summoner_id
|
10
|
+
@region = region
|
11
|
+
|
12
|
+
super()
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
attr_reader :summoner_id, :region
|
18
|
+
|
19
|
+
def path
|
20
|
+
"/lol/clash/v1/players/by-summoner/#{summoner_id}"
|
21
|
+
end
|
22
|
+
|
23
|
+
def response_class
|
24
|
+
Hextech::League::Response::Clash::Player
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
module Clash
|
6
|
+
class ByTournamentId < Hextech::League::Clash::Base
|
7
|
+
|
8
|
+
def initialize(tournament_id:, region:)
|
9
|
+
@tournament_id = tournament_id
|
10
|
+
@region = region
|
11
|
+
|
12
|
+
super()
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
attr_reader :tournament_id, :region
|
18
|
+
|
19
|
+
def path
|
20
|
+
"/lol/clash/v1/tournaments/#{tournament_id}"
|
21
|
+
end
|
22
|
+
|
23
|
+
def response_class
|
24
|
+
Hextech::League::Response::Clash::Tournament
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
module Clash
|
6
|
+
class TeamByTeamId < Hextech::League::Clash::Base
|
7
|
+
|
8
|
+
def initialize(team_id:, region:)
|
9
|
+
@team_id = team_id
|
10
|
+
@region = region
|
11
|
+
|
12
|
+
super()
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
attr_reader :team_id, :region
|
18
|
+
|
19
|
+
def path
|
20
|
+
"/lol/clash/v1/teams/#{team_id}"
|
21
|
+
end
|
22
|
+
|
23
|
+
def response_class
|
24
|
+
Hextech::League::Response::Clash::Team
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
module Clash
|
6
|
+
class TournamentByTeamId < Hextech::League::Clash::Base
|
7
|
+
|
8
|
+
def initialize(team_id:, region:)
|
9
|
+
@team_id = team_id
|
10
|
+
@region = region
|
11
|
+
|
12
|
+
super()
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
attr_reader :team_id, :region
|
18
|
+
|
19
|
+
def path
|
20
|
+
"/lol/clash/v1/tournaments/by-team/#{team_id}"
|
21
|
+
end
|
22
|
+
|
23
|
+
def response_class
|
24
|
+
Hextech::League::Response::Clash::Tournament
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'clash/base'
|
4
|
+
require_relative 'clash/all_tournaments'
|
5
|
+
require_relative 'clash/by_summoner_id'
|
6
|
+
require_relative 'clash/by_tournament_id'
|
7
|
+
require_relative 'clash/team_by_team_id'
|
8
|
+
require_relative 'clash/tournament_by_team_id'
|
9
|
+
|
10
|
+
module Hextech
|
11
|
+
module League
|
12
|
+
module Clash
|
13
|
+
class << self
|
14
|
+
|
15
|
+
def all_tournaments(region: 'euw1')
|
16
|
+
Clash::AllTournaments.call(region: region)
|
17
|
+
end
|
18
|
+
|
19
|
+
def by_summoner_id(summoner_id:, region: 'euw1')
|
20
|
+
Clash::BySummonerId.call(summoner_id: summoner_id, region: region)
|
21
|
+
end
|
22
|
+
|
23
|
+
def by_tournament_id(tournament_id:, region: 'euw1')
|
24
|
+
Clash::ByTournamentId.call(tournament_id: tournament_id, region: region)
|
25
|
+
end
|
26
|
+
|
27
|
+
def team_by_team_id(team_id:, region: 'euw1')
|
28
|
+
Clash::TeamByTeamId.call(team_id: team_id, region: region)
|
29
|
+
end
|
30
|
+
|
31
|
+
def tournament_by_team_id(team_id:, region: 'euw1')
|
32
|
+
Clash::TournamentByTeamId.call(team_id: team_id, region: region)
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
module Mastery
|
6
|
+
class AllChampions < Hextech::League::Mastery::Base
|
7
|
+
|
8
|
+
def initialize(summoner_id:, region:)
|
9
|
+
@summoner_id = summoner_id
|
10
|
+
@region = region
|
11
|
+
|
12
|
+
super()
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
attr_reader :summoner_id, :region
|
18
|
+
|
19
|
+
def path
|
20
|
+
"/lol/champion-mastery/v4/champion-masteries/by-summoner/#{summoner_id}"
|
21
|
+
end
|
22
|
+
|
23
|
+
def response_class
|
24
|
+
Hextech::League::Response::Mastery
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
module Mastery
|
6
|
+
class Base < Hextech::Adapter
|
7
|
+
|
8
|
+
REGIONS = %w[euw1 eun1 na1 oc1 kr br1 tr1 la2 la1 ru jp1].freeze
|
9
|
+
|
10
|
+
def call
|
11
|
+
validate_collection_for(collection: REGIONS, option: region)
|
12
|
+
|
13
|
+
super
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def host
|
19
|
+
"https://#{region}.api.riotgames.com"
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
module Mastery
|
6
|
+
class ByChampion < Hextech::League::Mastery::Base
|
7
|
+
|
8
|
+
def initialize(summoner_id:, champion_id:, region:)
|
9
|
+
@summoner_id = summoner_id
|
10
|
+
@champion_id = champion_id
|
11
|
+
@region = region
|
12
|
+
|
13
|
+
super()
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
attr_reader :summoner_id, :champion_id, :region
|
19
|
+
|
20
|
+
def path
|
21
|
+
"/lol/champion-mastery/v4/champion-masteries/by-summoner/#{summoner_id}/by-champion/#{champion_id}"
|
22
|
+
end
|
23
|
+
|
24
|
+
def response_class
|
25
|
+
Hextech::League::Response::Mastery
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
module Mastery
|
6
|
+
class TotalScore < Hextech::League::Mastery::Base
|
7
|
+
|
8
|
+
def initialize(summoner_id:, region:)
|
9
|
+
@summoner_id = summoner_id
|
10
|
+
@region = region
|
11
|
+
|
12
|
+
super()
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
attr_reader :summoner_id, :region
|
18
|
+
|
19
|
+
def path
|
20
|
+
"/lol/champion-mastery/v4/scores/by-summoner/#{summoner_id}"
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'mastery/base'
|
4
|
+
require_relative 'mastery/all_champions'
|
5
|
+
require_relative 'mastery/by_champion'
|
6
|
+
require_relative 'mastery/total_score'
|
7
|
+
|
8
|
+
module Hextech
|
9
|
+
module League
|
10
|
+
module Mastery
|
11
|
+
class << self
|
12
|
+
|
13
|
+
def all_champions(summoner_id:, region: 'euw1')
|
14
|
+
Mastery::AllChampions.call(summoner_id: summoner_id, region: region)
|
15
|
+
end
|
16
|
+
|
17
|
+
def by_champion(summoner_id:, champion_id:, region: 'euw1')
|
18
|
+
Mastery::ByChampion.call(summoner_id: summoner_id, champion_id: champion_id, region: region)
|
19
|
+
end
|
20
|
+
|
21
|
+
def total_score(summoner_id:, region: 'euw1')
|
22
|
+
Mastery::TotalScore.call(summoner_id: summoner_id, region: region)
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
module Match
|
6
|
+
class Base < Hextech::Adapter
|
7
|
+
|
8
|
+
REGIONS = %w[AMERICAS ASIA EUROPE].freeze
|
9
|
+
|
10
|
+
def call
|
11
|
+
validate_collection_for(collection: REGIONS, option: region)
|
12
|
+
|
13
|
+
super
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def host
|
19
|
+
"https://#{region}.api.riotgames.com"
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
module Match
|
6
|
+
class ByMatchId < Hextech::League::Match::Base
|
7
|
+
|
8
|
+
def initialize(match_id:, region:)
|
9
|
+
@match_id = match_id
|
10
|
+
@region = region
|
11
|
+
|
12
|
+
super()
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
attr_reader :match_id, :region
|
18
|
+
|
19
|
+
def path
|
20
|
+
"/lol/match/v5/matches/#{match_id}"
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
module Match
|
6
|
+
class ByPuuid < Hextech::League::Match::Base
|
7
|
+
|
8
|
+
def initialize(puuid:, region:)
|
9
|
+
@puuid = puuid
|
10
|
+
@region = region
|
11
|
+
|
12
|
+
super()
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
attr_reader :puuid, :region
|
18
|
+
|
19
|
+
def path
|
20
|
+
"/lol/match/v5/matches/by-puuid/#{puuid}/ids"
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
module Match
|
6
|
+
class Timeline < Hextech::League::Match::Base
|
7
|
+
|
8
|
+
def initialize(match_id:, region:)
|
9
|
+
@match_id = match_id
|
10
|
+
@region = region
|
11
|
+
|
12
|
+
super()
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
attr_reader :match_id, :region
|
18
|
+
|
19
|
+
def path
|
20
|
+
"/lol/match/v5/matches/#{match_id}/timeline"
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'match/base'
|
4
|
+
require_relative 'match/by_puuid'
|
5
|
+
require_relative 'match/by_match_id'
|
6
|
+
require_relative 'match/timeline'
|
7
|
+
|
8
|
+
module Hextech
|
9
|
+
module League
|
10
|
+
module Match
|
11
|
+
class << self
|
12
|
+
|
13
|
+
def by_match_id(match_id:, region: 'EUROPE')
|
14
|
+
Match::ByMatchId.call(match_id: match_id, region: region)
|
15
|
+
end
|
16
|
+
|
17
|
+
def by_puuid(puuid:, region: 'EUROPE')
|
18
|
+
Match::ByPuuid.call(puuid: puuid, region: region)
|
19
|
+
end
|
20
|
+
|
21
|
+
def timeline(match_id:, region: 'EUROPE')
|
22
|
+
Match::Timeline.call(match_id: match_id, region: region)
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
class Patches < Hextech::Adapter
|
6
|
+
|
7
|
+
def latest
|
8
|
+
call.first
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def host
|
14
|
+
'https://ddragon.leagueoflegends.com'
|
15
|
+
end
|
16
|
+
|
17
|
+
def path
|
18
|
+
'/api/versions.json'
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
module Response
|
6
|
+
class ActiveGames < Hextech::BaseStruct
|
7
|
+
|
8
|
+
attribute :game_mode, Types::String
|
9
|
+
attribute :game_length, Types::Integer
|
10
|
+
attribute :map_id, Types::Integer
|
11
|
+
attribute :game_type, Types::String
|
12
|
+
|
13
|
+
attribute :banned_champions, Types::Array do
|
14
|
+
attribute :pick_turn, Types::Integer
|
15
|
+
attribute :champion_id, Types::Integer
|
16
|
+
attribute :team_id, Types::Integer
|
17
|
+
end
|
18
|
+
|
19
|
+
attribute :game_id, Types::Integer
|
20
|
+
|
21
|
+
attribute :observers do
|
22
|
+
attribute :encryption_key, Types::String
|
23
|
+
end
|
24
|
+
|
25
|
+
attribute :game_queue_config_id, Types::Integer
|
26
|
+
attribute :game_start_time, Types::Integer
|
27
|
+
|
28
|
+
attribute :participants, Types::Array do
|
29
|
+
attribute :bot, Types::Bool
|
30
|
+
attribute :spell2_id, Types::Integer
|
31
|
+
attribute :profile_icon_id, Types::Integer
|
32
|
+
attribute :summoner_name, Types::String
|
33
|
+
attribute :champion_id, Types::Integer
|
34
|
+
attribute :team_id, Types::Integer
|
35
|
+
attribute :spell1_id, Types::Integer
|
36
|
+
end
|
37
|
+
|
38
|
+
attribute :platform_id, Types::String
|
39
|
+
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
module Response
|
6
|
+
class ChampionRotation < Hextech::BaseStruct
|
7
|
+
|
8
|
+
attribute :free_champion_ids, Types::Array
|
9
|
+
attribute :free_champion_ids_for_new_players, Types::Array
|
10
|
+
attribute :max_new_player_level, Types::Coercible::Integer
|
11
|
+
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|