class NbaDraft2017::Cli

Public Instance Methods

add_attributes_to_players() click to toggle source
# File lib/nba_draft_2017/cli.rb, line 57
def add_attributes_to_players
    NbaDraft2017::Player.all.each do |player|
      add_attributes_to_player(player.name)
    end
end
call() click to toggle source
# File lib/nba_draft_2017/cli.rb, line 5
def call
  puts 'Welcome to the 2017 NBA Draft!'
  make_players
  menu
end
compare_stats() click to toggle source
# File lib/nba_draft_2017/cli.rb, line 153
def compare_stats
  puts "This might take a minute for first comaprison.".bold.colorize(:green)
  puts "To proceed enter a stat category from #{@@key_stats} or 'menu' to return to menu"
  stat_category = gets.downcase.strip
  if @@key_stats.include?(stat_category)
    puts "Enter a number to see players that have a higher average for #{stat_category.colorize(:green)} and make sure to enter a decimal for fg%, three%, and ft%"
    stat_num = gets.strip
    if stat_num.to_f.between?(0.001,40)
      NbaDraft2017::Player.stat_greater_than(stat_category, stat_num)
    elsif stat_num == 'menu' || stat_num == 'exit'
      menu
    else
      error
    end
  elsif stat_category == 'menu' || stat_category == 'exit'
    menu
  else
    error
  end
end
dotted_line() click to toggle source
# File lib/nba_draft_2017/cli.rb, line 49
def dotted_line
  puts "------------------------------------------------------------".bold.colorize(:red)
end
error() click to toggle source
# File lib/nba_draft_2017/cli.rb, line 228
def error
  puts "I didn't understand that! Please try agian or type 'exit'.".colorize(:red).bold
  puts "------------------------------------------------------------".colorize(:green).bold
end
find_and_list_player() click to toggle source
# File lib/nba_draft_2017/cli.rb, line 106
def find_and_list_player
  puts "Please enter player draft pick number or player name."
  lookup = gets.strip

  if lookup.to_i.between?(1, NbaDraft2017::Player.all.size)
    player = NbaDraft2017::Player.find_player_by_pick(lookup)
    list_player_details(player)
  elsif player ||= NbaDraft2017::Player.find_player_by_name(lookup)
    list_player_details(player)
  else
    error
  end
  player
end
good_bye() click to toggle source
# File lib/nba_draft_2017/cli.rb, line 233
def good_bye
  puts "Thanks for checking out the 2017 NBA Draft! Good Luck!"
end
list_controls() click to toggle source
# File lib/nba_draft_2017/cli.rb, line 91
def list_controls
  draft = "'draft'"
  round_1 = "'rd1'"
  round_2 = "'rd2'"
  player = "'player'"
  nba_team = "'nba'"
  former_team = "'former'"
  puts "Enter #{draft.colorize(:green)}, #{round_1.colorize(:green)} or #{round_2.colorize(:green)} to see list of draft picks."
  puts "Enter #{player.colorize(:green)} to see player details and stats"
  puts "Enter #{nba_team.colorize(:green)} to show players drafted by a NBA team"
  puts "Enter #{former_team.colorize(:green)} to show players drated out of colleges or clubs"
  puts "Enter " + "'compare stats'".colorize(:green) + " to see player with stat average above number specified by user"
  puts "To quit, type" + " 'exit'".colorize(:green)
end
list_draft() click to toggle source
# File lib/nba_draft_2017/cli.rb, line 11
def list_draft
  list_round_1
  list_round_2
end
list_draft_picks_by_former_team() click to toggle source
# File lib/nba_draft_2017/cli.rb, line 188
def list_draft_picks_by_former_team
  puts NbaDraft2017::Player.former_teams.sort
  puts 'Enter a School or Country name exactly as shown in list above:'.colorize(:green)

  former_team = gets.strip.downcase

  if NbaDraft2017::Player.former_teams.include?(former_team)
    NbaDraft2017::Player.players_by_former_team(former_team)
    more_info_on_player?(former_team)
  else
    error
  end
end
list_draft_picks_by_nba_team() click to toggle source
# File lib/nba_draft_2017/cli.rb, line 174
def list_draft_picks_by_nba_team
  puts NbaDraft2017::Player.nba_teams.sort
  puts 'Enter an NBA team (name only) as in list above:'.colorize(:green)

  nba_team = gets.strip.downcase

  if NbaDraft2017::Player.nba_teams.include?(nba_team)
    NbaDraft2017::Player.players_by_nba_team(nba_team)
    more_info_on_player?(nba_team)
  else
    error
  end
end
list_player_details(player) click to toggle source
# File lib/nba_draft_2017/cli.rb, line 121
def list_player_details(player)
  if NbaDraft2017::Player.all_attributes
    player
  else
    player = NbaDraft2017::Player.add_attributes_to_player(player)
  end

  puts "#{player.name.upcase.bold.underline}".colorize(:green).bold
  puts "  Round:".bold.colorize(:red) +" #{player.round}" + "  Pick:".bold.colorize(:red) +" #{player.pick}"
  puts "  Drafted By:".bold.colorize(:red) +" #{player.nba_team}"
  puts "  From:".bold.colorize(:red) +" #{player.former_team}"
  puts "  Position:".bold.colorize(:red) +" #{player.position}"
  puts "  Drafted As:".bold.colorize(:red) +" #{player.former_status}"
  puts "  Age:".bold.colorize(:red) +" #{player.age}"
  puts "  Height:".bold.colorize(:red) +" #{player.height}"
  puts "  Weight:".bold.colorize(:red) +" #{player.weight}"
  puts "  STATS".colorize(:green).bold if player.key_stats

  if player.key_stats
    puts "    PPG:".bold.colorize(:red) + " #{player.ppg}" if player.ppg
    puts "    RPG:".bold.colorize(:red) + " #{player.rpg}" if player.rpg
    puts "    APG:".bold.colorize(:red) + " #{player.apg}" if player.apg
    puts "    FG:".bold.colorize(:red) + " #{(player.fg * 100).round(2)}%" if player.fg
    puts "    3PT:".bold.colorize(:red) + " #{(player.three * 100).round(2)}%" if player.three
    puts "    FT:".bold.colorize(:red) + " #{(player.ft * 100).round(2)}%" if player.ft
    puts "    TPG:".bold.colorize(:red) + " #{player.tpg}" if player.tpg
    puts "    SPG:".bold.colorize(:red) + " #{player.spg}" if player.spg
    puts "    BPG:".bold.colorize(:red) + " #{player.bpg}" if player.bpg
    puts "    MPG:".bold.colorize(:red) + " #{player.mpg}" if player.mpg
  end
end
list_round_1() click to toggle source
# File lib/nba_draft_2017/cli.rb, line 16
def list_round_1
  dotted_line
  puts "Round 1".colorize(:blue).bold
  dotted_line

  i = 0
  while i < 30
    player = NbaDraft2017::Player.all[i]
    if i < 9
      puts "#{i + 1}.  #{player.name.colorize(:green).bold} #{player.position.colorize(:red)} from #{player.former_team.colorize(:blue).bold} drafted by #{player.nba_team.colorize(:green).bold}"
    else
      puts "#{i + 1}. #{player.name.colorize(:green).bold} #{player.position.colorize(:red)} from #{player.former_team.colorize(:blue).bold} drafted by #{player.nba_team.colorize(:green).bold}"
    end
    i += 1
  end

  dotted_line
end
list_round_2() click to toggle source
# File lib/nba_draft_2017/cli.rb, line 35
def list_round_2
  puts "Round 2".colorize(:blue).bold
  dotted_line

  i = 30
  while i < 60
    player = NbaDraft2017::Player.all[i]
    puts "#{i + 1}. #{player.name.colorize(:green).bold} #{player.position.colorize(:red)} from #{player.former_team.colorize(:blue).bold} drafted by #{player.nba_team.colorize(:green).bold}"
    i += 1
  end

  dotted_line
end
make_players() click to toggle source
# File lib/nba_draft_2017/cli.rb, line 53
  def make_players
  NbaDraft2017::Scraper.scrape_draft
end
menu() click to toggle source
more_info_on_player?(team) click to toggle source
# File lib/nba_draft_2017/cli.rb, line 202
def more_info_on_player?(team)
  request = nil

  while request != 'n' && request != 'exit'
    puts "Would you like more info on any of the players? 'y' or 'n'?"
    request = gets.downcase.strip

    if request =='y'
      player = find_and_list_player

      if player.nba_team.downcase != team.downcase && player.former_team.downcase != team.downcase
        dotted_line
        puts "That player isn't on or from #{team} though!!!".upcase.bold.colorize(:red)
        dotted_line
      end

    elsif request == 'n' || request == 'exit'
      break

    else
      error
    end

  end
end