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_consumed ⇒ Object
Constructor Details
#initialize(name) ⇒ Playlist
Returns a new instance of Playlist.
7 8 9 10 |
# File 'lib/flicks/playlist.rb', line 7 def initialize(name) @name = name @movies = [] end |
Instance Method Details
#add_movie(movie) ⇒ Object
26 27 28 |
# File 'lib/flicks/playlist.rb', line 26 def add_movie(movie) @movies << movie end |
#load(from_file) ⇒ Object
12 13 14 15 16 |
# File 'lib/flicks/playlist.rb', line 12 def load(from_file) File.readlines(from_file).each do |line| add_movie(Movie.from_csv(line)) end end |
#play(viewings) ⇒ Object
30 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 30 def play(viewings) puts "#{@name}'s playlist:" puts @movies.sort 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 "\nViewings #{count}:" @movies.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 |
# File 'lib/flicks/playlist.rb', line 58 def print_stats puts "\n#{@name}'s Stats:" puts "#{total_carbs_consumed} 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
18 19 20 21 22 23 24 |
# File 'lib/flicks/playlist.rb', line 18 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_consumed ⇒ Object
52 53 54 55 56 |
# File 'lib/flicks/playlist.rb', line 52 def total_carbs_consumed @movies.reduce(0) do |sum, movie| sum + movie.carbs_consumed end end |