blizzard_api 0.2.0

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.
Files changed (64) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +12 -0
  3. data/.gitlab-ci.yml +28 -0
  4. data/.rubocop.yml +13 -0
  5. data/.rubocop_todo.yml +7 -0
  6. data/.travis.yml +7 -0
  7. data/CHANGELOG.md +4 -0
  8. data/Gemfile +8 -0
  9. data/Gemfile.lock +44 -0
  10. data/LICENSE.txt +21 -0
  11. data/README.md +208 -0
  12. data/Rakefile +12 -0
  13. data/bin/console +14 -0
  14. data/bin/setup +8 -0
  15. data/blizzard_api.gemspec +42 -0
  16. data/lib/blizzard_api.rb +14 -0
  17. data/lib/blizzard_api/configuration.rb +82 -0
  18. data/lib/blizzard_api/diablo.rb +76 -0
  19. data/lib/blizzard_api/diablo/community/act.rb +35 -0
  20. data/lib/blizzard_api/diablo/community/artisan.rb +38 -0
  21. data/lib/blizzard_api/diablo/community/character.rb +38 -0
  22. data/lib/blizzard_api/diablo/community/follower.rb +25 -0
  23. data/lib/blizzard_api/diablo/community/item.rb +26 -0
  24. data/lib/blizzard_api/diablo/community/item_type.rb +35 -0
  25. data/lib/blizzard_api/diablo/community/profile.rb +77 -0
  26. data/lib/blizzard_api/diablo/game_data/era.rb +21 -0
  27. data/lib/blizzard_api/diablo/game_data/generic_data_endpoint.rb +58 -0
  28. data/lib/blizzard_api/diablo/game_data/season.rb +21 -0
  29. data/lib/blizzard_api/diablo/request.rb +15 -0
  30. data/lib/blizzard_api/exception.rb +12 -0
  31. data/lib/blizzard_api/request.rb +182 -0
  32. data/lib/blizzard_api/starcraft.rb +40 -0
  33. data/lib/blizzard_api/starcraft/community/account.rb +23 -0
  34. data/lib/blizzard_api/starcraft/community/ladder.rb +34 -0
  35. data/lib/blizzard_api/starcraft/community/profile.rb +76 -0
  36. data/lib/blizzard_api/starcraft/game_data/league.rb +27 -0
  37. data/lib/blizzard_api/starcraft/request.rb +36 -0
  38. data/lib/blizzard_api/version.rb +6 -0
  39. data/lib/blizzard_api/wow.rb +167 -0
  40. data/lib/blizzard_api/wow/community/achievements.rb +45 -0
  41. data/lib/blizzard_api/wow/community/auction.rb +25 -0
  42. data/lib/blizzard_api/wow/community/boss.rb +35 -0
  43. data/lib/blizzard_api/wow/community/challenge.rb +35 -0
  44. data/lib/blizzard_api/wow/community/character.rb +103 -0
  45. data/lib/blizzard_api/wow/community/guild.rb +67 -0
  46. data/lib/blizzard_api/wow/community/item.rb +46 -0
  47. data/lib/blizzard_api/wow/community/mount.rb +24 -0
  48. data/lib/blizzard_api/wow/community/pets.rb +85 -0
  49. data/lib/blizzard_api/wow/community/pvp.rb +34 -0
  50. data/lib/blizzard_api/wow/community/quest.rb +25 -0
  51. data/lib/blizzard_api/wow/community/recipe.rb +25 -0
  52. data/lib/blizzard_api/wow/community/spell.rb +25 -0
  53. data/lib/blizzard_api/wow/community/zone.rb +35 -0
  54. data/lib/blizzard_api/wow/game_data/connected_realm.rb +37 -0
  55. data/lib/blizzard_api/wow/game_data/generic_data_endpoint.rb +58 -0
  56. data/lib/blizzard_api/wow/game_data/mythic_keystone_affix.rb +23 -0
  57. data/lib/blizzard_api/wow/game_data/playable_class.rb +62 -0
  58. data/lib/blizzard_api/wow/game_data/playable_specialization.rb +70 -0
  59. data/lib/blizzard_api/wow/game_data/power_type.rb +23 -0
  60. data/lib/blizzard_api/wow/game_data/race.rb +51 -0
  61. data/lib/blizzard_api/wow/game_data/realm.rb +48 -0
  62. data/lib/blizzard_api/wow/game_data/region.rb +49 -0
  63. data/lib/blizzard_api/wow/request.rb +16 -0
  64. metadata +198 -0
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BlizzardApi
4
+ module Wow
5
+ ##
6
+ # This class allows access to World of Warcraft mythic keystone affixes
7
+ #
8
+ # @see https://develop.battle.net/documentation/api-reference/world-of-warcraft-game-data-api
9
+ #
10
+ # You can get an instance of this class using the default region as follows:
11
+ # api_instance = BlizzardApi::Wow.mythic_keystone_affix
12
+ class MythicKeystoneAffix < Wow::GenericDataEndpoint
13
+ protected
14
+
15
+ def endpoint_setup
16
+ @endpoint = 'keystone-affix'
17
+ @namespace = endpoint_namespace :static
18
+ @collection = 'affixes'
19
+ @ttl = CACHE_TRIMESTER
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,62 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BlizzardApi
4
+ module Wow
5
+ ##
6
+ # This class allows access to World of Warcraft playable classes
7
+ #
8
+ # @see https://develop.battle.net/documentation/api-reference/world-of-warcraft-game-data-api
9
+ #
10
+ # You can get an instance of this class using the default region as follows:
11
+ # api_instance = BlizzardApi::Wow.playable_class
12
+ class PlayableClass < Wow::GenericDataEndpoint
13
+ ##
14
+ # Returns a index of playable classes
15
+ #
16
+ # @!macro request_options
17
+ # @option options [Boolean] :use_community_endpoint If set to true, this method will call the community endpoint
18
+ # instead of the data endpoint https://develop.battle.net/documentation/api-reference/world-of-warcraft-community-api
19
+ #
20
+ # @!macro response
21
+ def index(options = {})
22
+ return super options unless options.include? :use_community_endpoint
23
+
24
+ api_request "#{base_url(:community)}/data/character/classes", { ttl: CACHE_TRIMESTER }.merge(options)
25
+ end
26
+
27
+ ##
28
+ # Returns the PvP talent slots data of a specific class
29
+ #
30
+ # @param id [Integer] Class id to fetch talent data. One of the IDs returned by the {index} method
31
+ # @!macro request_options
32
+ #
33
+ # @!macro response
34
+ def talent_slots(id, options = {})
35
+ api_request "#{base_url(:game_data)}/#{@endpoint}/#{id}/pvp-talent-slots", default_options.merge(options)
36
+ end
37
+
38
+ ##
39
+ # @!macro complete
40
+ def complete(options = {})
41
+ index_data = index options
42
+ [].tap do |classes|
43
+ index_data[:classes].each do |pclass|
44
+ class_id = %r{playable-class/([0-9]+)}.match(pclass[:key].to_s)[1]
45
+ class_data = get class_id, options
46
+ class_data.delete :_links
47
+ classes.push class_data
48
+ end
49
+ end
50
+ end
51
+
52
+ protected
53
+
54
+ def endpoint_setup
55
+ @endpoint = 'playable-class'
56
+ @namespace = endpoint_namespace :static
57
+ @collection = 'classes'
58
+ @ttl = CACHE_TRIMESTER
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,70 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BlizzardApi
4
+ module Wow
5
+ ##
6
+ # This class allows access to World of Warcraft playable specializations
7
+ #
8
+ # @see https://develop.battle.net/documentation/api-reference/world-of-warcraft-game-data-api
9
+ #
10
+ # You can get an instance of this class using the default region as follows:
11
+ # spec = BlizzardApi::Wow.playable_specialization
12
+ class PlayableSpecialization < Wow::GenericDataEndpoint
13
+ ##
14
+ # @!macro complete
15
+ def complete(options = {})
16
+ index_data = index options
17
+ response_data = OpenStruct.new
18
+ response_data.character_specializations = character_data(index_data, options)
19
+ response_data.pet_specializations = pet_data(index_data, options)
20
+ response_data
21
+ end
22
+
23
+ protected
24
+
25
+ def endpoint_setup
26
+ @endpoint = 'playable-specialization'
27
+ @namespace = endpoint_namespace :static
28
+ @collection = 'playable_specialization'
29
+ @ttl = CACHE_TRIMESTER
30
+ end
31
+
32
+ private
33
+
34
+ def character_data(index_data, options)
35
+ [].tap do |specs|
36
+ index_data[:character_specializations].each do |spec|
37
+ spec_id = %r{playable-specialization/([0-9]+)}.match(spec[:key].to_s)[1]
38
+ spec_data = get spec_id, options
39
+ spec_data[:icon] = resolve_icon(spec_data[:media][:key][:href])
40
+ cleanup spec_data
41
+ specs.push spec_data
42
+ end
43
+ end
44
+ end
45
+
46
+ def pet_data(index_data, options)
47
+ [].tap do |specs|
48
+ index_data[:pet_specializations].each do |spec|
49
+ spec_id = %r{playable-specialization/([0-9]+)}.match(spec[:key].to_s)[1]
50
+ spec_data = get spec_id, options
51
+ spec_data[:icon] = resolve_icon(spec_data[:media][:key][:href])
52
+ cleanup spec_data
53
+ specs.push spec_data
54
+ end
55
+ end
56
+ end
57
+
58
+ def cleanup(data)
59
+ data.delete :_links
60
+ data[:playable_class].delete :key
61
+ data.delete :media
62
+ end
63
+
64
+ def resolve_icon(media_url)
65
+ media_data = api_request(media_url)
66
+ media_data[:assets][0][:value]
67
+ end
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BlizzardApi
4
+ module Wow
5
+ ##
6
+ # This class allows access to World of Warcraft power types
7
+ #
8
+ # @see https://develop.battle.net/documentation/api-reference/world-of-warcraft-game-data-api
9
+ #
10
+ # You can get an instance of this class using the default region as follows:
11
+ # api_instance = BlizzardApi::Wow.power_type
12
+ class PowerType < Wow::GenericDataEndpoint
13
+ protected
14
+
15
+ def endpoint_setup
16
+ @endpoint = 'power-type'
17
+ @namespace = endpoint_namespace :static
18
+ @collection = 'power_types'
19
+ @ttl = CACHE_TRIMESTER
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BlizzardApi
4
+ module Wow
5
+ ##
6
+ # This class allows access to World of Warcraft playable races
7
+ #
8
+ # @see https://develop.battle.net/documentation/api-reference/world-of-warcraft-game-data-api
9
+ #
10
+ # You can get an instance of this class using the default region as follows:
11
+ # race = BlizzardApi::Wow.race
12
+ class Race < Wow::GenericDataEndpoint
13
+ ##
14
+ # Returns a index of playable races
15
+ #
16
+ # @!macro request_options
17
+ # @option options [Boolean] :use_community_endpoint If set to true, this method will call the community endpoint
18
+ # instead of the data endpoint https://develop.battle.net/documentation/api-reference/world-of-warcraft-community-api
19
+ #
20
+ # @!macro response
21
+ def index(options = {})
22
+ return super options unless options.include? :use_community_endpoint
23
+
24
+ api_request "#{base_url(:community)}/data/character/races", { ttl: CACHE_TRIMESTER }.merge(options)
25
+ end
26
+
27
+ ##
28
+ # @!macro complete
29
+ def complete(options = {})
30
+ index_data = index options
31
+ [].tap do |races|
32
+ index_data[:races].each do |race|
33
+ race_id = %r{race/([0-9]+)}.match(race[:key].to_s)[1]
34
+ race_data = get race_id, options
35
+ race_data.delete :name
36
+ races.push race_data
37
+ end
38
+ end
39
+ end
40
+
41
+ protected
42
+
43
+ def endpoint_setup
44
+ @endpoint = 'race'
45
+ @namespace = endpoint_namespace :static
46
+ @collection = 'races'
47
+ @ttl = CACHE_TRIMESTER
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BlizzardApi
4
+ module Wow
5
+ ##
6
+ # This class allows access to World of Warcraft realms
7
+ #
8
+ # @see https://develop.battle.net/documentation/api-reference/world-of-warcraft-game-data-api
9
+ #
10
+ # You can get an instance of this class using the default region as follows:
11
+ # api_instance = BlizzardApi::Wow.realm
12
+ class Realm < Wow::GenericDataEndpoint
13
+ ##
14
+ # This method is actually located at the community scope, but included here because of its relevance
15
+ # @see https://develop.battle.net/documentation/api-reference/world-of-warcraft-community-api
16
+ #
17
+ # @!macro request_options
18
+ #
19
+ # @!macro response
20
+ def status(options = {})
21
+ api_request "#{base_url(:community)}/realm/status", { ttl: CACHE_MINUTE }.merge(options)
22
+ end
23
+
24
+ ##
25
+ # @!macro complete
26
+ def complete(options = {})
27
+ index_data = index options
28
+ [].tap do |realms|
29
+ index_data[:realms].each do |realm|
30
+ realm_data = get realm[:id], options
31
+ realm_data.delete :_links
32
+ realm_data[:region].delete :key
33
+ realms.push realm_data
34
+ end
35
+ end
36
+ end
37
+
38
+ protected
39
+
40
+ def endpoint_setup
41
+ @endpoint = 'realm'
42
+ @namespace = endpoint_namespace :dynamic
43
+ @collection = 'realms'
44
+ @ttl = CACHE_TRIMESTER
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BlizzardApi
4
+ module Wow
5
+ ##
6
+ # This class allows access to World of Warcraft regions
7
+ #
8
+ # @see https://develop.battle.net/documentation/api-reference/world-of-warcraft-game-data-api
9
+ #
10
+ # You can get an instance of this class using the default region as follows:
11
+ # api_instance = BlizzardApi::Wow.region
12
+ class Region < Wow::GenericDataEndpoint
13
+ ##
14
+ # @!macro complete
15
+ def complete(options = {})
16
+ [].tap do |data|
17
+ index_data = index options
18
+ index_data[:regions].each do |region|
19
+ region_data = request region[:href], options
20
+ region_data.delete :_links
21
+ data.push region_data
22
+ end
23
+ end
24
+ end
25
+
26
+ ##
27
+ # Returns data about region battlegroups
28
+ #
29
+ # This method is actually located at the community API, but it is included here due to its relevance.
30
+ # @see https://develop.battle.net/documentation/api-reference/world-of-warcraft-community-api
31
+ #
32
+ # @!macro request_options
33
+ #
34
+ # @!macro response
35
+ def battlegroups(options = {})
36
+ api_request "#{base_url(:community)}/data/battlegroups/", { ttl: CACHE_TRIMESTER }.merge(options)
37
+ end
38
+
39
+ protected
40
+
41
+ def endpoint_setup
42
+ @endpoint = 'region'
43
+ @namespace = endpoint_namespace :dynamic
44
+ @collection = 'regions'
45
+ @ttl = CACHE_TRIMESTER
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BlizzardApi
4
+ module Wow
5
+ ##
6
+ # World of Warcraft requests
7
+ class Request < BlizzardApi::Request
8
+ ##
9
+ # @!macro regions
10
+ def initialize(region = nil)
11
+ super region
12
+ @game = 'wow'
13
+ end
14
+ end
15
+ end
16
+ end
metadata ADDED
@@ -0,0 +1,198 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: blizzard_api
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ platform: ruby
6
+ authors:
7
+ - Francis Schiavo
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2019-01-15 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: redis
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 4.1.0
20
+ - - "~>"
21
+ - !ruby/object:Gem::Version
22
+ version: '4.1'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: 4.1.0
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '4.1'
33
+ - !ruby/object:Gem::Dependency
34
+ name: bundler
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '1.16'
40
+ type: :development
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '1.16'
47
+ - !ruby/object:Gem::Dependency
48
+ name: dotenv
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '2.5'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '2.5'
61
+ - !ruby/object:Gem::Dependency
62
+ name: minitest
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '5.0'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '5.0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: rake
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '10.0'
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '10.0'
89
+ - !ruby/object:Gem::Dependency
90
+ name: rubocop
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '0.61'
96
+ type: :development
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '0.61'
103
+ description: This is a simple interface to obtain data from Blizzard API
104
+ email:
105
+ - francis.schiavo@francisschiavo.com
106
+ executables: []
107
+ extensions: []
108
+ extra_rdoc_files: []
109
+ files:
110
+ - ".gitignore"
111
+ - ".gitlab-ci.yml"
112
+ - ".rubocop.yml"
113
+ - ".rubocop_todo.yml"
114
+ - ".travis.yml"
115
+ - CHANGELOG.md
116
+ - Gemfile
117
+ - Gemfile.lock
118
+ - LICENSE.txt
119
+ - README.md
120
+ - Rakefile
121
+ - bin/console
122
+ - bin/setup
123
+ - blizzard_api.gemspec
124
+ - lib/blizzard_api.rb
125
+ - lib/blizzard_api/configuration.rb
126
+ - lib/blizzard_api/diablo.rb
127
+ - lib/blizzard_api/diablo/community/act.rb
128
+ - lib/blizzard_api/diablo/community/artisan.rb
129
+ - lib/blizzard_api/diablo/community/character.rb
130
+ - lib/blizzard_api/diablo/community/follower.rb
131
+ - lib/blizzard_api/diablo/community/item.rb
132
+ - lib/blizzard_api/diablo/community/item_type.rb
133
+ - lib/blizzard_api/diablo/community/profile.rb
134
+ - lib/blizzard_api/diablo/game_data/era.rb
135
+ - lib/blizzard_api/diablo/game_data/generic_data_endpoint.rb
136
+ - lib/blizzard_api/diablo/game_data/season.rb
137
+ - lib/blizzard_api/diablo/request.rb
138
+ - lib/blizzard_api/exception.rb
139
+ - lib/blizzard_api/request.rb
140
+ - lib/blizzard_api/starcraft.rb
141
+ - lib/blizzard_api/starcraft/community/account.rb
142
+ - lib/blizzard_api/starcraft/community/ladder.rb
143
+ - lib/blizzard_api/starcraft/community/profile.rb
144
+ - lib/blizzard_api/starcraft/game_data/league.rb
145
+ - lib/blizzard_api/starcraft/request.rb
146
+ - lib/blizzard_api/version.rb
147
+ - lib/blizzard_api/wow.rb
148
+ - lib/blizzard_api/wow/community/achievements.rb
149
+ - lib/blizzard_api/wow/community/auction.rb
150
+ - lib/blizzard_api/wow/community/boss.rb
151
+ - lib/blizzard_api/wow/community/challenge.rb
152
+ - lib/blizzard_api/wow/community/character.rb
153
+ - lib/blizzard_api/wow/community/guild.rb
154
+ - lib/blizzard_api/wow/community/item.rb
155
+ - lib/blizzard_api/wow/community/mount.rb
156
+ - lib/blizzard_api/wow/community/pets.rb
157
+ - lib/blizzard_api/wow/community/pvp.rb
158
+ - lib/blizzard_api/wow/community/quest.rb
159
+ - lib/blizzard_api/wow/community/recipe.rb
160
+ - lib/blizzard_api/wow/community/spell.rb
161
+ - lib/blizzard_api/wow/community/zone.rb
162
+ - lib/blizzard_api/wow/game_data/connected_realm.rb
163
+ - lib/blizzard_api/wow/game_data/generic_data_endpoint.rb
164
+ - lib/blizzard_api/wow/game_data/mythic_keystone_affix.rb
165
+ - lib/blizzard_api/wow/game_data/playable_class.rb
166
+ - lib/blizzard_api/wow/game_data/playable_specialization.rb
167
+ - lib/blizzard_api/wow/game_data/power_type.rb
168
+ - lib/blizzard_api/wow/game_data/race.rb
169
+ - lib/blizzard_api/wow/game_data/realm.rb
170
+ - lib/blizzard_api/wow/game_data/region.rb
171
+ - lib/blizzard_api/wow/request.rb
172
+ homepage: https://gitlab.com/francisschiavo/blizzard_api
173
+ licenses:
174
+ - MIT
175
+ metadata:
176
+ homepage_uri: https://gitlab.com/francisschiavo/blizzard_api
177
+ source_code_uri: https://gitlab.com/francisschiavo/blizzard_api
178
+ changelog_uri: https://gitlab.com/francisschiavo/blizzard_api/blob/master/CHANGELOG.md
179
+ post_install_message:
180
+ rdoc_options: []
181
+ require_paths:
182
+ - lib
183
+ required_ruby_version: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '2.5'
188
+ required_rubygems_version: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - ">="
191
+ - !ruby/object:Gem::Version
192
+ version: '0'
193
+ requirements: []
194
+ rubygems_version: 3.0.2
195
+ signing_key:
196
+ specification_version: 4
197
+ summary: Unofficial Ruby client for Blizzard Entertainment API
198
+ test_files: []