blizzard_api 0.4.0 → 0.5.3
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 +4 -4
- data/.github/workflows/ruby.yml +21 -0
- data/.rubocop.yml +2 -1
- data/CHANGELOG.md +65 -0
- data/Gemfile.lock +19 -14
- data/README.md +6 -3
- data/blizzard_api.gemspec +6 -4
- data/lib/blizzard_api/diablo/game_data/generic_data_endpoint.rb +2 -2
- data/lib/blizzard_api/diablo/request.rb +2 -2
- data/lib/blizzard_api/hearthstone/game_data/generic_data_endpoint.rb +2 -2
- data/lib/blizzard_api/hearthstone/request.rb +2 -2
- data/lib/blizzard_api/request.rb +45 -38
- data/lib/blizzard_api/starcraft.rb +7 -0
- data/lib/blizzard_api/starcraft/community/legacy.rb +88 -0
- data/lib/blizzard_api/starcraft/request.rb +2 -2
- data/lib/blizzard_api/version.rb +1 -1
- data/lib/blizzard_api/wow.rb +33 -0
- data/lib/blizzard_api/wow/game_data/azerite_essence.rb +2 -0
- data/lib/blizzard_api/wow/game_data/covenant.rb +79 -0
- data/lib/blizzard_api/wow/game_data/creature.rb +2 -0
- data/lib/blizzard_api/wow/game_data/generic_data_endpoint.rb +2 -2
- data/lib/blizzard_api/wow/game_data/item.rb +2 -0
- data/lib/blizzard_api/wow/game_data/journal.rb +15 -0
- data/lib/blizzard_api/wow/game_data/media.rb +37 -0
- data/lib/blizzard_api/wow/game_data/modified_crafting.rb +67 -0
- data/lib/blizzard_api/wow/game_data/mount.rb +2 -0
- data/lib/blizzard_api/wow/game_data/pet.rb +46 -0
- data/lib/blizzard_api/wow/game_data/spell.rb +2 -0
- data/lib/blizzard_api/wow/game_data/tech_talent.rb +57 -0
- data/lib/blizzard_api/wow/profile/character_profile.rb +19 -1
- data/lib/blizzard_api/wow/profile/guild.rb +2 -0
- data/lib/blizzard_api/wow/profile/profile.rb +2 -2
- data/lib/blizzard_api/wow/request.rb +2 -2
- data/lib/blizzard_api/wow/search/search_composer.rb +3 -3
- data/lib/blizzard_api/wow/search/search_request.rb +1 -1
- data/lib/blizzard_api/wow/slug.rb +12 -0
- metadata +16 -8
- data/.gitlab-ci.yml +0 -12
@@ -10,6 +10,8 @@ module BlizzardApi
|
|
10
10
|
# You can get an instance of this class using the default region as follows:
|
11
11
|
# api_instance = BlizzardApi::Wow.mount
|
12
12
|
class Mount < Wow::GenericDataEndpoint
|
13
|
+
include BlizzardApi::Wow::Searchable
|
14
|
+
|
13
15
|
protected
|
14
16
|
|
15
17
|
def endpoint_setup
|
@@ -10,6 +10,52 @@ module BlizzardApi
|
|
10
10
|
# You can get an instance of this class using the default region as follows:
|
11
11
|
# api_instance = BlizzardApi::Wow.pet
|
12
12
|
class Pet < Wow::GenericDataEndpoint
|
13
|
+
##
|
14
|
+
# Fetch media for one of the pets listed by the {#index} using its *id*
|
15
|
+
#
|
16
|
+
# @param id [Integer] Pet id
|
17
|
+
#
|
18
|
+
# @!macro request_options
|
19
|
+
#
|
20
|
+
# @!macro response
|
21
|
+
def media(id, options = {})
|
22
|
+
api_request "#{base_url(:media)}/pet/#{id}", default_options.merge(options)
|
23
|
+
end
|
24
|
+
|
25
|
+
##
|
26
|
+
# Fetch all pet abilities
|
27
|
+
#
|
28
|
+
# @!macro request_options
|
29
|
+
#
|
30
|
+
# @!macro response
|
31
|
+
def abilities(options = {})
|
32
|
+
api_request "#{endpoint_uri('ability')}/index", default_options.merge(options)
|
33
|
+
end
|
34
|
+
|
35
|
+
##
|
36
|
+
# Fetch a pet ability
|
37
|
+
#
|
38
|
+
# @param id [Integer] Pet id
|
39
|
+
#
|
40
|
+
# @!macro request_options
|
41
|
+
#
|
42
|
+
# @!macro response
|
43
|
+
def ability(id, options = {})
|
44
|
+
api_request "#{endpoint_uri('ability')}/#{id}", default_options.merge(options)
|
45
|
+
end
|
46
|
+
|
47
|
+
##
|
48
|
+
# Fetch media for one of the pet abilities listed by the {#abilities} using its *id*
|
49
|
+
#
|
50
|
+
# @param id [Integer] Pet ability id
|
51
|
+
#
|
52
|
+
# @!macro request_options
|
53
|
+
#
|
54
|
+
# @!macro response
|
55
|
+
def ability_media(id, options = {})
|
56
|
+
api_request "#{base_url(:media)}/pet-ability/#{id}", default_options.merge(options)
|
57
|
+
end
|
58
|
+
|
13
59
|
protected
|
14
60
|
|
15
61
|
def endpoint_setup
|
@@ -10,6 +10,8 @@ module BlizzardApi
|
|
10
10
|
# You can get an instance of this class using the default region as follows:
|
11
11
|
# api_instance = BlizzardApi::Wow.spell
|
12
12
|
class Spell < Wow::GenericDataEndpoint
|
13
|
+
include BlizzardApi::Wow::Searchable
|
14
|
+
|
13
15
|
##
|
14
16
|
# This method overrides the inherited default behavior to prevent high server load and fetch time
|
15
17
|
#
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BlizzardApi
|
4
|
+
module Wow
|
5
|
+
##
|
6
|
+
# This class allows access to World of Warcraft talent 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.talent
|
12
|
+
class TechTalent < Wow::GenericDataEndpoint
|
13
|
+
##
|
14
|
+
# Fetch tech talent trees
|
15
|
+
#
|
16
|
+
# @!macro request_options
|
17
|
+
#
|
18
|
+
# @!macro response
|
19
|
+
def tech_talent_trees(options = {})
|
20
|
+
api_request "#{base_url(:game_data)}/tech-talent-tree/index", default_options.merge(options)
|
21
|
+
end
|
22
|
+
|
23
|
+
##
|
24
|
+
# Fetch a tech talent tree
|
25
|
+
#
|
26
|
+
# @param id [Integer] Tech talent id
|
27
|
+
#
|
28
|
+
# @!macro request_options
|
29
|
+
#
|
30
|
+
# @!macro response
|
31
|
+
def tech_talent_tree(id, options = {})
|
32
|
+
api_request "#{base_url(:game_data)}/tech-talent-tree/#{id}", default_options.merge(options)
|
33
|
+
end
|
34
|
+
|
35
|
+
##
|
36
|
+
# Fetch a tech talent media
|
37
|
+
#
|
38
|
+
# @param id [Integer] Tech talent id
|
39
|
+
#
|
40
|
+
# @!macro request_options
|
41
|
+
#
|
42
|
+
# @!macro response
|
43
|
+
def media(id, options = {})
|
44
|
+
api_request "#{base_url(:media)}/tech-talent/#{id}", default_options.merge(options)
|
45
|
+
end
|
46
|
+
|
47
|
+
protected
|
48
|
+
|
49
|
+
def endpoint_setup
|
50
|
+
@endpoint = 'tech-talent'
|
51
|
+
@namespace = :static
|
52
|
+
@collection = 'tech-talents'
|
53
|
+
@ttl = CACHE_TRIMESTER
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -10,6 +10,8 @@ module BlizzardApi
|
|
10
10
|
# You can get an instance of this class using the default region as follows:
|
11
11
|
# api_instance = BlizzardApi::Wow.achievement
|
12
12
|
class CharacterProfile < Wow::Request
|
13
|
+
include BlizzardApi::Wow::Slug
|
14
|
+
|
13
15
|
##
|
14
16
|
# Return character achievements
|
15
17
|
#
|
@@ -287,9 +289,11 @@ module BlizzardApi
|
|
287
289
|
# @param realm [String] The character realm's slug
|
288
290
|
# @param character [String] The character name
|
289
291
|
# @!macro request_options
|
292
|
+
# @option options [Boolean] :completed Should return completed quests
|
290
293
|
#
|
291
294
|
# @!macro response
|
292
|
-
def quests(realm, character,
|
295
|
+
def quests(realm, character, options = {})
|
296
|
+
completed = options.delete(:completed) || false
|
293
297
|
return character_request realm, character, options, 'quests/completed' if completed
|
294
298
|
|
295
299
|
character_request realm, character, options, 'quests'
|
@@ -309,6 +313,20 @@ module BlizzardApi
|
|
309
313
|
character_request realm, character, options, 'reputations'
|
310
314
|
end
|
311
315
|
|
316
|
+
##
|
317
|
+
# Return a character's soulbinds
|
318
|
+
#
|
319
|
+
# @see https://develop.battle.net/documentation/api-reference/world-of-warcraft-profile-api
|
320
|
+
#
|
321
|
+
# @param realm [String] The character realm's slug
|
322
|
+
# @param character [String] The character name
|
323
|
+
# @!macro request_options
|
324
|
+
#
|
325
|
+
# @!macro response
|
326
|
+
def soulbinds(realm, character, options = {})
|
327
|
+
character_request realm, character, options, 'soulbinds'
|
328
|
+
end
|
329
|
+
|
312
330
|
##
|
313
331
|
# Return a character's specialization
|
314
332
|
#
|
@@ -10,6 +10,8 @@ module BlizzardApi
|
|
10
10
|
# You can get an instance of this class using the default region as follows:
|
11
11
|
# api_instance = BlizzardApi::Wow.guild
|
12
12
|
class Guild < Wow::Request
|
13
|
+
include BlizzardApi::Wow::Slug
|
14
|
+
|
13
15
|
##
|
14
16
|
# Return data about the specified guild
|
15
17
|
#
|
@@ -7,8 +7,8 @@ module BlizzardApi
|
|
7
7
|
class AccountProfile < Request
|
8
8
|
##
|
9
9
|
# @param token [String] A token obtained using the authorization_code flow
|
10
|
-
def initialize(token, region = nil)
|
11
|
-
super region
|
10
|
+
def initialize(token, region = nil, mode = :regular)
|
11
|
+
super region, mode
|
12
12
|
@token = token
|
13
13
|
end
|
14
14
|
|
@@ -20,7 +20,7 @@ module BlizzardApi
|
|
20
20
|
# The second argument takes a simple value, an array of values or a hash for range searches.
|
21
21
|
#
|
22
22
|
# @param field [String] Field name
|
23
|
-
# @param value [String|Integer|Hash|Array<Integer
|
23
|
+
# @param value [String|Integer|Hash|Array<Integer>|Array<String>]
|
24
24
|
# @option value [Integer] :min Range start
|
25
25
|
# @option value [Integer] :max Range end
|
26
26
|
# @option value [Integer] :mode Range mode (:inclusive|:exclusive)
|
@@ -37,7 +37,7 @@ module BlizzardApi
|
|
37
37
|
# The second argument takes a simple value, an array of values or a hash for range searches.
|
38
38
|
#
|
39
39
|
# @param field [String] Field name
|
40
|
-
# @param value [String|Integer|Hash|Array<Integer
|
40
|
+
# @param value [String|Integer|Hash|Array<Integer>|Array<String>]
|
41
41
|
# @option value [Integer] :min Range start
|
42
42
|
# @option value [Integer] :max Range end
|
43
43
|
# @option value [Integer] :mode Range mode (:inclusive|:exclusive)
|
@@ -68,7 +68,7 @@ module BlizzardApi
|
|
68
68
|
# @return {String}
|
69
69
|
def to_search_query
|
70
70
|
query_string = "_page=#{page}&_pageSize=#{page_size}"
|
71
|
-
query_string +=
|
71
|
+
query_string += "&#{fields.join('&')}" unless fields.size.zero?
|
72
72
|
query_string += "&orderby=#{order.join(',')}" unless order.size.zero?
|
73
73
|
query_string
|
74
74
|
end
|
@@ -6,7 +6,7 @@ module BlizzardApi
|
|
6
6
|
# Added search support to an endpoint
|
7
7
|
module Searchable
|
8
8
|
##
|
9
|
-
# Fetch data
|
9
|
+
# Fetch data based on search criteria
|
10
10
|
#
|
11
11
|
# @param page [Integer] Page o return
|
12
12
|
# @param page_size [Integer] Amount of items per page
|
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: 0.
|
4
|
+
version: 0.5.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Francis Schiavo
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-12-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: redis
|
@@ -102,13 +102,13 @@ dependencies:
|
|
102
102
|
version: '0'
|
103
103
|
description: This is a simple interface to obtain data from Blizzard API
|
104
104
|
email:
|
105
|
-
- francis
|
105
|
+
- francis@schiavo.dev
|
106
106
|
executables: []
|
107
107
|
extensions: []
|
108
108
|
extra_rdoc_files: []
|
109
109
|
files:
|
110
|
+
- ".github/workflows/ruby.yml"
|
110
111
|
- ".gitignore"
|
111
|
-
- ".gitlab-ci.yml"
|
112
112
|
- ".rubocop.yml"
|
113
113
|
- ".rubocop_todo.yml"
|
114
114
|
- CHANGELOG.md
|
@@ -146,6 +146,7 @@ files:
|
|
146
146
|
- lib/blizzard_api/starcraft.rb
|
147
147
|
- lib/blizzard_api/starcraft/community/account.rb
|
148
148
|
- lib/blizzard_api/starcraft/community/ladder.rb
|
149
|
+
- lib/blizzard_api/starcraft/community/legacy.rb
|
149
150
|
- lib/blizzard_api/starcraft/community/profile.rb
|
150
151
|
- lib/blizzard_api/starcraft/game_data/league.rb
|
151
152
|
- lib/blizzard_api/starcraft/request.rb
|
@@ -155,11 +156,14 @@ files:
|
|
155
156
|
- lib/blizzard_api/wow/game_data/auction.rb
|
156
157
|
- lib/blizzard_api/wow/game_data/azerite_essence.rb
|
157
158
|
- lib/blizzard_api/wow/game_data/connected_realm.rb
|
159
|
+
- lib/blizzard_api/wow/game_data/covenant.rb
|
158
160
|
- lib/blizzard_api/wow/game_data/creature.rb
|
159
161
|
- lib/blizzard_api/wow/game_data/generic_data_endpoint.rb
|
160
162
|
- lib/blizzard_api/wow/game_data/guild_crest.rb
|
161
163
|
- lib/blizzard_api/wow/game_data/item.rb
|
162
164
|
- lib/blizzard_api/wow/game_data/journal.rb
|
165
|
+
- lib/blizzard_api/wow/game_data/media.rb
|
166
|
+
- lib/blizzard_api/wow/game_data/modified_crafting.rb
|
163
167
|
- lib/blizzard_api/wow/game_data/mount.rb
|
164
168
|
- lib/blizzard_api/wow/game_data/mythic_keystone.rb
|
165
169
|
- lib/blizzard_api/wow/game_data/mythic_keystone_affix.rb
|
@@ -179,6 +183,7 @@ files:
|
|
179
183
|
- lib/blizzard_api/wow/game_data/reputation.rb
|
180
184
|
- lib/blizzard_api/wow/game_data/spell.rb
|
181
185
|
- lib/blizzard_api/wow/game_data/talent.rb
|
186
|
+
- lib/blizzard_api/wow/game_data/tech_talent.rb
|
182
187
|
- lib/blizzard_api/wow/game_data/title.rb
|
183
188
|
- lib/blizzard_api/wow/game_data/wow_token.rb
|
184
189
|
- lib/blizzard_api/wow/profile/character_profile.rb
|
@@ -187,13 +192,16 @@ files:
|
|
187
192
|
- lib/blizzard_api/wow/request.rb
|
188
193
|
- lib/blizzard_api/wow/search/search_composer.rb
|
189
194
|
- lib/blizzard_api/wow/search/search_request.rb
|
190
|
-
|
195
|
+
- lib/blizzard_api/wow/slug.rb
|
196
|
+
homepage: https://github.com/francis-schiavo/blizzard_api
|
191
197
|
licenses:
|
192
198
|
- MIT
|
193
199
|
metadata:
|
194
|
-
homepage_uri: https://
|
195
|
-
source_code_uri: https://
|
196
|
-
|
200
|
+
homepage_uri: https://github.com/francis-schiavo/blizzard_api
|
201
|
+
source_code_uri: https://github.com/francis-schiavo/blizzard_api
|
202
|
+
bug_tracker_uri: https://github.com/francis-schiavo/blizzard_api/issues
|
203
|
+
changelog_uri: https://github.com/francis-schiavo/blizzard_api/blob/master/CHANGELOG.md
|
204
|
+
documentation_uri: https://rubydoc.info/gems/blizzard_api
|
197
205
|
post_install_message:
|
198
206
|
rdoc_options: []
|
199
207
|
require_paths:
|