blizzard_api 3.0.0 → 3.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/Gemfile.lock +1 -1
- data/lib/blizzard_api/api_response.rb +3 -0
- data/lib/blizzard_api/diablo/community/{character.rb → character_class.rb} +1 -1
- data/lib/blizzard_api/diablo/game_data/generic_data_endpoint.rb +1 -1
- data/lib/blizzard_api/diablo.rb +2 -2
- data/lib/blizzard_api/hearthstone/game_data/generic_data_endpoint.rb +1 -1
- data/lib/blizzard_api/request.rb +15 -5
- data/lib/blizzard_api/version.rb +1 -1
- data/lib/blizzard_api/wow/game_data/guild_crest.rb +1 -1
- data/lib/blizzard_api/wow/game_data/reputation.rb +1 -1
- data/lib/blizzard_api/wow/game_data/spell.rb +1 -1
- data/lib/blizzard_api/wow/game_data/wow_token.rb +5 -10
- data/lib/blizzard_api/wow/profile/character_profile.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 680ed6a0b92283da14b06fd82d2b68d907f54ae43286dcdadce49c59d5d2f006
|
4
|
+
data.tar.gz: 55533dafd67060eaa7c5100da709d9477941cbc3e1d110d01feb7384857bb791
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9f389ae7148b0e0527cbae0f00153e9db2d400496223c4c69a86149720115d39959e69365004914128a53072dc838bcec5161d9a436e880a7e96bd8ac39d5669
|
7
|
+
data.tar.gz: cbcfceaeab33b4a85e6c0fe6d408c2762e4cd0ba14fadb471eec2ff00e246e0982bcc7e3820d56c87788e0a011d2055e0b27fb0e4effbb795c0435b93bd0f1d1
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
Please view this file on the master branch, otherwise it may be outdated
|
2
2
|
|
3
|
+
**Version 3.1.0**
|
4
|
+
|
5
|
+
Fixed the latest build to exclude non 200 responses from caching.
|
6
|
+
|
3
7
|
**Version 3.0.0**
|
4
8
|
|
5
9
|
Changed the way `:extended` mode is handled regarding caching. Now the extended mode will use cache and return a fake
|
data/Gemfile.lock
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module BlizzardApi
|
2
4
|
##
|
3
5
|
# Simple replacement for the http response object for cached data
|
@@ -16,6 +18,7 @@ module BlizzardApi
|
|
16
18
|
end
|
17
19
|
|
18
20
|
module Net
|
21
|
+
# Workaround for fake response payloads
|
19
22
|
class HTTPResponse
|
20
23
|
def cached?
|
21
24
|
false
|
@@ -9,7 +9,7 @@ module BlizzardApi
|
|
9
9
|
#
|
10
10
|
# You can get an instance of this class using the default region as follows:
|
11
11
|
# api_instance = BlizzardApi::Diablo.character
|
12
|
-
class
|
12
|
+
class CharacterClass < BlizzardApi::Diablo::Request
|
13
13
|
##
|
14
14
|
# Return information about a class
|
15
15
|
#
|
@@ -35,7 +35,7 @@ module BlizzardApi
|
|
35
35
|
# Fetch leaderboard data for the current endpoint
|
36
36
|
#
|
37
37
|
# @param [Integer] id One of the IDs returned by the {index}
|
38
|
-
# @param [
|
38
|
+
# @param [String] leaderboard_id Leaderboard id
|
39
39
|
# @!macro request_options
|
40
40
|
#
|
41
41
|
# @!macro response
|
data/lib/blizzard_api/diablo.rb
CHANGED
@@ -34,7 +34,7 @@ module BlizzardApi
|
|
34
34
|
require_relative 'diablo/community/act'
|
35
35
|
require_relative 'diablo/community/artisan'
|
36
36
|
require_relative 'diablo/community/follower'
|
37
|
-
require_relative 'diablo/community/
|
37
|
+
require_relative 'diablo/community/character_class'
|
38
38
|
require_relative 'diablo/community/item_type'
|
39
39
|
require_relative 'diablo/community/item'
|
40
40
|
require_relative 'diablo/community/profile'
|
@@ -64,7 +64,7 @@ module BlizzardApi
|
|
64
64
|
# @!macro init_options
|
65
65
|
# @return {Character}
|
66
66
|
def self.character(**options)
|
67
|
-
BlizzardApi::Diablo::
|
67
|
+
BlizzardApi::Diablo::CharacterClass.new(**options)
|
68
68
|
end
|
69
69
|
|
70
70
|
##
|
data/lib/blizzard_api/request.rb
CHANGED
@@ -82,7 +82,6 @@ module BlizzardApi
|
|
82
82
|
def request(url, **options)
|
83
83
|
# Creates the whole url for request
|
84
84
|
parsed_url = URI.parse(url)
|
85
|
-
|
86
85
|
data = using_cache?(options) ? find_in_cache(parsed_url.to_s) : nil
|
87
86
|
|
88
87
|
# If data was found that means cache is enabled and valid
|
@@ -90,9 +89,20 @@ module BlizzardApi
|
|
90
89
|
|
91
90
|
response = consume_api parsed_url, **options
|
92
91
|
|
93
|
-
|
94
|
-
|
92
|
+
handle_cache_on_response parsed_url, response, **options
|
93
|
+
end
|
95
94
|
|
95
|
+
def handle_cache_on_response(parsed_url, response, **options)
|
96
|
+
case response.code.to_i
|
97
|
+
when 304
|
98
|
+
response_data = nil
|
99
|
+
when 200
|
100
|
+
response_data = response.body
|
101
|
+
else
|
102
|
+
return nil, response
|
103
|
+
end
|
104
|
+
|
105
|
+
save_in_cache parsed_url.to_s, response.body, options[:ttl] || CACHE_DAY if using_cache? options
|
96
106
|
prepare_response response_data, response
|
97
107
|
end
|
98
108
|
|
@@ -119,12 +129,12 @@ module BlizzardApi
|
|
119
129
|
|
120
130
|
##
|
121
131
|
# Resolves the response based on the mode
|
122
|
-
def prepare_response(data, response =
|
132
|
+
def prepare_response(data, response = nil)
|
123
133
|
parsed_data = data.nil? ? data : JSON.parse(data, symbolize_names: true)
|
124
134
|
|
125
135
|
return parsed_data unless mode.eql? :extended
|
126
136
|
|
127
|
-
response
|
137
|
+
response ||= ApiResponse.new(data)
|
128
138
|
|
129
139
|
[response, parsed_data]
|
130
140
|
end
|
data/lib/blizzard_api/version.rb
CHANGED
@@ -9,16 +9,11 @@ module BlizzardApi
|
|
9
9
|
#
|
10
10
|
# You can get an instance of this class using the default region as follows:
|
11
11
|
# api_instance = BlizzardApi::Wow.wow_token
|
12
|
-
class WowToken <
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
#
|
18
|
-
# @!macro response
|
19
|
-
def get(**options)
|
20
|
-
opts = { namespace: :dynamic, ttl: CACHE_HOUR }.merge(options)
|
21
|
-
api_request "#{base_url(:game_data)}/token/index", **opts
|
12
|
+
class WowToken < GenericDataEndpoint
|
13
|
+
setup 'token', :dynamic, CACHE_HOUR
|
14
|
+
|
15
|
+
def get
|
16
|
+
raise BlizzardApi::ApiException, 'This endpoint does not have a index method'
|
22
17
|
end
|
23
18
|
end
|
24
19
|
end
|
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: 3.
|
4
|
+
version: 3.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Francis Schiavo
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-04-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: redis
|
@@ -127,7 +127,7 @@ files:
|
|
127
127
|
- lib/blizzard_api/diablo.rb
|
128
128
|
- lib/blizzard_api/diablo/community/act.rb
|
129
129
|
- lib/blizzard_api/diablo/community/artisan.rb
|
130
|
-
- lib/blizzard_api/diablo/community/
|
130
|
+
- lib/blizzard_api/diablo/community/character_class.rb
|
131
131
|
- lib/blizzard_api/diablo/community/follower.rb
|
132
132
|
- lib/blizzard_api/diablo/community/item.rb
|
133
133
|
- lib/blizzard_api/diablo/community/item_type.rb
|