blizzard_api 0.3.0 → 0.3.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1d9e981de12146c8fa8c57320363113050ff5415e7b6ae41422ec945f113b560
4
- data.tar.gz: 8f262b1cc6376a60f1dc8705a49b6dd0dc2b6ce295e24b563a269ce55a24aaf4
3
+ metadata.gz: 45f2875f44a7d4af854565cd63f33286da88a5d0be8ef48bdda7ad3afa967787
4
+ data.tar.gz: 561caa05b1ce6d7d4ffcd041e63ffa865b136fc6c556c32b6423eff08c48440d
5
5
  SHA512:
6
- metadata.gz: 3eb0e63dea5d778a83264ac54b45acfa664e13ce695495e91238b98e169c8e18c9ab69f72cb12a2a25aad5c633c788a66ad8843e721a7a51fec63c013a144cbc
7
- data.tar.gz: a952007d42101fedaea6f22cc1ed0e148bec4fc5f890803121e27c178c4563c13414760d8910e627476e2e30c650aa2eb257421ed555a71fa6704946f63f9c6e
6
+ metadata.gz: 25c9fdc5b2263f7e556c494db66d15b56574ddd9a05694236d90ff25ed6edcf9702cdd8f83dd5977d3f6e4c67e2f0288e0eeb80e6c0f944e8a09fef51ae55662
7
+ data.tar.gz: b80581204677d04b6cde838f9b9ca348787ffa2fb2d15706a4f43c86911eaf06e67d3b6c7a2806aa266dda71a9405c09db197239f10ece171e8c47e0da923b21
@@ -1,5 +1,14 @@
1
1
  Please view this file on the master branch, otherwise it may be outdated
2
2
 
3
+ **Version 0.3.1**
4
+
5
+ https://us.forums.blizzard.com/en/blizzard/t/hearthstone-api-updates/2978
6
+
7
+ Hearthstone updates:
8
+
9
+ * Added the new Cardback endpoint
10
+ * Card endpoint now supports the new `gameMode` search option
11
+
3
12
  **Version 0.3.0**
4
13
 
5
14
  https://us.forums.blizzard.com/en/blizzard/t/starcraft-ii-community-api-update/2652
@@ -36,4 +36,4 @@ DEPENDENCIES
36
36
  rubocop (~> 0.61)
37
37
 
38
38
  BUNDLED WITH
39
- 1.17.3
39
+ 2.1.2
@@ -8,6 +8,7 @@ module BlizzardApi
8
8
 
9
9
  # Hearthstone data api
10
10
  require_relative 'hearthstone/game_data/card'
11
+ require_relative 'hearthstone/game_data/back'
11
12
  require_relative 'hearthstone/game_data/deck'
12
13
  require_relative 'hearthstone/game_data/metadata'
13
14
 
@@ -17,6 +18,12 @@ module BlizzardApi
17
18
  BlizzardApi::Hearthstone::Card.new
18
19
  end
19
20
 
21
+ ##
22
+ # @return {Back}
23
+ def self.back
24
+ BlizzardApi::Hearthstone::Back.new
25
+ end
26
+
20
27
  ##
21
28
  # @return {Deck}
22
29
  def self.deck
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BlizzardApi
4
+ module Hearthstone
5
+ ##
6
+ # This class allows access to Hearthstone card data
7
+ #
8
+ # @see https://develop.battle.net/documentation/api-reference/hearthstone-game-data-api
9
+ # @see https://develop.battle.net/documentation/hearthstone/guides/card-backs
10
+ #
11
+ # You can get an instance of this class using the default region as follows:
12
+ # api_instance = BlizzardApi::Hearthstone.card
13
+ class Back < Hearthstone::GenericDataEndpoint
14
+ # Valid options for card search
15
+ VALID_SEARCH_OPTIONS = %i[
16
+ cardBackCategory
17
+ textFilter
18
+ sort
19
+ order
20
+ ].freeze
21
+
22
+ ##
23
+ # Returns an up-to-date list of all card backs matching the search criteria. For more information about the
24
+ # search parameters, see the Card Backs Guide.
25
+ #
26
+ # @param search_options [Hash] Search options accepted by the endpoint
27
+ # @option search_options [String] :cardBackCategory A category of the card back. The category must match a valid category.
28
+ # @option search_options [String] :textFilter A text string used to filter cards.
29
+ # You must include a locale along with the textFilter parameter.
30
+ # @option search_options [String] :sort The field used to sort the results. Valid value include name.
31
+ # Results are sorted by date (desc) by default.
32
+ # @option search_options [String] :order The order in which to sort the results.
33
+ # Valid values are asc or desc. The default value is asc.
34
+ # @!macro request_options
35
+ # @option options [Boolean] :validate_fields If set to true, this method will throw an exception if nay search
36
+ # option is invalid
37
+ #
38
+ # @!macro response
39
+ def search(search_options = {}, options = {})
40
+ validate_search_options search_options if options.include? :validate_fields
41
+
42
+ api_request "#{base_url(:community)}/cardbacks", default_options.merge(options).merge(search_options)
43
+ end
44
+
45
+ protected
46
+
47
+ def validate_search_options(search_options)
48
+ search_options.each do |field|
49
+ raise ArgumentError, "Unrecognized search option #{field}" unless VALID_SEARCH_OPTIONS.include? field
50
+ end
51
+ end
52
+
53
+ def endpoint_setup
54
+ @endpoint = 'cardbacks'
55
+ @ttl = CACHE_TRIMESTER
56
+ end
57
+ end
58
+ end
59
+ end
@@ -6,6 +6,7 @@ module BlizzardApi
6
6
  # This class allows access to Hearthstone card data
7
7
  #
8
8
  # @see https://develop.battle.net/documentation/api-reference/hearthstone-game-data-api
9
+ # @see https://develop.battle.net/documentation/hearthstone/guides/card-search
9
10
  #
10
11
  # You can get an instance of this class using the default region as follows:
11
12
  # api_instance = BlizzardApi::Hearthstone.card
@@ -23,6 +24,7 @@ module BlizzardApi
23
24
  minionType
24
25
  keyword
25
26
  textFilter
27
+ gameMode
26
28
  page
27
29
  pageSize
28
30
  sort
@@ -55,6 +57,8 @@ module BlizzardApi
55
57
  # and so on). This value must match the keyword slugs found in metadata.
56
58
  # @option search_options [String] :textFilter A text string used to filter cards.
57
59
  # You must include a locale along with the textFilter parameter.
60
+ # @option search_options [String] :gameMode A recognized game mode (for example, battlegrounds or constructed).
61
+ # The default value is constructed. See the Game Modes Guide for more information.
58
62
  # @option search_options [Integer] :page A page number.
59
63
  # @option search_options [Integer] :pageSize The number of results to choose per page.
60
64
  # A value will be selected automatically if you do not supply a pageSize or if the pageSize is higher than the
@@ -74,6 +78,22 @@ module BlizzardApi
74
78
  api_request "#{base_url(:community)}/cards", default_options.merge(options).merge(search_options)
75
79
  end
76
80
 
81
+ ##
82
+ # Returns the card with an ID or slug that matches the one you specify. For more information, see the Card Search Guide.
83
+ #
84
+ # @see https://develop.battle.net/documentation/hearthstone/guides/card-search
85
+ # @see https://develop.battle.net/documentation/hearthstone/guides/game-modes
86
+ #
87
+ # @param id_or_slug [String] Card ID or slug
88
+ # @param game_mode [String] A recognized game mode (for example, battlegrounds or constructed).
89
+ # The default value is constructed. See the Game Modes Guide for more information.
90
+ # @!macro request_options
91
+ #
92
+ # @!macro response
93
+ def get(id_or_slug, game_mode = 'constructed', options = {})
94
+ super id_or_slug, { gameMode: game_mode }.merge(options)
95
+ end
96
+
77
97
  protected
78
98
 
79
99
  def validate_search_options(search_options)
@@ -6,6 +6,7 @@ module BlizzardApi
6
6
  # This class allows access to Hearthstone deck data
7
7
  #
8
8
  # @see https://develop.battle.net/documentation/api-reference/hearthstone-game-data-api
9
+ # @see https://develop.battle.net/documentation/hearthstone/guides/decks
9
10
  #
10
11
  # You can get an instance of this class using the default region as follows:
11
12
  # api_instance = BlizzardApi::Hearthstone.deck
@@ -27,7 +27,7 @@ module BlizzardApi
27
27
  ##
28
28
  # Fetch all possible data for one of items listed by the {#index} using its *id*
29
29
  #
30
- # @param [Integer] id One of the IDs returned by the {#index}
30
+ # @param [Integer|String] id One of the IDs returned by the {#index}
31
31
  # @!macro request_options
32
32
  #
33
33
  # @!macro response
@@ -6,6 +6,7 @@ module BlizzardApi
6
6
  # This class allows access to Hearthstone metadata data
7
7
  #
8
8
  # @see https://develop.battle.net/documentation/api-reference/hearthstone-game-data-api
9
+ # https://develop.battle.net/documentation/hearthstone/guides/metadata
9
10
  #
10
11
  # You can get an instance of this class using the default region as follows:
11
12
  # api_instance = BlizzardApi::Hearthstone.metadata
@@ -2,5 +2,5 @@
2
2
 
3
3
  module BlizzardApi
4
4
  # Gem version
5
- VERSION = '0.3.0'
5
+ VERSION = '0.3.1'
6
6
  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: 0.3.0
4
+ version: 0.3.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: 2020-01-07 00:00:00.000000000 Z
11
+ date: 2020-01-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis
@@ -108,6 +108,7 @@ files:
108
108
  - lib/blizzard_api/diablo/request.rb
109
109
  - lib/blizzard_api/exception.rb
110
110
  - lib/blizzard_api/hearthstone.rb
111
+ - lib/blizzard_api/hearthstone/game_data/back.rb
111
112
  - lib/blizzard_api/hearthstone/game_data/card.rb
112
113
  - lib/blizzard_api/hearthstone/game_data/deck.rb
113
114
  - lib/blizzard_api/hearthstone/game_data/generic_data_endpoint.rb