blizzard_api 0.5.1 → 0.5.6

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 (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'