Class: Flicks::Playlist
- Inherits:
-
Object
- Object
- Flicks::Playlist
- Defined in:
- lib/flicks/playlist.rb
Instance Method Summary collapse
- #add_movie(movie) ⇒ Object
-
#initialize(name) ⇒ Playlist
constructor
A new instance of Playlist.
- #load(from_file) ⇒ Object
- #play(viewings) ⇒ Object
- #print_stats ⇒ Object
- #save(to_file = "movie_rankings.csv") ⇒ Object
- #total_carbs_comsumed ⇒ Object
Constructor Details
#initialize(name) ⇒ Playlist
Returns a new instance of Playlist.
8 9 10 11 |
# File 'lib/flicks/playlist.rb', line 8 def initialize(name) @name = name @movies = [] end |
Instance Method Details
#add_movie(movie) ⇒ Object
27 28 29 |
# File 'lib/flicks/playlist.rb', line 27 def add_movie(movie) @movies.push(movie) end |
#load(from_file) ⇒ Object
13 14 15 16 17 |
# File 'lib/flicks/playlist.rb', line 13 def load(from_file) File.readlines(from_file).each do |line| add_movie(Movie.from_csv(line)) end end |
#play(viewings) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/flicks/playlist.rb', line 31 def play(viewings) puts "#{@name}'s playlist:" snacks = SnackBar::SNACKS puts "\nThere are #{snacks.size} snacks available in the snack bar." snacks.each do |snack| puts "#{snack.name} has #{snack.carbs} carbs" end 1.upto(viewings) do |count| puts "\nViewing #{count}:" @movies.sort.each do |movie| WaldorfAndStatler.review(movie) snack = SnackBar.random movie.ate_snack(snack) puts movie end end end |
#print_stats ⇒ Object
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/flicks/playlist.rb', line 58 def print_stats puts "\n#{@name}'s Stats:'" puts "#{total_carbs_comsumed} total carbs consumed" @movies.sort.each do |movie| puts "\n#{movie.title}'s snack totals:" movie.each_snack do |snack| puts "#{snack.carbs} total #{snack.name} carbs" end puts "#{movie.carbs_consumed} grand total carbs." end hits, flops = @movies.partition { |movie| movie.hit? } puts "\nHits:" puts hits.sort puts "\nFlops:" puts flops.sort end |
#save(to_file = "movie_rankings.csv") ⇒ Object
19 20 21 22 23 24 25 |
# File 'lib/flicks/playlist.rb', line 19 def save(to_file="movie_rankings.csv") File.open(to_file, "w") do |file| @movies.sort.each do |movie| file.puts movie.to_csv end end end |
#total_carbs_comsumed ⇒ Object
52 53 54 55 56 |
# File 'lib/flicks/playlist.rb', line 52 def total_carbs_comsumed @movies.reduce(0) do |sum, movie| sum + movie.carbs_consumed end end |