class GlazeAnalyzer::CharacterData
Attributes
data[RW]
Public Class Methods
new(realm, character_name, pvp_spec_id)
click to toggle source
# File lib/glaze/analyzer/characterdata.rb, line 6 def initialize(realm, character_name, pvp_spec_id) uri = URI.parse("http://us.battle.net/api/wow/character/#{realm}/#{URI.encode(character_name)}?fields=talents") response = Net::HTTP.get_response(uri) character_data = JSON.parse(response.body) tries = 0 while character_data['talents'] == nil if tries > 3 raise 'Error retrieving character data' end puts "error.. retrying #{character_name} - #{realm} retrying in 5 seconds" response = Net::HTTP.get_response(uri) character_data = JSON.parse(response.body) tries += 1 sleep 5 end @data = character_data @pvp_spec_id = pvp_spec_id end
Public Instance Methods
get_character_spec_names()
click to toggle source
# File lib/glaze/analyzer/characterdata.rb, line 48 def get_character_spec_names begin spec1_name = @data['talents'][0]['spec']['name'] rescue spec1_name = 'nil' end begin spec2_name = @data['talents'][1]['spec']['name'] rescue spec2_name = 'nil' end return spec1_name, spec2_name end
major_glyph_names()
click to toggle source
# File lib/glaze/analyzer/characterdata.rb, line 64 def major_glyph_names @data['talents'][pvp_spec]['glyphs']['major'].map do |glyph| glyph['name'] end end
pvp_spec()
click to toggle source
# File lib/glaze/analyzer/characterdata.rb, line 28 def pvp_spec pvp_spec_name = spec_name(@pvp_spec_id) # eg. Retribution spec1_name, spec2_name = get_character_spec_names # eg. Retribution, Holy if pvp_spec_name == spec1_name && pvp_spec_name == spec2_name if @data['talents'].first['selected'] == true return 0 else return 1 end elsif pvp_spec_name == spec1_name return 0 elsif pvp_spec_name == spec2_name return 1 else return 0 end end
spec_name(spec_id)
click to toggle source
# File lib/glaze/analyzer/characterdata.rb, line 70 def spec_name(spec_id) spec_names = { 102 => 'Balance', 103 => 'Feral Combat', 104 => 'Guardian', 105 => 'Restoration', 250 => 'Blood', 251 => 'Frost', 252 => 'Unholy', 253 => 'Beast Mastery', 254 => 'Marksmanship', 255 => 'Survival', 256 => 'Discipline', 257 => 'Holy', 258 => 'Shadow', 259 => 'Assassination', 260 => 'Combat', 261 => 'Subtlety', 262 => 'Elemental', 263 => 'Enhancement', 264 => 'Restoration', 265 => 'Affliction', 266 => 'Demonology', 267 => 'Destruction', 268 => 'Brewmaster', 269 => 'Windwalker', 270 => 'Mistweaver', 62 => 'Arcane', 63 => 'Fire', 64 => 'Frost', 65 => 'Holy', 66 => 'Protection', 70 => 'Retribution', 71 => 'Arms', 72 => 'Fury', 73 => 'Protection' } return spec_names[spec_id] end