class FootballNow::CLI

Public Instance Methods

call() click to toggle source
# File lib/cli.rb, line 3
def call
  welcome_screen
  list_leagues

end
get_standings(league) click to toggle source
# File lib/cli.rb, line 63
def get_standings(league)
  table  = league.get_standings

  puts ""
  puts "#{league.name.upcase} : Up to Round #{league.current_round}"
  puts "=========================================="
  print_table(table)
  puts ""
  puts "Hit enter to return to league list or exit to quit."

  get_user_input.downcase == "exit" ? goodbye_message : list_leagues
end
get_user_input() click to toggle source
# File lib/cli.rb, line 167
def get_user_input
  gets.strip
end
goodbye_message() click to toggle source
# File lib/cli.rb, line 162
def goodbye_message
  puts "Until next time!"
  exit 0
end
list_all_results(team) click to toggle source
# File lib/cli.rb, line 117
def list_all_results(team)
  puts ""
  puts "#{team.name.upcase}: League Results"
  puts ""
  team.matches.each do |match|
    puts "Round #{match.round}:"
    puts " #{match.home_score} #{match.home_team.name}"
    puts " #{match.away_score} #{match.away_team.name}"
    puts ""
  end

  puts "Hit enter to go back or exit to quit."
  goodbye_message if get_user_input.downcase == "exit"
end
list_leagues() click to toggle source
# File lib/cli.rb, line 9
def list_leagues
  puts "\n\n"
  puts "Available Leagues:"
  puts "=================="
  FootballNow::League.print_leagues
  puts ""
  puts "You can:"
  puts " - type `<#> recent results` for scores"
  puts " - type `<#> get standings` for the league table"
  puts " - type `<#> list teams` to explore a team indepth"
  puts " - type `exit` to quit now."
  puts ""
  puts "Usage: typing `1 list teams` will list all teams in the first league listed."
  puts ""
  puts "What would you like to do?"

  input = get_user_input
  league  = FootballNow::League.get_league_by_index(input.split("").first.to_i - 1) if input =~ /^\d/

  case input
  when "exit"
    goodbye_message
  when /^\D/
    puts "Sorry, I didn't understand..."
    list_leagues
  when /recent results/
    list_recent_results(league)
    list_leagues
  when /get standings/
    get_standings(league)
  when /list teams/
    list_teams(league)
  else
    puts "Sorry, I didn't understand..."
    list_leagues
  end
end
list_recent_results(league) click to toggle source
# File lib/cli.rb, line 47
def list_recent_results(league)
  puts ""
  puts "#{league.name.upcase}"
  puts "Round #{league.current_round}:"
  puts ""

  FootballNow::Match.get_recent_results(league).each do |result|
    puts " #{result.home_score} #{result.home_team.name}"
    puts " #{result.away_score} #{result.away_team.name}"
    puts ""
  end

  puts "Hit enter to go back or exit to quit."
  goodbye_message if get_user_input.downcase == "exit"
end
list_stats(team) click to toggle source
# File lib/cli.rb, line 132
def list_stats(team)
  puts ""
  puts "#{team.name.upcase}: League Stats"
  puts ""
  format = '%-5s %-5s %-8s %-10s %-10s %-13s %s'
  puts format % ['Wins', 'Draws', 'Losses', 'Points', 'Goals For', 'Goals Against', 'Matches Played']
  puts format % [ team.wins, team.draws, team.losses, team.points, team.goals_for, team.goals_against, team.matches.size ]
  puts "Hit enter to go back or exit to quit."
  goodbye_message if get_user_input.downcase == "exit"
end
list_teams(league) click to toggle source
# File lib/cli.rb, line 76
def list_teams(league)
  puts ""
  puts "#{league.name.upcase} : Up to Round #{league.current_round}"
  puts ""

  format = '%-4s %-20s'
  league.teams.sort_by{|team| team.name}.each_with_index do |team, index|
    puts format % [index + 1, team.name]
  end

  puts ""
  puts "You can:"
  puts " - type `<#> results` for all results"
  puts " - type `<#> stats` for all avaulable stats"
  puts " - type `back` to return to the first menu"
  puts " - type `exit` to quit now."
  puts ""
  puts "Usage: typing `1 results` will list all results for that team."
  puts ""
  puts "What would you like to do?"

  input = get_user_input
  team = league.teams.sort_by{|team| team.name}[input.to_i - 1] if input =~ /^\d/

  case input
  when /results/
    list_all_results(team)
    list_teams(league)
  when /stats/
    list_stats(team)
    list_teams(league)
  when /back/
    list_leagues
  when /exit/
    goodbye_message
  else
    puts "Sorry, I didn't understand you."
    list_teams
  end
end
load_all_data() click to toggle source
# File lib/cli.rb, line 156
def load_all_data
  puts "Loading data from www.soccer24.com..."
  puts "This may take a minute or two..."
  FootballNow::Importer.generate
end
print_table(table) click to toggle source
welcome_screen() click to toggle source
# File lib/cli.rb, line 151
def welcome_screen
  puts "Welcome to Football Now"
  load_all_data
end