Class: Flicks::Playlist

Inherits:
Object
  • Object
show all
Defined in:
lib/flicks/playlist.rb

Instance Method Summary collapse

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


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_consumedObject



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