Skip to content

Instantly share code, notes, and snippets.

@regularlady
Created January 25, 2016 23:54
Show Gist options
  • Save regularlady/fbebd675295d4b212a33 to your computer and use it in GitHub Desktop.
Save regularlady/fbebd675295d4b212a33 to your computer and use it in GitHub Desktop.
20 Address Bloc: Menu Assignment
require_relative "../models/address_book"
class MenuController
attr_accessor :address_book
def initialize
@address_book = AddressBook.new
end
def main_menu
puts "Main Menu - #{@address_book.entries.count} entries"
puts "1 - View all entries"
puts "2 - Create an entry"
puts "3 - Search for an entry"
puts "4 - Import entries from a CSV"
puts "5 - View entry number n"
puts "6 - Exit"
print "Enter your selection: "
selection = gets.to_i
case selection
when 1
system "clear"
view_all_entries
main_menu
when 2
system "clear"
create_entry
main_menu
when 3
system "clear"
search_entries
main_menu
when 4
system "clear"
read_csv
main_menu
when 5
system "clear"
puts "Enter the number of the entry you would like to view."
get_nth_entry
main_menu
when 6
puts "Good-bye!"
exit(0)
else
system "clear"
puts "Sorry, that is not a valid input"
main_menu
end
end
def get_nth_entry
number = gets.chomp.to_i
if number.is_a? Integer
entry = @address_book.get_entry(number)
puts entry.to_s << "\n\n"
else
puts "Please enter a valid number."
get_entry
end
end
def view_all_entries
@address_book.entries.each do |entry|
system "clear"
puts entry.to_s
entry_submenu(entry)
end
system "clear"
puts "End of entries"
end
def create_entry
system "clear"
puts "New AddressBloc Entry"
print "Name: "
name = gets.chomp
print "Phone number: "
phone = gets.chomp
print "Email: "
email = gets.chomp
@address_book.add_entry(name, phone, email)
system "clear"
puts "New entry created"
end
def search_entries
end
def read_csv
end
def entry_submenu(entry)
puts "n - next entry"
puts "d - delete entry"
puts "e - edit this entry"
puts "m - return to main menu"
selection = gets.chomp
case selection
when "n"
when "d"
when "e"
when "m"
system "clear"
main_menu
else
system "clear"
puts "#{selection} is not a valid input"
entries_submenu(entry)
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment