class PlayerSetHistory::Set

Attributes

id[RW]
players[RW]
score[RW]
tournament[RW]
winner[RW]

Public Class Methods

all() click to toggle source
# File lib/player_set_history/set.rb, line 10
def self.all 
  @@all
end
create_sets_from_player(event_hash, importer) click to toggle source
# File lib/player_set_history/set.rb, line 14
def self.create_sets_from_player(event_hash, importer)
  #Get one of the players
  player_1 = PlayerSetHistory::Player.find_or_create_from_slug(event_hash["discriminator"], importer)
  
  event_hash["events"]["nodes"].each do |event|
    # Find or create tournament
    tourny = PlayerSetHistory::Tournament.find_or_create_from_name(
      event["tournament"]["name"], 
      event["tournament"]["startAt"]
    )
    
    # create sets
    if event["sets"]["nodes"] != nil # Prevents error when event is nil
      event["sets"]["nodes"].each do |set|
        score = set["displayScore"]
        id = set["id"]
        player_2 = nil 
        winner_score = 0 
        winner = ""
        
        unless set_exists?(id)
          score.split(" - ").each do |player|
            # Parse score
            if player.include?("|")
              player_tag = player[0..-3].split(" | ")[1]
              player_prefix = player.split(" | ")[0]
            else
              player_tag = player[0..-3]
              player_prefix = ""
            end
            
            # create player_2 if neccessary
            if player_tag != player_1.tag 
              player_2 = PlayerSetHistory::Player.find_or_create_from_tag(tag: player_tag, prefix: player_prefix)
            end
            
            # Find winner
            if player[-1].to_i > winner_score
              winner_score = player[-1].to_i
              winner = player_tag
            end
          end
        
      
          set_attributes = {players: [player_1, player_2], 
                            score: score, 
                            id: id,
                            winner: winner, 
                            tournament: tourny
          }
         
          new_set = PlayerSetHistory::Set.new(set_attributes)
          tourny.add_set(new_set)
        end
      end
    end
  end
end
new(attributes) click to toggle source
# File lib/player_set_history/set.rb, line 5
def initialize(attributes)
  attributes.each {|key, value| self.send(("#{key}="), value)} 
  @@all << self
end
set_exists?(set_id) click to toggle source
# File lib/player_set_history/set.rb, line 73
def self.set_exists? (set_id)
  sets = self.all.any? do |set|
    set.id == set_id
  end
end