class NbaDraft2017::Player attr_accessor :name, :last_name, :first_name, :profile_url, :pick, :round, :nba_team, :position, :former_team, :height, :weight, :former_status, :age, :key_stats, :ppg, :rpg, :apg, :tpg, :spg, :bpg, :mpg, :fg, :three, :ft @@all = [] @@nba_teams = [] @@former_teams = [] @@all_attributes = nil def initialize(player_hash) player_hash.each {|attribute, value| self.send("#{attribute}=", value) } @@all << self end def add_player_attributes(attributes_hash) attributes_hash.each { |attribute, value| self.send("#{attribute}=", value) } end def self.find_player_by_name(player_name) NbaDraft2017::Player.all.detect { |player| player.name.downcase == player_name.downcase } end def self.find_player_by_pick(pick) NbaDraft2017::Player.all.detect { |player| player.pick == pick.to_s } end def self.add_attributes_to_player(player) attributes = NbaDraft2017::Scraper.scrape_player("http://www.nba.com/draft/2017/prospects/" + player.profile_url) player.add_player_attributes(attributes) player end def self.add_attributes_to_players @@all_attributes = self.all.each do |player| add_attributes_to_player(player) end end def self.stat_greater_than(stat_category, stat_num) @@all_attributes ||= self.add_attributes_to_players puts "Players with a higher average #{stat_category} include:".colorize(:green) puts "------------------------------------------------------------".bold.colorize(:red) players = self.all.select.with_index(1) do |player, idx| if player.send(stat_category) && player.send(stat_category) > stat_num.to_f puts "Pick: #{idx.to_s.colorize(:green)}. #{player.name.colorize(:green)} - #{player.send(stat_category).to_s.colorize(:red)} #{stat_category}" player end end puts "Nobody!".bold.colorize(:red) if players.empty? puts "------------------------------------------------------------".bold.colorize(:red) end def self.nba_teams self.all.each do |player| @@nba_teams << player.nba_team.downcase.strip end @@nba_teams.uniq end def self.players_by_nba_team(nba_team) puts nba_team.upcase.bold.colorize(:green) self.all.each do |player| if player.nba_team.downcase == nba_team.downcase puts "Rd: ".colorize(:red) +"#{player.round}" + " Pick: ".colorize(:red) +"#{player.pick} #{player.name.upcase.bold.colorize(:blue)} from #{player.former_team.bold.colorize(:blue)}" end end end def self.former_teams self.all.each do |player| @@former_teams << player.former_team.downcase.strip end @@former_teams.uniq end def self.players_by_former_team(former_team) puts former_team.upcase.bold.colorize(:green) self.all.each do |player| if player.former_team.downcase == former_team.downcase puts "Rd: ".colorize(:red) +"#{player.round}" + " Pick: ".colorize(:red) +"#{player.pick} #{player.name.upcase.bold.colorize(:blue)} to #{player.nba_team.bold.colorize(:blue)}" end end end def self.all_attributes @@all_attributes end def self.all @@all end end