blizzard_api 4.0.0 → 4.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 79f824ffc1cb26dddb1fc23ae4c029930feaf2c16f2d9bdbed6bbd20b815e47e
4
- data.tar.gz: 92271ac4aed4dd441dc9b43f74afae3794035b6fde44dd76651e9f4596868978
3
+ metadata.gz: 25f4493d9dc72b6f70302dadcfb4679785684a62d29a532ea6cc8e3b0a73ad0e
4
+ data.tar.gz: '0298ac0da67ef8000f63f9f23d2ce79a6a5d4f853eb9863f720fb82720e238f3'
5
5
  SHA512:
6
- metadata.gz: 564512eb1d3bb2a0157b33783cf277d3f1f1ec30757972bd5c2a97485567b0f9287ad59f49f9fdc2f3ad042e342e2852d3a811620328853a10245d36a73a112c
7
- data.tar.gz: dc87e72420e7be2f16861fb6b5ead8355fd66e7ae52f0151997440d838ca011d707ee2b7abfa2ba46bff8dd7d1d2760611fa6c3914ad014216323072719a9a1b
6
+ metadata.gz: e5cf53cc39f5e09877da0ff4b86a3c50a624c9d7ccf3accc5ef96851f0d0763f5f188e8c4e80dfb272f1a0c45b16b71f147a9a8664506488005bdb986c169c30
7
+ data.tar.gz: 29d93824b97b4f606822f6b1f9d7a904090e5ac993269afee2b3073aa135ad1062dbd8a94dd3b08c937af52993474869d27ce715ec9a2158640ce2dee638c346
data/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  Please view this file on the master branch, otherwise it may be outdated
2
2
 
3
+ **Version 4.2.0**
4
+
5
+ Added new collections endpoints (https://us.forums.blizzard.com/en/blizzard/t/item-appearance-and-transmog-apis/51532)
6
+
7
+ **Version 4.1.0**
8
+
9
+ Removed the discontinued Overwatch League API
10
+
11
+ Updated all dependencies to latest version
12
+
13
+ Note: While this introduces a breaking change, I did not bump version to 5.x.x
14
+ since the Overwatch League API was already broken.
15
+
3
16
  **Version 4.0.0**
4
17
 
5
18
  **Warning**: This version introduces breaking changes to the way the gem handles the Redis connection.
data/Gemfile.lock CHANGED
@@ -1,25 +1,26 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- blizzard_api (4.0.0)
4
+ blizzard_api (4.1.0)
5
5
  redis (~> 4.1, >= 4.1.0)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
10
  ast (2.4.2)
11
- dotenv (3.1.0)
12
- minitest (5.22.3)
13
- parallel (1.24.0)
14
- parser (3.3.1.0)
11
+ dotenv (3.1.2)
12
+ minitest (5.24.1)
13
+ parallel (1.26.1)
14
+ parser (3.3.4.2)
15
15
  ast (~> 2.4.1)
16
16
  racc
17
- racc (1.7.3)
17
+ racc (1.8.1)
18
18
  rainbow (3.1.1)
19
19
  rake (13.2.1)
20
20
  redis (4.8.1)
21
- regexp_parser (2.9.0)
22
- rexml (3.2.6)
21
+ regexp_parser (2.9.2)
22
+ rexml (3.3.4)
23
+ strscan
23
24
  rubocop (0.93.1)
24
25
  parallel (~> 1.10)
25
26
  parser (>= 2.7.1.5)
@@ -29,11 +30,12 @@ GEM
29
30
  rubocop-ast (>= 0.6.0)
30
31
  ruby-progressbar (~> 1.7)
31
32
  unicode-display_width (>= 1.4.0, < 2.0)
32
- rubocop-ast (1.31.2)
33
- parser (>= 3.3.0.4)
33
+ rubocop-ast (1.32.0)
34
+ parser (>= 3.3.1.0)
34
35
  rubocop-minitest (0.27.0)
35
36
  rubocop (>= 0.90, < 2.0)
36
37
  ruby-progressbar (1.13.0)
38
+ strscan (3.1.0)
37
39
  unicode-display_width (1.8.0)
38
40
  yard (0.9.36)
39
41
 
@@ -50,4 +52,4 @@ DEPENDENCIES
50
52
  yard (~> 0.9.36)
51
53
 
52
54
  BUNDLED WITH
53
- 2.5.4
55
+ 2.4.22
@@ -2,5 +2,5 @@
2
2
 
3
3
  module BlizzardApi
4
4
  # Gem version
5
- VERSION = '4.0.0'
5
+ VERSION = '4.2.0'
6
6
  end
@@ -19,7 +19,7 @@ module BlizzardApi
19
19
  #
20
20
  # @!macro response
21
21
  def index
22
- raise BlizzardApi::ApiException, 'This endpoint does not have a index method'
22
+ raise BlizzardApi::ApiException, 'This endpoint does not have an index method'
23
23
  end
24
24
 
25
25
  ##
@@ -0,0 +1,68 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BlizzardApi
4
+ module Wow
5
+ ##
6
+ # This class allows access to World of Warcraft item data
7
+ #
8
+ # @see https://develop.battle.net/documentation/world-of-warcraft/game-data-apis
9
+ #
10
+ # You can get an instance of this class using the default region as follows:
11
+ # api_instance = BlizzardApi::Wow.item_appearance
12
+ class ItemAppearance < Wow::GenericDataEndpoint
13
+ include BlizzardApi::Wow::Searchable
14
+
15
+ setup 'item-appearance', :static, CACHE_TRIMESTER
16
+
17
+ ##
18
+ # This method overrides the inherited default behavior to prevent high server load and fetch time
19
+ #
20
+ # @!macro response
21
+ def index
22
+ raise BlizzardApi::ApiException, 'This endpoint does not have an index method'
23
+ end
24
+
25
+ ##
26
+ # Return a list of item appearance sets
27
+ #
28
+ # @!macro request_options
29
+ #
30
+ # @!macro response
31
+ def sets(**options)
32
+ api_request "#{endpoint_uri}/set/index", **default_options.merge(options)
33
+ end
34
+
35
+ ##
36
+ # Return data about an item appearance set
37
+ #
38
+ # @param id [Integer] Item appearance set id
39
+ # @!macro request_options
40
+ #
41
+ # @!macro response
42
+ def set(id, **options)
43
+ api_request "#{endpoint_uri}/set/#{id}", **default_options.merge(options)
44
+ end
45
+
46
+ ##
47
+ # Return a list of item appearance slots
48
+ #
49
+ # @!macro request_options
50
+ #
51
+ # @!macro response
52
+ def slots(**options)
53
+ api_request "#{endpoint_uri}/slot/index", **default_options.merge(options)
54
+ end
55
+
56
+ ##
57
+ # Return data about an item appearance slot
58
+ #
59
+ # @param type [Integer] Item appearance slot type
60
+ # @!macro request_options
61
+ #
62
+ # @!macro response
63
+ def slot(type, **options)
64
+ api_request "#{endpoint_uri}/slot/#{type}", **default_options.merge(options)
65
+ end
66
+ end
67
+ end
68
+ end
@@ -38,9 +38,10 @@ module BlizzardApi
38
38
  # @!macro request_options
39
39
  #
40
40
  # @!macro response
41
- def collection(**options)
41
+ def collections(**options)
42
42
  api_request "#{base_url(:user_profile)}/collections", **default_options.merge(options)
43
43
  end
44
+ alias collection collections
44
45
 
45
46
  ##
46
47
  # Returns the mount collection index for the account
@@ -82,6 +83,16 @@ module BlizzardApi
82
83
  api_request "#{base_url(:user_profile)}/collections/pets", **default_options.merge(options)
83
84
  end
84
85
 
86
+ ##
87
+ # Returns the transmogs collection index for the account
88
+ #
89
+ # @!macro request_options
90
+ #
91
+ # @!macro response
92
+ def transmogs(**options)
93
+ api_request "#{base_url(:user_profile)}/collections/transmogs", **default_options.merge(options)
94
+ end
95
+
85
96
  protected
86
97
 
87
98
  def default_options
@@ -397,6 +397,20 @@ module BlizzardApi
397
397
  character_request realm, character, 'titles', **options
398
398
  end
399
399
 
400
+ ##
401
+ # Return a character's transmogs
402
+ #
403
+ # @see https://develop.battle.net/documentation/api-reference/world-of-warcraft-profile-api
404
+ #
405
+ # @param realm [String] The character realm's slug
406
+ # @param character [String] The character name
407
+ # @!macro request_options
408
+ #
409
+ # @!macro response
410
+ def transmogs(realm, character, **options)
411
+ character_request realm, character, 'transmogs', **options
412
+ end
413
+
400
414
  private
401
415
 
402
416
  def default_options(user_token = nil)
@@ -25,6 +25,7 @@ module BlizzardApi
25
25
  require_relative 'wow/game_data/guild_crest'
26
26
  require_relative 'wow/game_data/heirloom'
27
27
  require_relative 'wow/game_data/item'
28
+ require_relative 'wow/game_data/item_appearance'
28
29
  require_relative 'wow/game_data/journal'
29
30
  require_relative 'wow/game_data/media'
30
31
  require_relative 'wow/game_data/modified_crafting'
@@ -116,6 +117,13 @@ module BlizzardApi
116
117
  BlizzardApi::Wow::Item.new(**options)
117
118
  end
118
119
 
120
+ ##
121
+ # @!macro init_options
122
+ # @return {Item}
123
+ def self.item_appearance(**options)
124
+ BlizzardApi::Wow::ItemAppearance.new(**options)
125
+ end
126
+
119
127
  ##
120
128
  # @!macro init_options
121
129
  # @return {Journal}
data/lib/blizzard_api.rb CHANGED
@@ -11,7 +11,6 @@ require_relative 'blizzard_api/wow'
11
11
  require_relative 'blizzard_api/diablo'
12
12
  require_relative 'blizzard_api/hearthstone'
13
13
  require_relative 'blizzard_api/starcraft'
14
- require_relative 'blizzard_api/overwatch_league'
15
14
 
16
15
  # Blizzard namespace
17
16
  module BlizzardApi
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blizzard_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0
4
+ version: 4.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Francis Schiavo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-29 00:00:00.000000000 Z
11
+ date: 2024-08-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis
@@ -154,13 +154,6 @@ files:
154
154
  - lib/blizzard_api/hearthstone/game_data/generic_data_endpoint.rb
155
155
  - lib/blizzard_api/hearthstone/game_data/metadata.rb
156
156
  - lib/blizzard_api/hearthstone/request.rb
157
- - lib/blizzard_api/overwatch_league.rb
158
- - lib/blizzard_api/overwatch_league/community/matches.rb
159
- - lib/blizzard_api/overwatch_league/community/players.rb
160
- - lib/blizzard_api/overwatch_league/community/segments.rb
161
- - lib/blizzard_api/overwatch_league/community/summary.rb
162
- - lib/blizzard_api/overwatch_league/community/teams.rb
163
- - lib/blizzard_api/overwatch_league/request.rb
164
157
  - lib/blizzard_api/request.rb
165
158
  - lib/blizzard_api/starcraft.rb
166
159
  - lib/blizzard_api/starcraft/community/account.rb
@@ -182,6 +175,7 @@ files:
182
175
  - lib/blizzard_api/wow/game_data/guild_crest.rb
183
176
  - lib/blizzard_api/wow/game_data/heirloom.rb
184
177
  - lib/blizzard_api/wow/game_data/item.rb
178
+ - lib/blizzard_api/wow/game_data/item_appearance.rb
185
179
  - lib/blizzard_api/wow/game_data/journal.rb
186
180
  - lib/blizzard_api/wow/game_data/media.rb
187
181
  - lib/blizzard_api/wow/game_data/modified_crafting.rb
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module BlizzardApi
4
- module OverwatchLeague
5
- ##
6
- # This class allows access to OWL2 match data
7
- #
8
- # @see https://develop.battle.net/documentation/owl/community-apis
9
- #
10
- # You can get an instance of this class using the default region as follows:
11
- # api_instance = BlizzardApi::OverwatchLeague.matches
12
- class Matches < OverwatchLeague::Request
13
- ##
14
- # Returns match information
15
- #
16
- # @!macro request_options
17
- def get(match_id, **options)
18
- api_request "#{base_url(:community)}/v1/matches/#{match_id}", **{ ttl: CACHE_DAY }.merge(options)
19
- end
20
- end
21
- end
22
- end
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module BlizzardApi
4
- module OverwatchLeague
5
- ##
6
- # This class allows access to OWL2 player data
7
- #
8
- # @see https://develop.battle.net/documentation/owl/community-apis
9
- #
10
- # You can get an instance of this class using the default region as follows:
11
- # api_instance = BlizzardApi::OverwatchLeague.players
12
- class Players < OverwatchLeague::Request
13
- ##
14
- # Returns player information
15
- #
16
- # @!macro request_options
17
- def get(player_id, **options)
18
- api_request "#{base_url(:community)}/v1/players/#{player_id}", **{ ttl: CACHE_DAY }.merge(options)
19
- end
20
- end
21
- end
22
- end
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module BlizzardApi
4
- module OverwatchLeague
5
- ##
6
- # This class allows access to OWL2 segment data
7
- #
8
- # @see https://develop.battle.net/documentation/owl/community-apis
9
- #
10
- # You can get an instance of this class using the default region as follows:
11
- # api_instance = BlizzardApi::OverwatchLeague.segments
12
- class Segments < OverwatchLeague::Request
13
- ##
14
- # Returns segment information
15
- #
16
- # @!macro request_options
17
- def get(segment_id, **options)
18
- api_request "#{base_url(:community)}/v1/segments/#{segment_id}", **{ ttl: CACHE_DAY }.merge(options)
19
- end
20
- end
21
- end
22
- end
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module BlizzardApi
4
- module OverwatchLeague
5
- ##
6
- # This class allows access to OWL2 summary data
7
- #
8
- # @see https://develop.battle.net/documentation/owl/community-apis
9
- #
10
- # You can get an instance of this class using the default region as follows:
11
- # api_instance = BlizzardApi::OverwatchLeague.summary
12
- class Summary < OverwatchLeague::Request
13
- ##
14
- # Returns summary information
15
- #
16
- # @!macro request_options
17
- def get(**options)
18
- api_request "#{base_url(:community)}/v1/owl2", **{ ttl: CACHE_DAY }.merge(options)
19
- end
20
- end
21
- end
22
- end
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module BlizzardApi
4
- module OverwatchLeague
5
- ##
6
- # This class allows access to OWL2 team data
7
- #
8
- # @see https://develop.battle.net/documentation/owl/community-apis
9
- #
10
- # You can get an instance of this class using the default region as follows:
11
- # api_instance = BlizzardApi::OverwatchLeague.teams
12
- class Teams < OverwatchLeague::Request
13
- ##
14
- # Returns team information
15
- #
16
- # @!macro request_options
17
- def get(team_id, **options)
18
- api_request "#{base_url(:community)}/v1/teams/#{team_id}", **{ ttl: CACHE_DAY }.merge(options)
19
- end
20
- end
21
- end
22
- end
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module BlizzardApi
4
- module OverwatchLeague
5
- # Overwatch League requests
6
- class Request < BlizzardApi::Request
7
- ##
8
- # @!macro init_options
9
- def initialize(**options)
10
- super(**options)
11
- @game = 'owl'
12
- end
13
- end
14
- end
15
- end
@@ -1,50 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module BlizzardApi
4
- # Overwatch League related classes
5
- module OverwatchLeague
6
- require_relative 'overwatch_league/request'
7
-
8
- # Overwatch League community api
9
- require_relative 'overwatch_league/community/summary'
10
- require_relative 'overwatch_league/community/players'
11
- require_relative 'overwatch_league/community/matches'
12
- require_relative 'overwatch_league/community/segments'
13
- require_relative 'overwatch_league/community/teams'
14
-
15
- ##
16
- # @!macro init_options
17
- # @return {Summary}
18
- def self.summary(**options)
19
- BlizzardApi::OverwatchLeague::Summary.new(**options)
20
- end
21
-
22
- ##
23
- # @!macro init_options
24
- # @return {Players}
25
- def self.players(**options)
26
- BlizzardApi::OverwatchLeague::Players.new(**options)
27
- end
28
-
29
- ##
30
- # @!macro init_options
31
- # @return {Matches}
32
- def self.matches(**options)
33
- BlizzardApi::OverwatchLeague::Matches.new(**options)
34
- end
35
-
36
- ##
37
- # @!macro init_options
38
- # @return {Segments}
39
- def self.segments(**options)
40
- BlizzardApi::OverwatchLeague::Segments.new(**options)
41
- end
42
-
43
- ##
44
- # @!macro init_options
45
- # @return {Teams}
46
- def self.teams(**options)
47
- BlizzardApi::OverwatchLeague::Teams.new(**options)
48
- end
49
- end
50
- end