class UndercoverTouristCli::CLI
Public Instance Methods
attraction_list(city)
click to toggle source
# File lib/undercover_tourist_cli.rb, line 31 def attraction_list(city) puts "Gathering information..." if city.attractions.empty? Scraper.scrape_city_attractions(city) puts "-------------------------------" puts "Below is a list of attractions:" puts "-------------------------------" i = 1 city.attractions.each do |attraction| puts "#{i}.".colorize(:red) + " #{attraction}".colorize(:blue) i += 1 end puts "Please select a number from the list above." select_attraction(city) else puts "-------------------------------" puts "Below is a list of attractions:" puts "-------------------------------" i = 1 city.attractions.each do |attraction| puts "#{i}.".colorize(:red) + " #{attraction}".colorize(:blue) i += 1 end puts "Please select a number from the list above." select_attraction(city) end end
call()
click to toggle source
# File lib/undercover_tourist_cli.rb, line 4 def call puts "---------------------------------" puts "Welcome to the Undercover Tourist" puts "---------------------------------" puts "What city would you like to explore? Type" + " Orlando".colorize(:green) +", " + "Los Angeles".colorize(:yellow)+ ", " + "San Diego".colorize(:blue)+ ", or" + " Exit".colorize(:red) + " to exit." city_selector end
city_selector()
click to toggle source
# File lib/undercover_tourist_cli.rb, line 12 def city_selector input = gets.strip.downcase.split(' ').join('-') if input == "orlando" || input == "los-angeles" || input == "san-diego" city = City.new(input) else puts "Invalid entry. Please try again." city_selector end Scraper.scrape_city_summary(city) puts "Great choice! Here's some more information on " + city.name.colorize(:yellow) + ". " + city.city_summary + " Would you like to learn more about this city's attractions? (Y/N)".colorize(:red) choice = gets.strip.downcase if choice == "Y" || choice == "y" attraction_list(city) else call end end
pick_attraction_repeat(city)
click to toggle source
# File lib/undercover_tourist_cli.rb, line 76 def pick_attraction_repeat(city) choice = gets.strip.downcase case choice when "y" puts "-------------------------------" puts "Below is a list of attractions:" puts "-------------------------------" i = 1 city.attractions.each do |attraction| puts "#{i}.".colorize(:red) + " #{attraction}".colorize(:blue) i += 1 end puts "Please select a number from the list above." select_attraction(city) when "n" puts "Would you like to explore another city (Y/N)?" input = gets.strip.downcase case input when "y" call when "n" exit else puts "Invalid entry. Please type Y for yes or N for no." pick_attraction_repeat(city) end else puts "Invalid entry. Please type Y for yes or N for no." pick_attraction_repeat(city) end end
results(attraction, city)
click to toggle source
# File lib/undercover_tourist_cli.rb, line 108 def results(attraction, city) puts "---------------------------------------------------".colorize(:red) puts "***#{attraction.name}***" puts "---------------------------------------------------".colorize(:red) puts "" puts "Attraction Description: ".colorize(:red) + attraction.description puts "Attraction Rating: ".colorize(:red) + attraction.rating puts "Today's Attraction Crowd Size (Scale 1-10): ".colorize(:red) + attraction.current_crowd_rating puts "Today's Attraction Hours: ".colorize(:red) + attraction.hours puts "Be sure to check out: ".colorize(:red) if attraction.priority_attractions == "N/A" puts "N/A" else attraction.priority_attractions.each do |attraction| puts attraction end end puts "Would you like to check out another attraction? (Y/N)".colorize(:cyan) pick_attraction_repeat(city) exit end
select_attraction(city)
click to toggle source
# File lib/undercover_tourist_cli.rb, line 59 def select_attraction(city) input = gets.strip.to_i if input > Attractions.all.count || input < 0 puts "Invalid entry. Please try again." select_attraction(city) end city.attractions.select.with_index do |val, index| if input == index.to_i + 1 @selected_attraction = val end end puts "Gathering details for #{@selected_attraction}..." Scraper.attraction_details(Attractions.find_by_name(@selected_attraction), city) results(Attractions.find_by_name(@selected_attraction), city) end