blizzard_api 0.6.0 → 0.6.1

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: 7671ab9869534ec9c4c8031eac8e73ac9f389b9199cd9ca61a0e80127de66c53
4
- data.tar.gz: 915f7c1ff4b867b4b403dcb55128ab134b5012f380e90a8c589097ba57bf28a8
3
+ metadata.gz: 685ed4874fe22bf7c07093ae2865d2776763649d55db19bc358c94da9147486b
4
+ data.tar.gz: f499dbaa688ed302d84f06e91a586b7ee117c224703b5cdff1b65f893c8ddc00
5
5
  SHA512:
6
- metadata.gz: 50ce63d400f8997131913f6b677b3676bf68c5134d0acf5328276a37d861073f57004eb3c922821c261608a17610e25c956a1401633d99d25af68cb05c8729f8
7
- data.tar.gz: f57a645a37541c1ab06113439529822b84fe71808447303d04b25ba947e368754169e7cb6532482d584061c5a0708b1c7ecf0fe9392c896e236bc132f8c4885b
6
+ metadata.gz: 6e29618d647f7c1f5ed875600cc95cb458ba54e9714d9e06cf0119d3ce530e26d5de6b9874b57a80af09a6cc01fba8a9f1e2b30c44570c53a784c01caa07bdb8
7
+ data.tar.gz: d7b5f790f4027e267fb701786ccfc130d33cddbc1a2da62606ad863d6b5773bb88c02a3c0c066f3555d9fd2b88230fe5ff1825bb0bee82365946842f7bfc95d7
data/.rubocop.yml CHANGED
@@ -11,7 +11,7 @@ Metrics/AbcSize:
11
11
  Max: 20
12
12
 
13
13
  AllCops:
14
- TargetRubyVersion: 2.5
14
+ TargetRubyVersion: 2.7
15
15
  NewCops: enable
16
16
  Exclude:
17
17
  - 'vendor/**/*'
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 0.6.1**
4
+
5
+ Added support for TBCC and Classice Era endpoints.
6
+
3
7
  **Version 0.6.0**
4
8
 
5
9
  Upgraded gem dependencies and refactored the code to support Ruby 3.0.0
@@ -50,7 +50,7 @@ module BlizzardApi
50
50
  # How many threads to use for WoW game data `complete` payloads. Defaults to 4.
51
51
  # Should be set to the amount of available cores on the system.
52
52
  # @return [Integer] Concurrency
53
- attr_accessor :concurrency
53
+ attr_writer :concurrency
54
54
 
55
55
  ##
56
56
  # @!attribute access_token
@@ -9,7 +9,8 @@
9
9
  # @option options [Boolean] :ignore_cache If set to true the request will not use the cache
10
10
  # @option options [Integer] :ttl Override the default time (in seconds) a request should be cached
11
11
  # @option options [DateTime] :since Adds the If-modified-since headers. Will always ignore cache when set.
12
- # @option options [Integer] :concurrency How many threads to use for complete sets of data. BEWARE: Might cause 429 responses, in this case lower the number.
12
+ # @option options [Integer] :concurrency How many threads to use for complete sets of data.
13
+ # BEWARE: Might cause 429 responses, in this case lower the number.
13
14
 
14
15
  ##
15
16
  # @!macro [new] regions
@@ -84,16 +85,31 @@ module BlizzardApi
84
85
  format BASE_URLS[scope], region, @game
85
86
  end
86
87
 
88
+ ##
89
+ # Returns a valid version namespace
90
+ #
91
+ # @param [Hash] options A hash containing a valid namespace key
92
+ def endpoint_version(options)
93
+ if options.key? :classic
94
+ 'classic-'
95
+ elsif options.key? :classic1x
96
+ 'classic1x-'
97
+ else
98
+ ''
99
+ end
100
+ end
101
+
87
102
  ##
88
103
  # Returns a valid namespace string for consuming the api endpoints
89
104
  #
90
105
  # @param [Hash] options A hash containing the namespace key
91
106
  def endpoint_namespace(options)
107
+ version = endpoint_version(options)
92
108
  case options[:namespace]
93
109
  when :dynamic
94
- options.include?(:classic) ? "dynamic-classic-#{region}" : "dynamic-#{region}"
110
+ "dynamic-#{version}#{region}"
95
111
  when :static
96
- options.include?(:classic) ? "static-classic-#{region}" : "static-#{region}"
112
+ "static-#{version}#{region}"
97
113
  when :profile
98
114
  "profile-#{region}"
99
115
  else
@@ -137,7 +153,7 @@ module BlizzardApi
137
153
 
138
154
  def api_request(uri, **query_string)
139
155
  # List of request options
140
- options_key = %i[ignore_cache ttl format access_token namespace classic headers since]
156
+ options_key = %i[ignore_cache ttl format access_token namespace classic classic1x headers since]
141
157
 
142
158
  # Separates request options from api fields and options. Any user-defined option will be treated as api field.
143
159
  options = query_string.select { |k, _v| query_string.delete(k) || true if options_key.include? k }
@@ -41,7 +41,7 @@ module BlizzardApi
41
41
  def self.account(region = BlizzardApi.region)
42
42
  BlizzardApi::Starcraft::Account.new(region)
43
43
  end
44
-
44
+
45
45
  ##
46
46
  # @return {Legacy}
47
47
  def self.legacy(region = BlizzardApi.region)
@@ -10,7 +10,6 @@ module BlizzardApi
10
10
  # You can get an instance of this class using the default region as follows:
11
11
  # api_instance = BlizzardApi::Starcraft.legacy
12
12
  class Legacy < Starcraft::Request
13
-
14
13
  ##
15
14
  # Profile data
16
15
  #
@@ -49,7 +48,7 @@ module BlizzardApi
49
48
  opts = { ttl: CACHE_DAY }.merge(options)
50
49
  api_request "#{base_url(:community)}/legacy/profile/#{reg}/#{realm_id}/#{profile_id}/matches", opts
51
50
  end
52
-
51
+
53
52
  ##
54
53
  # Ladder
55
54
  #
@@ -61,7 +60,7 @@ module BlizzardApi
61
60
  opts = { ttl: CACHE_DAY }.merge(options)
62
61
  api_request "#{base_url(:community)}/legacy/ladder/#{reg}/#{ladder_id}", opts
63
62
  end
64
-
63
+
65
64
  ##
66
65
  # Achievement data
67
66
  #
@@ -72,7 +71,7 @@ module BlizzardApi
72
71
  opts = { ttl: CACHE_DAY }.merge(options)
73
72
  api_request "#{base_url(:community)}/legacy/data/achievements/#{reg}", opts
74
73
  end
75
-
74
+
76
75
  ##
77
76
  # Rewards data
78
77
  #
@@ -2,5 +2,5 @@
2
2
 
3
3
  module BlizzardApi
4
4
  # Gem version
5
- VERSION = '0.6.0'
5
+ VERSION = '0.6.1'
6
6
  end
@@ -10,15 +10,33 @@ module BlizzardApi
10
10
  # You can get an instance of this class using the default region as follows:
11
11
  # api_instance = BlizzardApi::Wow.auction
12
12
  class Auction < Wow::Request
13
+ ##
14
+ # Return all auction houses for the specified connected realm. Classic only.
15
+ #
16
+ # @param connected_realm_id [Integer] A valid connected realm id
17
+ # @!macro request_options
18
+ #
19
+ # @!macro response
20
+ def index(connected_realm_id, **options)
21
+ opts = { ttl: CACHE_HOUR, namespace: :dynamic }.merge(options)
22
+ api_request "#{base_url(:game_data)}/connected-realm/#{connected_realm_id}/auctions/index", **opts
23
+ end
24
+
13
25
  ##
14
26
  # Return all active auctions for the specified connected realm
15
27
  #
16
28
  # @param connected_realm_id [Integer] A valid connected realm id
17
29
  # @!macro request_options
30
+ # @option options [Boolean] :classic1x If set to true, this method will call the classic era version
18
31
  #
19
32
  # @!macro response
20
- def get(connected_realm_id, **options)
33
+ def get(connected_realm_id, auction_house_id = nil, **options)
21
34
  opts = { ttl: CACHE_HOUR, namespace: :dynamic }.merge(options)
35
+
36
+ unless auction_house_id.nil?
37
+ return api_request "#{base_url(:game_data)}/connected-realm/#{connected_realm_id}/auctions/#{auction_house_id}", **opts
38
+ end
39
+
22
40
  api_request "#{base_url(:game_data)}/connected-realm/#{connected_realm_id}/auctions", **opts
23
41
  end
24
42
  end
@@ -13,7 +13,7 @@ module BlizzardApi
13
13
  include BlizzardApi::Wow::Searchable
14
14
 
15
15
  def index
16
- raise BlizzardApi::ApiException, 'Creatures endpoint doesn\'t have a index method'
16
+ raise BlizzardApi::ApiException, 'Creatures endpoint doesn\'t have an index method'
17
17
  end
18
18
 
19
19
  def complete
@@ -25,6 +25,7 @@ module BlizzardApi
25
25
  #
26
26
  # @!macro request_options
27
27
  # @option options [Boolean] :classic If set to true, this method will call the classic version
28
+ # @option options [Boolean] :classic1x If set to true, this method will call the classic era version
28
29
  #
29
30
  # @!macro response
30
31
  def families(**options)
@@ -38,6 +39,7 @@ module BlizzardApi
38
39
  #
39
40
  # @!macro request_options
40
41
  # @option options [Boolean] :classic If set to true, this method will call the classic version
42
+ # @option options [Boolean] :classic1x If set to true, this method will call the classic era version
41
43
  #
42
44
  # @!macro response
43
45
  def family(id, **options)
@@ -51,6 +53,7 @@ module BlizzardApi
51
53
  #
52
54
  # @!macro request_options
53
55
  # @option options [Boolean] :classic If set to true, this method will call the classic version
56
+ # @option options [Boolean] :classic1x If set to true, this method will call the classic era version
54
57
  #
55
58
  # @!macro response
56
59
  def family_media(id, **options)
@@ -62,6 +65,7 @@ module BlizzardApi
62
65
  #
63
66
  # @!macro request_options
64
67
  # @option options [Boolean] :classic If set to true, this method will call the classic version
68
+ # @option options [Boolean] :classic1x If set to true, this method will call the classic era version
65
69
  #
66
70
  # @!macro response
67
71
  def types(**options)
@@ -75,6 +79,7 @@ module BlizzardApi
75
79
  #
76
80
  # @!macro request_options
77
81
  # @option options [Boolean] :classic If set to true, this method will call the classic version
82
+ # @option options [Boolean] :classic1x If set to true, this method will call the classic era version
78
83
  #
79
84
  # @!macro response
80
85
  def type(id, **options)
@@ -88,6 +93,7 @@ module BlizzardApi
88
93
  #
89
94
  # @!macro request_options
90
95
  # @option options [Boolean] :classic If set to true, this method will call the classic version
96
+ # @option options [Boolean] :classic1x If set to true, this method will call the classic era version
91
97
  #
92
98
  # @!macro response
93
99
  def display_media(id, **options)
@@ -21,6 +21,7 @@ module BlizzardApi
21
21
  #
22
22
  # @!macro request_options
23
23
  # @option options [Boolean] :classic If set to true, this method will call the classic version
24
+ # @option options [Boolean] :classic1x If set to true, this method will call the classic era version
24
25
  #
25
26
  # @!macro response
26
27
  def border_media(id, **options)
@@ -32,6 +33,7 @@ module BlizzardApi
32
33
  #
33
34
  # @param id [Integer] Emblem id
34
35
  # @option options [Boolean] :classic If set to true, this method will call the classic version
36
+ # @option options [Boolean] :classic1x If set to true, this method will call the classic era version
35
37
  #
36
38
  # @!macro request_options
37
39
  #
@@ -33,6 +33,7 @@ module BlizzardApi
33
33
  #
34
34
  # @!macro request_options
35
35
  # @option options [Boolean] :classic If set to true, this method will call the classic version
36
+ # @option options [Boolean] :classic1x If set to true, this method will call the classic era version
36
37
  #
37
38
  # @!macro response
38
39
  def classes(**options)
@@ -45,6 +46,7 @@ module BlizzardApi
45
46
  # @param id [Integer] Item class id
46
47
  # @!macro request_options
47
48
  # @option options [Boolean] :classic If set to true, this method will call the classic version
49
+ # @option options [Boolean] :classic1x If set to true, this method will call the classic era version
48
50
  #
49
51
  # @!macro response
50
52
  def class(id, **options)
@@ -58,6 +60,7 @@ module BlizzardApi
58
60
  # @param subclass_id [Integer] Item subclass id
59
61
  # @!macro request_options
60
62
  # @option options [Boolean] :classic If set to true, this method will call the classic version
63
+ # @option options [Boolean] :classic1x If set to true, this method will call the classic era version
61
64
  #
62
65
  # @!macro response
63
66
  def subclass(id, subclass_id, **options)
@@ -71,6 +74,7 @@ module BlizzardApi
71
74
  #
72
75
  # @!macro request_options
73
76
  # @option options [Boolean] :classic If set to true, this method will call the classic version
77
+ # @option options [Boolean] :classic1x If set to true, this method will call the classic era version
74
78
  #
75
79
  # @!macro response
76
80
  def media(id, **options)
@@ -30,7 +30,7 @@ module BlizzardApi
30
30
  # This method overrides the inherited default behavior to prevent high server load and fetch time
31
31
  #
32
32
  # @!macro response
33
- def get(_id, **options)
33
+ def get(_id)
34
34
  raise BlizzardApi::ApiException, 'This endpoint does not have a get method'
35
35
  end
36
36
 
@@ -25,6 +25,7 @@ module BlizzardApi
25
25
  # @!macro complete
26
26
  #
27
27
  # @option options [Boolean] :classic If set to true, this method will call the classic version
28
+ # @option options [Boolean] :classic1x If set to true, this method will call the classic era version
28
29
  def complete(**options)
29
30
  index_data = index(**options)
30
31
  [].tap do |classes|
@@ -43,6 +44,7 @@ module BlizzardApi
43
44
  #
44
45
  # @!macro request_options
45
46
  # @option options [Boolean] :classic If set to true, this method will call the classic version
47
+ # @option options [Boolean] :classic1x If set to true, this method will call the classic era version
46
48
  #
47
49
  # @!macro response
48
50
  def get(id, **options)
@@ -14,6 +14,7 @@ module BlizzardApi
14
14
  # Returns a index of pvp leaderboard for a season
15
15
  #
16
16
  # @!macro request_options
17
+ # @option options [Boolean] :classic1x If set to true, this method will call the classic era version
17
18
  #
18
19
  # @!macro response
19
20
  def leaderboards(season_id, **options)
@@ -24,6 +25,7 @@ module BlizzardApi
24
25
  # Returns the leaderboard for a given season and bracket
25
26
  #
26
27
  # @!macro request_options
28
+ # @option options [Boolean] :classic1x If set to true, this method will call the classic era version
27
29
  #
28
30
  # @!macro response
29
31
  def leaderboard(season_id, brackets, **options)
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.6.0
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Francis Schiavo
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-05-11 00:00:00.000000000 Z
11
+ date: 2021-07-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis