blizzard_api 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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: []