class RtTop100::CLI
Public Instance Methods
add_movie_details(selected_movie)
click to toggle source
# File lib/rt_top_100/cli.rb, line 96 def add_movie_details(selected_movie) details_hash = RtTop100::Scraper.scrape_movie("https://www.rottentomatoes.com#{selected_movie.movie_url}") selected_movie.add_details(details_hash) end
call()
click to toggle source
# File lib/rt_top_100/cli.rb, line 3 def call puts "" puts "********* Best of Rotten Tomatoes: TOP 100 MOVIES OF ALL TIME *********" puts "" puts "Welcome cinephile! Which of Rotten Tomatoes' Top 100 Movies would you like to see?" create_movies start end
create_movies()
click to toggle source
# File lib/rt_top_100/cli.rb, line 12 def create_movies RtTop100::Scraper.scrape_top_100("https://www.rottentomatoes.com/top/bestofrt/") end
display_movie_details(selected_movie)
click to toggle source
# File lib/rt_top_100/cli.rb, line 101 def display_movie_details(selected_movie) puts "" puts "********* Best of Rotten Tomatoes: #{selected_movie.title} *********" puts "" puts "Title: #{selected_movie.title}" puts "" puts "Tomatometer Score: #{selected_movie.tomatometer_score}" puts "Audience Score: #{selected_movie.audience_score}" puts "Critic Consensus: #{selected_movie.critic_consensus}" puts "" puts "Rated: #{selected_movie.rating}" puts "Genre: #{selected_movie.genre}" puts "Released: #{selected_movie.release_date}" puts "Directed by: #{selected_movie.director}" puts "" puts "Synopsis: #{selected_movie.synopsis}" puts "" end
display_movies(input)
click to toggle source
# File lib/rt_top_100/cli.rb, line 65 def display_movies(input) if input == "1-25" || input == "26-50" || input == "51-75" || input == "76-100" puts "" puts "********* Best of Rotten Tomatoes: TOP MOVIES OF ALL TIME #{input} *********" puts "" list_from = input.to_i RtTop100::Movie.all[list_from-1, 25].each.with_index(list_from) do | movie, rank | puts "#{rank}. #{movie.title}" end elsif input.to_i.between?(1920, Date.today.year) puts "" puts "********* Best of Rotten Tomatoes: TOP MOVIES RELEASED IN OR AFTER #{input} *********" puts "" year = input.to_i RtTop100::Movie.movies_release_after(year) elsif input == "methodology" puts "" puts "Methodology: Each critic from Rotten Tomatoes' discrete list gets one vote, weighted equally. A movie must have 40 or more rated reviews to be considered. The 'Adjusted Score' comes from a weighted formula (Bayesian) that we use that accounts for variation in the number of reviews per movie." puts "" start elsif input == "exit" puts "" puts "The End. Thank you!" puts "" exit else puts "I'm not quite sure what you meant." start end end
start()
click to toggle source
# File lib/rt_top_100/cli.rb, line 16 def start puts "" puts "Please select from the following options:" puts "To see the top 100 movies, enter '1-25', '26-50', '51-75', or '76-100'" puts "To see all the movies on the list released after a given year (starting in 1920), enter the year" puts "To see the methodology behind the list, enter 'methodology'" puts "To exit the program, enter 'exit'" puts "" input = gets.strip.downcase display_movies(input) puts "" puts "To learn more about a specific movie, please enter the movie's rank. You can also enter 'main' to return to the main menu or 'exit' to exit the program." input = gets.strip.downcase if input.to_i.between?(1,100) selected_movie = RtTop100::Movie.all[input.to_i-1] add_movie_details(selected_movie) display_movie_details(selected_movie) elsif input == "main" start elsif input == "exit" exit else puts "I'm not quite sure what you meant." start end puts "" puts "Would you like to see more movies? Y/N" puts "" input = gets.strip.downcase if input == "y" start elsif input == "n" puts "" puts "The End. Thank you!" puts "" exit else puts "" puts "I'm not quite sure what you meant." puts "" start end end