class BlizzardApi::Wow::PlayableSpecialization
This class allows access to World of Warcraft playable specializations
@see develop.battle.net/documentation/api-reference/world-of-warcraft-game-data-api
You can get an instance of this class using the default region as follows:
spec = BlizzardApi::Wow.playable_specialization
Public Instance Methods
complete(**options)
click to toggle source
@!macro complete
# File lib/blizzard_api/wow/game_data/playable_specialization.rb, line 15 def complete(**options) index_data = index(**options) {}.tap do |response_data| response_data[:character_specializations] = character_data(index_data, options) response_data[:pet_specializations] = pet_data(index_data, options) end end
media(id, **options)
click to toggle source
Fetch media for one of the playable specializations listed by the {#index} using its id
@param id [Integer] Playable specialization id
@!macro request_options
@!macro response
# File lib/blizzard_api/wow/game_data/playable_specialization.rb, line 31 def media(id, **options) api_request "#{base_url(:media)}/playable-specialization/#{id}", **default_options.merge(options) end
Protected Instance Methods
endpoint_setup()
click to toggle source
# File lib/blizzard_api/wow/game_data/playable_specialization.rb, line 37 def endpoint_setup @endpoint = 'playable-specialization' @namespace = :static @collection = 'playable_specialization' @ttl = CACHE_TRIMESTER end
Private Instance Methods
character_data(index_data, options)
click to toggle source
# File lib/blizzard_api/wow/game_data/playable_specialization.rb, line 46 def character_data(index_data, options) [].tap do |specs| index_data[:character_specializations].each do |spec| spec_id = %r{playable-specialization/([0-9]+)}.match(spec[:key].to_s)[1] spec_data = get spec_id, **options spec_data[:icon] = resolve_icon(spec_data[:media][:key][:href]) cleanup spec_data specs.push spec_data end end end
cleanup(data)
click to toggle source
# File lib/blizzard_api/wow/game_data/playable_specialization.rb, line 70 def cleanup(data) data.delete :_links data[:playable_class].delete :key data.delete :media end
pet_data(index_data, options)
click to toggle source
# File lib/blizzard_api/wow/game_data/playable_specialization.rb, line 58 def pet_data(index_data, options) [].tap do |specs| index_data[:pet_specializations].each do |spec| spec_id = %r{playable-specialization/([0-9]+)}.match(spec[:key].to_s)[1] spec_data = get spec_id, **options spec_data[:icon] = resolve_icon(spec_data[:media][:key][:href]) cleanup spec_data specs.push spec_data end end end
resolve_icon(media_url)
click to toggle source
# File lib/blizzard_api/wow/game_data/playable_specialization.rb, line 76 def resolve_icon(media_url) media_data = api_request(media_url) media_data[:assets][0][:value] end