blizzard_api 0.5.1 → 0.5.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +21 -0
  3. data/CHANGELOG.md +22 -0
  4. data/Gemfile.lock +16 -16
  5. data/README.md +58 -218
  6. data/blizzard_api.gemspec +6 -4
  7. data/lib/blizzard_api/diablo/community/act.rb +2 -2
  8. data/lib/blizzard_api/diablo/community/artisan.rb +2 -2
  9. data/lib/blizzard_api/diablo/community/character.rb +2 -2
  10. data/lib/blizzard_api/diablo/community/follower.rb +1 -1
  11. data/lib/blizzard_api/diablo/community/item.rb +1 -1
  12. data/lib/blizzard_api/diablo/community/item_type.rb +2 -2
  13. data/lib/blizzard_api/diablo/community/profile.rb +4 -4
  14. data/lib/blizzard_api/diablo/game_data/generic_data_endpoint.rb +3 -3
  15. data/lib/blizzard_api/hearthstone/game_data/back.rb +1 -1
  16. data/lib/blizzard_api/hearthstone/game_data/card.rb +2 -2
  17. data/lib/blizzard_api/hearthstone/game_data/generic_data_endpoint.rb +2 -2
  18. data/lib/blizzard_api/request.rb +3 -3
  19. data/lib/blizzard_api/starcraft.rb +7 -0
  20. data/lib/blizzard_api/starcraft/community/account.rb +1 -1
  21. data/lib/blizzard_api/starcraft/community/ladder.rb +2 -2
  22. data/lib/blizzard_api/starcraft/community/legacy.rb +88 -0
  23. data/lib/blizzard_api/starcraft/community/profile.rb +5 -5
  24. data/lib/blizzard_api/starcraft/game_data/league.rb +1 -1
  25. data/lib/blizzard_api/version.rb +1 -1
  26. data/lib/blizzard_api/wow.rb +16 -7
  27. data/lib/blizzard_api/wow/game_data/achievement.rb +3 -3
  28. data/lib/blizzard_api/wow/game_data/auction.rb +1 -1
  29. data/lib/blizzard_api/wow/game_data/azerite_essence.rb +1 -1
  30. data/lib/blizzard_api/wow/game_data/covenant.rb +79 -0
  31. data/lib/blizzard_api/wow/game_data/creature.rb +6 -6
  32. data/lib/blizzard_api/wow/game_data/generic_data_endpoint.rb +3 -3
  33. data/lib/blizzard_api/wow/game_data/guild_crest.rb +2 -2
  34. data/lib/blizzard_api/wow/game_data/item.rb +6 -6
  35. data/lib/blizzard_api/wow/game_data/journal.rb +8 -8
  36. data/lib/blizzard_api/wow/game_data/modified_crafting.rb +4 -4
  37. data/lib/blizzard_api/wow/game_data/mythic_keystone.rb +6 -6
  38. data/lib/blizzard_api/wow/game_data/mythic_keystone_affix.rb +1 -1
  39. data/lib/blizzard_api/wow/game_data/mythic_keystone_leaderboard.rb +2 -2
  40. data/lib/blizzard_api/wow/game_data/mythic_raid_leaderboard.rb +1 -1
  41. data/lib/blizzard_api/wow/game_data/pet.rb +4 -4
  42. data/lib/blizzard_api/wow/game_data/playable_class.rb +4 -4
  43. data/lib/blizzard_api/wow/game_data/playable_specialization.rb +2 -2
  44. data/lib/blizzard_api/wow/game_data/profession.rb +4 -4
  45. data/lib/blizzard_api/wow/game_data/pvp_season.rb +3 -3
  46. data/lib/blizzard_api/wow/game_data/pvp_tier.rb +1 -1
  47. data/lib/blizzard_api/wow/game_data/quest.rb +6 -6
  48. data/lib/blizzard_api/wow/game_data/reputation.rb +4 -4
  49. data/lib/blizzard_api/wow/game_data/spell.rb +1 -1
  50. data/lib/blizzard_api/wow/game_data/talent.rb +2 -2
  51. data/lib/blizzard_api/wow/game_data/tech_talent.rb +57 -0
  52. data/lib/blizzard_api/wow/game_data/wow_token.rb +1 -1
  53. data/lib/blizzard_api/wow/profile/character_profile.rb +63 -49
  54. data/lib/blizzard_api/wow/profile/guild.rb +8 -8
  55. data/lib/blizzard_api/wow/profile/profile.rb +5 -5
  56. data/lib/blizzard_api/wow/search/search_request.rb +1 -1
  57. metadata +13 -8
  58. data/.gitlab-ci.yml +0 -12
@@ -16,7 +16,7 @@ module BlizzardApi
16
16
  # @!macro request_options
17
17
  #
18
18
  # @!macro response
19
- def index(options = {})
19
+ def index(**options)
20
20
  api_request "#{base_url(:community)}/data/act", { ttl: CACHE_TRIMESTER }.merge(options)
21
21
  end
22
22
 
@@ -27,7 +27,7 @@ module BlizzardApi
27
27
  # @!macro request_options
28
28
  #
29
29
  # @!macro response
30
- def get(id, options = {})
30
+ def get(id, **options)
31
31
  api_request "#{base_url(:community)}/data/act/#{id}", { ttl: CACHE_TRIMESTER }.merge(options)
32
32
  end
33
33
  end
@@ -17,7 +17,7 @@ module BlizzardApi
17
17
  # @!macro request_options
18
18
  #
19
19
  # @!macro response
20
- def get(artisan_slug, options = {})
20
+ def get(artisan_slug, **options)
21
21
  api_request "#{base_url(:community)}/data/artisan/#{artisan_slug}", { ttl: CACHE_TRIMESTER }.merge(options)
22
22
  end
23
23
 
@@ -29,7 +29,7 @@ module BlizzardApi
29
29
  # @!macro request_options
30
30
  #
31
31
  # @!macro response
32
- def recipe(artisan_slug, recipe_slug, options = {})
32
+ def recipe(artisan_slug, recipe_slug, **options)
33
33
  opts = { ttl: CACHE_TRIMESTER }.merge(options)
34
34
  api_request "#{base_url(:community)}/data/artisan/#{artisan_slug}/recipe/#{recipe_slug}", opts
35
35
  end
@@ -17,7 +17,7 @@ module BlizzardApi
17
17
  # @!macro request_options
18
18
  #
19
19
  # @!macro response
20
- def get(class_slug, options = {})
20
+ def get(class_slug, **options)
21
21
  api_request "#{base_url(:community)}/data/hero/#{class_slug}", { ttl: CACHE_TRIMESTER }.merge(options)
22
22
  end
23
23
 
@@ -29,7 +29,7 @@ module BlizzardApi
29
29
  # @!macro request_options
30
30
  #
31
31
  # @!macro response
32
- def skill(class_slug, skill_slug, options = {})
32
+ def skill(class_slug, skill_slug, **options)
33
33
  opts = { ttl: CACHE_TRIMESTER }.merge(options)
34
34
  api_request "#{base_url(:community)}/data/hero/#{class_slug}/skill/#{skill_slug}", opts
35
35
  end
@@ -17,7 +17,7 @@ module BlizzardApi
17
17
  # @!macro request_options
18
18
  #
19
19
  # @!macro response
20
- def get(follower_slug, options = {})
20
+ def get(follower_slug, **options)
21
21
  api_request "#{base_url(:community)}/data/follower/#{follower_slug}", { ttl: CACHE_TRIMESTER }.merge(options)
22
22
  end
23
23
  end
@@ -17,7 +17,7 @@ module BlizzardApi
17
17
  # @!macro request_options
18
18
  #
19
19
  # @!macro response
20
- def get(item_slug_and_id, options = {})
20
+ def get(item_slug_and_id, **options)
21
21
  api_request "#{base_url(:community)}/data/item/#{item_slug_and_id}", { ttl: CACHE_TRIMESTER }.merge(options)
22
22
  end
23
23
  end
@@ -16,7 +16,7 @@ module BlizzardApi
16
16
  # @!macro request_options
17
17
  #
18
18
  # @!macro response
19
- def index(options = {})
19
+ def index(**options)
20
20
  api_request "#{base_url(:community)}/data/item-type", { ttl: CACHE_TRIMESTER }.merge(options)
21
21
  end
22
22
 
@@ -27,7 +27,7 @@ module BlizzardApi
27
27
  # @!macro request_options
28
28
  #
29
29
  # @!macro response
30
- def get(item_type_slug, options = {})
30
+ def get(item_type_slug, **options)
31
31
  api_request "#{base_url(:community)}/data/item-type/#{item_type_slug}", { ttl: CACHE_TRIMESTER }.merge(options)
32
32
  end
33
33
  end
@@ -20,7 +20,7 @@ module BlizzardApi
20
20
  # @!macro response
21
21
  #
22
22
  # @see https://develop.battle.net/documentation/guides/using-oauth/authorization-code-flow
23
- def index(battletag, oauth_token, options = {})
23
+ def index(battletag, oauth_token, **options)
24
24
  opts = { access_token: oauth_token, ttl: CACHE_TRIMESTER }.merge(options)
25
25
  api_request "#{base_url(:community)}/profile/#{parse_battle_tag(battletag)}/", opts
26
26
  end
@@ -36,7 +36,7 @@ module BlizzardApi
36
36
  # @!macro response
37
37
  #
38
38
  # @see https://develop.battle.net/documentation/guides/using-oauth/authorization-code-flow
39
- def hero(battletag, oauth_token, hero_id, options = {})
39
+ def hero(battletag, oauth_token, hero_id, **options)
40
40
  opts = { access_token: oauth_token, ttl: CACHE_TRIMESTER }.merge(options)
41
41
  api_request "#{base_url(:community)}/profile/#{parse_battle_tag(battletag)}/hero/#{hero_id}", opts
42
42
  end
@@ -52,7 +52,7 @@ module BlizzardApi
52
52
  # @!macro response
53
53
  #
54
54
  # @see https://develop.battle.net/documentation/guides/using-oauth/authorization-code-flow
55
- def hero_items(battletag, oauth_token, hero_id, options = {})
55
+ def hero_items(battletag, oauth_token, hero_id, **options)
56
56
  opts = { access_token: oauth_token, ttl: CACHE_TRIMESTER }.merge(options)
57
57
  api_request "#{base_url(:community)}/profile/#{parse_battle_tag(battletag)}/hero/#{hero_id}/items", opts
58
58
  end
@@ -68,7 +68,7 @@ module BlizzardApi
68
68
  # @!macro response
69
69
  #
70
70
  # @see https://develop.battle.net/documentation/guides/using-oauth/authorization-code-flow
71
- def hero_follower_items(battletag, oauth_token, hero_id, options = {})
71
+ def hero_follower_items(battletag, oauth_token, hero_id, **options)
72
72
  opts = { access_token: oauth_token, ttl: CACHE_TRIMESTER }.merge(options)
73
73
  api_request "#{base_url(:community)}/profile/#{parse_battle_tag(battletag)}/hero/#{hero_id}/follower-items", opts
74
74
  end
@@ -16,7 +16,7 @@ module BlizzardApi
16
16
  # @!macro request_options
17
17
  #
18
18
  # @!macro response
19
- def index(options = {})
19
+ def index(**options)
20
20
  api_request "#{base_url(:game_data)}/#{@endpoint}/", default_options.merge(options)
21
21
  end
22
22
 
@@ -27,7 +27,7 @@ module BlizzardApi
27
27
  # @!macro request_options
28
28
  #
29
29
  # @!macro response
30
- def get(id, options = {})
30
+ def get(id, **options)
31
31
  api_request "#{base_url(:game_data)}/#{@endpoint}/#{id}", default_options.merge(options)
32
32
  end
33
33
 
@@ -39,7 +39,7 @@ module BlizzardApi
39
39
  # @!macro request_options
40
40
  #
41
41
  # @!macro response
42
- def leaderboard(id, leaderboard_id, options = {})
42
+ def leaderboard(id, leaderboard_id, **options)
43
43
  opts = default_options.merge(options)
44
44
  api_request "#{base_url(:game_data)}/#{@endpoint}/#{id}/leaderboard/#{leaderboard_id}", opts
45
45
  end
@@ -36,7 +36,7 @@ module BlizzardApi
36
36
  # option is invalid
37
37
  #
38
38
  # @!macro response
39
- def search(search_options = {}, options = {})
39
+ def search(search_options = {}, **options)
40
40
  validate_search_options search_options if options.include? :validate_fields
41
41
 
42
42
  api_request "#{base_url(:community)}/cardbacks", default_options.merge(options).merge(search_options)
@@ -72,7 +72,7 @@ module BlizzardApi
72
72
  # option is invalid
73
73
  #
74
74
  # @!macro response
75
- def search(search_options = {}, options = {})
75
+ def search(search_options = {}, **options)
76
76
  validate_search_options search_options if options.include? :validate_fields
77
77
 
78
78
  api_request "#{base_url(:community)}/cards", default_options.merge(options).merge(search_options)
@@ -90,7 +90,7 @@ module BlizzardApi
90
90
  # @!macro request_options
91
91
  #
92
92
  # @!macro response
93
- def get(id_or_slug, game_mode = 'constructed', options = {})
93
+ def get(id_or_slug, game_mode = 'constructed', **options)
94
94
  super id_or_slug, { gameMode: game_mode }.merge(options)
95
95
  end
96
96
 
@@ -20,7 +20,7 @@ module BlizzardApi
20
20
  # @!macro request_options
21
21
  #
22
22
  # @!macro response
23
- def index(options = {})
23
+ def index(**options)
24
24
  api_request "#{base_url(:community)}/#{@endpoint}/", default_options.merge(options)
25
25
  end
26
26
 
@@ -31,7 +31,7 @@ module BlizzardApi
31
31
  # @!macro request_options
32
32
  #
33
33
  # @!macro response
34
- def get(id, options = {})
34
+ def get(id, **options)
35
35
  api_request "#{base_url(:community)}/#{@endpoint}/#{id}", default_options.merge(options)
36
36
  end
37
37
 
@@ -17,7 +17,7 @@
17
17
 
18
18
  ##
19
19
  # @!macro [new] response
20
- # @return [OpenStruct,Array] API Response. The actual type of the returned object depends on the *format* option
20
+ # @return [Hash] API Response. The actual type of the returned object depends on the *format* option
21
21
  # in the configuration module
22
22
 
23
23
  ##
@@ -115,7 +115,7 @@ module BlizzardApi
115
115
  BlizzardApi.access_token = JSON.parse(response.body)['access_token']
116
116
  end
117
117
 
118
- def request(url, options = {})
118
+ def request(url, **options)
119
119
  # Creates the whole url for request
120
120
  parsed_url = URI.parse(url)
121
121
 
@@ -163,7 +163,7 @@ module BlizzardApi
163
163
  !options.fetch(:ignore_cache, false)
164
164
  end
165
165
 
166
- def consume_api(url, options = {})
166
+ def consume_api(url, **options)
167
167
  # Creates a HTTP connection and request to ensure thread safety
168
168
  http = Net::HTTP.new(url.host, url.port)
169
169
  http.use_ssl = true
@@ -19,6 +19,7 @@ module BlizzardApi
19
19
  require_relative 'starcraft/community/profile'
20
20
  require_relative 'starcraft/community/ladder'
21
21
  require_relative 'starcraft/community/account'
22
+ require_relative 'starcraft/community/legacy'
22
23
 
23
24
  ##
24
25
  # @param region [String] API Region
@@ -40,5 +41,11 @@ module BlizzardApi
40
41
  def self.account(region = BlizzardApi.region)
41
42
  BlizzardApi::Starcraft::Account.new(region)
42
43
  end
44
+
45
+ ##
46
+ # @return {Legacy}
47
+ def self.legacy(region = BlizzardApi.region)
48
+ BlizzardApi::Starcraft::Legacy.new(region)
49
+ end
43
50
  end
44
51
  end
@@ -15,7 +15,7 @@ module BlizzardApi
15
15
  #
16
16
  # @param [Integer] account_id Account ID
17
17
  # @!macro request_options
18
- def player(account_id, options = {})
18
+ def player(account_id, **options)
19
19
  api_request "#{base_url(:community)}/player/#{account_id}", { ttl: CACHE_DAY }.merge(options)
20
20
  end
21
21
  end
@@ -15,7 +15,7 @@ module BlizzardApi
15
15
  #
16
16
  # @!macro sc2_regions
17
17
  # @!macro request_options
18
- def grandmaster(region_id, options = {})
18
+ def grandmaster(region_id, **options)
19
19
  reg = resolve_region(region_id)
20
20
  api_request "#{base_url(:community)}/ladder/grandmaster/#{reg}", { ttl: CACHE_DAY }.merge(options)
21
21
  end
@@ -25,7 +25,7 @@ module BlizzardApi
25
25
  #
26
26
  # @!macro sc2_regions
27
27
  # @!macro request_options
28
- def season(region_id, options = {})
28
+ def season(region_id, **options)
29
29
  reg = resolve_region(region_id)
30
30
  api_request "#{base_url(:community)}/ladder/season/#{reg}", { ttl: CACHE_DAY }.merge(options)
31
31
  end
@@ -0,0 +1,88 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BlizzardApi
4
+ module Starcraft
5
+ ##
6
+ # This class allows access to Starcraft II legacy data
7
+ #
8
+ # @see https://develop.battle.net/documentation/api-reference/starcraft-2-game-data-api
9
+ #
10
+ # You can get an instance of this class using the default region as follows:
11
+ # api_instance = BlizzardApi::Starcraft.legacy
12
+ class Legacy < Starcraft::Request
13
+
14
+ ##
15
+ # Profile data
16
+ #
17
+ # @!macro sc2_regions
18
+ # @param [Integer] realm_id Realm ID
19
+ # @param [Integer] profile_id Profile ID
20
+ # @!macro request_options
21
+ def profile(region_id, realm_id, profile_id, **options)
22
+ reg = resolve_region(region_id)
23
+ opts = { ttl: CACHE_DAY }.merge(options)
24
+ api_request "#{base_url(:community)}/legacy/profile/#{reg}/#{realm_id}/#{profile_id}", opts
25
+ end
26
+
27
+ ##
28
+ # Ladders
29
+ #
30
+ # @!macro sc2_regions
31
+ # @param [Integer] realm_id Realm ID
32
+ # @param [Integer] profile_id Profile ID
33
+ # @!macro request_options
34
+ def ladders(region_id, realm_id, profile_id, **options)
35
+ reg = resolve_region(region_id)
36
+ opts = { ttl: CACHE_DAY }.merge(options)
37
+ api_request "#{base_url(:community)}/legacy/profile/#{reg}/#{realm_id}/#{profile_id}/ladder ", opts
38
+ end
39
+
40
+ ##
41
+ # Match History
42
+ #
43
+ # @!macro sc2_regions
44
+ # @param [Integer] realm_id Realm ID
45
+ # @param [Integer] profile_id Profile ID
46
+ # @!macro request_options
47
+ def match(region_id, realm_id, profile_id, **options)
48
+ reg = resolve_region(region_id)
49
+ opts = { ttl: CACHE_DAY }.merge(options)
50
+ api_request "#{base_url(:community)}/legacy/profile/#{reg}/#{realm_id}/#{profile_id}/matches", opts
51
+ end
52
+
53
+ ##
54
+ # Ladder
55
+ #
56
+ # @!macro sc2_regions
57
+ # @param [Integer] ladder_id Ladder ID
58
+ # @!macro request_options
59
+ def ladder(region_id, ladder_id, **options)
60
+ reg = resolve_region(region_id)
61
+ opts = { ttl: CACHE_DAY }.merge(options)
62
+ api_request "#{base_url(:community)}/legacy/ladder/#{reg}/#{ladder_id}", opts
63
+ end
64
+
65
+ ##
66
+ # Achievement data
67
+ #
68
+ # @!macro sc2_regions
69
+ # @!macro request_options
70
+ def achievements(region_id, **options)
71
+ reg = resolve_region(region_id)
72
+ opts = { ttl: CACHE_DAY }.merge(options)
73
+ api_request "#{base_url(:community)}/legacy/data/achievements/#{reg}", opts
74
+ end
75
+
76
+ ##
77
+ # Rewards data
78
+ #
79
+ # @!macro sc2_regions
80
+ # @!macro request_options
81
+ def rewards(region_id, **options)
82
+ reg = resolve_region(region_id)
83
+ opts = { ttl: CACHE_DAY }.merge(options)
84
+ api_request "#{base_url(:community)}/legacy/data/rewards/#{reg}", opts
85
+ end
86
+ end
87
+ end
88
+ end
@@ -15,7 +15,7 @@ module BlizzardApi
15
15
  #
16
16
  # @!macro sc2_regions
17
17
  # @!macro request_options
18
- def static(region_id, options = {})
18
+ def static(region_id, **options)
19
19
  reg = resolve_region(region_id)
20
20
  api_request "#{base_url(:community)}/static/profile/#{reg}", { ttl: CACHE_DAY }.merge(options)
21
21
  end
@@ -27,7 +27,7 @@ module BlizzardApi
27
27
  # @param [Integer] realm_id Realm ID
28
28
  # @param [Integer] profile_id Profile ID
29
29
  # @!macro request_options
30
- def metadata(region_id, realm_id, profile_id, options = {})
30
+ def metadata(region_id, realm_id, profile_id, **options)
31
31
  reg = resolve_region(region_id)
32
32
  opts = { ttl: CACHE_DAY }.merge(options)
33
33
  api_request "#{base_url(:community)}/metadata/profile/#{reg}/#{realm_id}/#{profile_id}", opts
@@ -40,7 +40,7 @@ module BlizzardApi
40
40
  # @param [Integer] realm_id Realm ID
41
41
  # @param [Integer] profile_id Profile ID
42
42
  # @!macro request_options
43
- def profile(region_id, realm_id, profile_id, options = {})
43
+ def profile(region_id, realm_id, profile_id, **options)
44
44
  reg = resolve_region(region_id)
45
45
  opts = { ttl: CACHE_DAY }.merge(options)
46
46
  api_request "#{base_url(:community)}/profile/#{reg}/#{realm_id}/#{profile_id}", opts
@@ -53,7 +53,7 @@ module BlizzardApi
53
53
  # @param [Integer] realm_id Realm ID
54
54
  # @param [Integer] profile_id Profile ID
55
55
  # @!macro request_options
56
- def ladder_summary(region_id, realm_id, profile_id, options = {})
56
+ def ladder_summary(region_id, realm_id, profile_id, **options)
57
57
  reg = resolve_region(region_id)
58
58
  opts = { ttl: CACHE_DAY }.merge(options)
59
59
  api_request "#{base_url(:community)}profile/#{reg}/#{realm_id}/#{profile_id}/ladder/summary ", opts
@@ -66,7 +66,7 @@ module BlizzardApi
66
66
  # @param [Integer] realm_id Realm ID
67
67
  # @param [Integer] profile_id Profile ID
68
68
  # @!macro request_options
69
- def ladder(region_id, realm_id, profile_id, ladder_id, options = {})
69
+ def ladder(region_id, realm_id, profile_id, ladder_id, **options)
70
70
  reg = resolve_region(region_id)
71
71
  opts = { ttl: CACHE_DAY }.merge(options)
72
72
  api_request "#{base_url(:community)}/profile/#{reg}/#{realm_id}/#{profile_id}/ladder/#{ladder_id}", opts
@@ -18,7 +18,7 @@ module BlizzardApi
18
18
  # @param [Integer] team_type Team type
19
19
  # @param [Integer] league_id League id
20
20
  # @!macro request_options
21
- def get(season_id, queue_id, team_type, league_id, options = {})
21
+ def get(season_id, queue_id, team_type, league_id, **options)
22
22
  opts = { ttl: CACHE_DAY }.merge(options)
23
23
  api_request "#{base_url(:game_data)}/league/#{season_id}/#{queue_id}/#{team_type}/#{league_id}", opts
24
24
  end
@@ -2,5 +2,5 @@
2
2
 
3
3
  module BlizzardApi
4
4
  # Gem version
5
- VERSION = '0.5.1'
5
+ VERSION = '0.5.6'
6
6
  end
@@ -14,6 +14,7 @@ module BlizzardApi
14
14
  require_relative 'wow/game_data/auction'
15
15
  require_relative 'wow/game_data/azerite_essence'
16
16
  require_relative 'wow/game_data/connected_realm'
17
+ require_relative 'wow/game_data/covenant'
17
18
  require_relative 'wow/game_data/creature'
18
19
  require_relative 'wow/game_data/guild_crest'
19
20
  require_relative 'wow/game_data/item'
@@ -39,6 +40,7 @@ module BlizzardApi
39
40
  require_relative 'wow/game_data/reputation'
40
41
  require_relative 'wow/game_data/spell'
41
42
  require_relative 'wow/game_data/talent'
43
+ require_relative 'wow/game_data/tech_talent'
42
44
  require_relative 'wow/game_data/title'
43
45
  require_relative 'wow/game_data/wow_token'
44
46
 
@@ -70,6 +72,13 @@ module BlizzardApi
70
72
  BlizzardApi::Wow::ConnectedRealm.new(region)
71
73
  end
72
74
 
75
+ ##
76
+ # @param region [String] API Region
77
+ # @return {Covenant}
78
+ def self.covenant(region = BlizzardApi.region)
79
+ BlizzardApi::Wow::Covenant.new(region)
80
+ end
81
+
73
82
  ##
74
83
  # @param region [String] API Region
75
84
  # @return {Creature}
@@ -245,6 +254,13 @@ module BlizzardApi
245
254
  BlizzardApi::Wow::Talent.new(region)
246
255
  end
247
256
 
257
+ ##
258
+ # @param region [String] API Region
259
+ # @return {TechTalent}
260
+ def self.tech_talent(region = BlizzardApi.region)
261
+ BlizzardApi::Wow::TechTalent.new(region)
262
+ end
263
+
248
264
  ##
249
265
  # @param region [String] API Region
250
266
  # @return {Title}
@@ -259,13 +275,6 @@ module BlizzardApi
259
275
  BlizzardApi::Wow::WowToken.new(region)
260
276
  end
261
277
 
262
- ##
263
- # @param region [String] API Region
264
- # @return {Character}
265
- def self.character(region = BlizzardApi.region)
266
- BlizzardApi::Wow::Character.new(region)
267
- end
268
-
269
278
  require_relative 'wow/profile/profile'
270
279
  require_relative 'wow/profile/guild'
271
280
  require_relative 'wow/profile/character_profile'