Class: WorldTopMovies::DB::Movie
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- WorldTopMovies::DB::Movie
- Defined in:
- lib/world_top_movies/models/movie.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.add_movies(user:, movie_urls:) ⇒ Object
24 25 26 27 28 29 30 31 32 33 |
# File 'lib/world_top_movies/models/movie.rb', line 24 def self.add_movies(user:, movie_urls:) # Finds or creates new Favourite movie instances and adds them to the given user movie_urls.class != Array && movie_urls = movie_urls.split() movie_urls.each do |movie_url| if user.movies.none? { |m| m.url == movie_url } attributes = self.generate_attributes_from_url(movie_url) user.movies << self.find_or_create_by(attributes) end end end |
.generate_attributes_from_url(movie_url) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/world_top_movies/models/movie.rb', line 6 def self.generate_attributes_from_url(movie_url) fav_movie = WorldTopMovies::Movie.find_by_url(movie_url) attributes = { title: fav_movie.title, year: fav_movie.year, duration: fav_movie.duration, genres: fav_movie.genres.join(" - "), user_rating: fav_movie., metascore: fav_movie., description: fav_movie.description, director: fav_movie.director, stars: fav_movie.stars.join(" - "), votes: fav_movie.votes, gross_revenue: fav_movie.gross_revenue, url: fav_movie.url, } end |
Instance Method Details
#print_movie_details ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/world_top_movies/models/movie.rb', line 35 def print_movie_details attributes = { title: self.title, year: self.year, duration: self.duration, genres: self.genres, user_rating: self., metascore: self..to_s, description: self.description, director: self.director, stars: self.stars, votes: self.votes, gross_revenue: self.gross_revenue, url: self.url, database: true, } movie = WorldTopMovies::Movie.new(attributes) movie.scrape_and_print_movie print_movie_notes end |
#print_movie_notes ⇒ Object
56 57 58 59 60 61 62 |
# File 'lib/world_top_movies/models/movie.rb', line 56 def print_movie_notes logged_user = WorldTopMovies::CLI.user notes = self.notes.select { |n| n.user && n.user.username == logged_user.username } puts "\n----------------#{"My Own notes".bold}------------------" notes.empty? ? puts("No notes left") : notes.each { |n| puts "\n-#{n.note_message}- on #{n.created_at.localtime}" } puts "----------------------------------------------" end |