Refactored repeated code

This commit is contained in:
Olivia Mo 2017-08-22 10:09:40 +10:00
parent 76b416e96a
commit 62fc4f2bbf

View file

@ -97,37 +97,29 @@ def classification
puts "Would you like [1] fantasy, [2] sci-fi, or [3] romance?" puts "Would you like [1] fantasy, [2] sci-fi, or [3] romance?"
user = gets.chomp user = gets.chomp
def printing_genre(title_genre)
Book.all.each do |a|
if a.genre.type == title_genre
print a.title + " by "
puts a.author.name
puts
end # end if statement
end # end book loop
end
valid = 0 valid = 0
while valid == 0 while valid == 0
case user case user
when "1" when "1"
Book.all.each do |a| printing_genre("Fantasy")
if a.genre.type == "Fantasy"
print a.title + " by "
puts a.author.name
puts
end # end if statement
end # end book loop
break # this breaks the loop break # this breaks the loop
when "2" when "2"
Book.all.each do |a| printing_genre("Sci-fi")
if a.genre.type == "Sci-fi"
print a.title + " by "
puts a.author.name
puts
end # end if statement
end # end book loop
break break
when "3" when "3"
Book.all.each do |a| printing_genre("Romance")
if a.genre.type == "Romance"
print a.title + " by "
puts a.author.name
puts
end # end if statement
end # end book loop
break break
else else
@ -145,79 +137,51 @@ def writer
puts "[7] Philip K. Dick [8] Isaac Asimov [9] Ray Bradbury" puts "[7] Philip K. Dick [8] Isaac Asimov [9] Ray Bradbury"
user = gets.chomp user = gets.chomp
def printing(book_writer)
Book.all.each do |a|
if a.author.name == book_writer
puts a.title
end # end if/else statement
end # end book array loop
end # end printing method
valid = 0 valid = 0
while valid == 0 while valid == 0
case user case user
when "1" when "1"
Book.all.each do |a| printing("Nora Roberts")
if a.author.name == "Nora Roberts"
puts a.title
end # end if/else statement
end # end book array loop
break break
when "2" when "2"
Book.all.each do |a| printing("Jane Austen")
if a.author.name == "Jane Austen"
puts a.title
end # end if/else statement
end # end book array loop
break break
when "3" when "3"
Book.all.each do |a| printing("Julie Garwood")
if a.author.name == "Julie Garwood"
puts a.title
end # end if/else statement
end # end book array loop
break break
when "4" when "4"
Book.all.each do |a| printing("J.R.R. Tolkien")
if a.author.name == "J.R.R. Tolkien"
puts a.title
end # end if/else statement
end # end book array loop
break break
when "5" when "5"
Book.all.each do |a| printing("George R.R. Martin")
if a.author.name == "George R.R. Martin"
puts a.title
end # end if/else statement
end # end book array loop
break break
when "6" when "6"
Book.all.each do |a| printing("Stephen King")
if a.author.name == "Stephen King"
puts a.title
end # end if/else statement
end # end book array loop
break break
when "7" when "7"
Book.all.each do |a| printing("Julie Garwood")
if a.author.name == "Julie Garwood"
puts a.title
end # end if/else statement
end # end book array loop
break break
when "8" when "8"
Book.all.each do |a| printing("Isaac Asimov")
if a.author.name == "Isaac Asimov"
puts a.title
end # end if/else statement
end # end book array loop
break break
when "9" when "9"
Book.all.each do |a| printing("Ray Bradbury")
if a.author.name == "Ray Bradbury"
puts a.title
end # end if/else statement
end # end book array loop
break break
else else