class GlazeAnalyzer::Analyzer

Attributes

ranking_data[R]

Public Class Methods

new() click to toggle source
# File lib/glaze/analyzer.rb, line 13
def initialize
  @ranking_data = retrieve_ranking_data
end

Public Instance Methods

create_glyph_hash(glyph_array, spec_id) click to toggle source
# File lib/glaze/analyzer.rb, line 44
def create_glyph_hash(glyph_array, spec_id)
  glyph_count = Glyphs.new(spec_id)
  glyph_array.each do |g|
    glyph_count.glyph_data[g] +=1
  end
  glyph_count.glyph_data
end
get_glyph_data_for_spec(spec_id, number_to_retrieve) click to toggle source
# File lib/glaze/analyzer.rb, line 52
def get_glyph_data_for_spec(spec_id, number_to_retrieve)
  character_list = get_top_characters(spec_id, number_to_retrieve)
  glyph_list = []
  character_data_list = character_list.map do |x|
    begin
      CharacterData.new(x['realmSlug'], x['name'], x['specId'])
    rescue
      puts "error.. skipped character"
      nil
    end
  end
  character_data_list.compact!
  character_data_list.each do |character|
    character.major_glyph_names.each do |g|
      glyph_list << g
    end
  end

  glyph_hash = create_glyph_hash(glyph_list, spec_id)

  return glyph_hash, character_data_list.count
end
get_top_characters(spec_id, number_to_retrieve) click to toggle source
# File lib/glaze/analyzer.rb, line 27
def get_top_characters(spec_id, number_to_retrieve)
  character_list = []
  retrieved = 0

  @ranking_data.each do |character|
    if spec_id == character['specId']
      character_list << character
      retrieved += 1
    end
    if retrieved >= number_to_retrieve
      break
    end
  end

  character_list
end
retrieve_ranking_data() click to toggle source
# File lib/glaze/analyzer.rb, line 17
def retrieve_ranking_data
  puts 'retrieving 3v3 ranking data...'
  uri = URI.parse('http://us.battle.net/api/wow/leaderboard/3v3')
  response = Net::HTTP.get_response(uri)
  puts 'retrieved ranking data, parsing json....'
  results = JSON.parse(response.body)

  results['rows']
end