Class: MuseumDay::CLI
- Inherits:
-
Object
- Object
- MuseumDay::CLI
- Defined in:
- lib/museum_day/cli.rb
Instance Attribute Summary collapse
-
#zipcode ⇒ Object
Returns the value of attribute zipcode.
Instance Method Summary collapse
- #call ⇒ Object
- #exit?(input) ⇒ Boolean
- #get_user_input_for_details_and_print ⇒ Object
- #get_zipcode ⇒ Object
- #goodbye ⇒ Object
- #list_museums(input) ⇒ Object
- #menu ⇒ Object
- #new_or_back?(input) ⇒ Boolean
- #print_museum_details(input) ⇒ Object
- #start ⇒ Object
Instance Attribute Details
#zipcode ⇒ Object
Returns the value of attribute zipcode.
2 3 4 |
# File 'lib/museum_day/cli.rb', line 2 def zipcode @zipcode end |
Instance Method Details
#call ⇒ Object
4 5 6 7 |
# File 'lib/museum_day/cli.rb', line 4 def call puts "--------------Welcome to Museum Day--------------" start end |
#exit?(input) ⇒ Boolean
106 107 108 |
# File 'lib/museum_day/cli.rb', line 106 def exit?(input) goodbye if input.downcase == "exit" end |
#get_user_input_for_details_and_print ⇒ Object
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/museum_day/cli.rb', line 58 def get_user_input_for_details_and_print input = 0 while !input.to_i.between?(1, MuseumDay::Museum.all.size) puts "\nEnter the number of the museum you'd like more info on or type exit" input = gets.strip exit?(input) if input.to_i.between?(1, MuseumDay::Museum.all.size) print_museum_details(input) else puts "Invalid number" end end end |
#get_zipcode ⇒ Object
83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/museum_day/cli.rb', line 83 def get_zipcode puts "\nPlease enter your zipcode or type exit" self.zipcode = gets.strip exit?(zipcode) if zipcode.size != 5 puts "\nInvalid Zipcode" get_zipcode end end |
#goodbye ⇒ Object
110 111 112 113 114 115 |
# File 'lib/museum_day/cli.rb', line 110 def goodbye puts "-----------------" puts "| Goodbye |" puts "-----------------" exit end |
#list_museums(input) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/museum_day/cli.rb', line 29 def list_museums(input) @scraper = MuseumDay::Scraper.new(input) @scraper.make_museums puts "\n--------------Listing museums near #{zipcode}--------------" MuseumDay::Museum.all.each.with_index(1) do |museum, idx| puts "#{idx}. #{museum.name} - #{museum.city}" end end |
#menu ⇒ Object
75 76 77 78 79 80 81 |
# File 'lib/museum_day/cli.rb', line 75 def puts "\n---------------------------------------------" puts "To go back to list of museums, enter 'back'." puts "To search a new zipcode, enter 'new'." puts "To quit, enter 'exit'." puts "---------------------------------------------" end |
#new_or_back?(input) ⇒ Boolean
95 96 97 98 99 100 101 102 103 104 |
# File 'lib/museum_day/cli.rb', line 95 def new_or_back?(input) if input == "new" MuseumDay::Museum.clear_all self.zipcode = nil start elsif input == "back" MuseumDay::Museum.clear_all start end end |
#print_museum_details(input) ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/museum_day/cli.rb', line 41 def print_museum_details(input) museum = MuseumDay::Museum.find(input.to_i) @scraper.scrape_details(museum) puts "\n--------------#{museum.name}--------------" puts "#{museum.address}" puts " #{museum.hours}" puts "\nPhone Number: #{museum.phone_number}" puts "Website: #{museum.website_url}" puts "Facebook: #{museum.fb}" if museum.fb puts "Twitter: #{museum.twitter}" if museum.twitter puts "\n--------------Description--------------" puts "#{museum.description}" end |
#start ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/museum_day/cli.rb', line 10 def start get_zipcode if !zipcode exit?(zipcode) list_museums(zipcode) get_user_input_for_details_and_print input = gets.strip.downcase exit?(input) new_or_back?(input) end |