class MuseumDay::CLI

Attributes

zipcode[RW]

Public Instance Methods

call() click to toggle source
# File lib/museum_day/cli.rb, line 4
def call
  puts "--------------Welcome to Museum Day--------------"
  start
end
exit?(input) click to toggle source
# File lib/museum_day/cli.rb, line 106
def exit?(input)
  goodbye if input.downcase == "exit"
end
get_user_input_for_details_and_print() click to toggle source
# 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() click to toggle source
# 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() click to toggle source
# File lib/museum_day/cli.rb, line 110
def goodbye
  puts "-----------------"
  puts "|    Goodbye    |"
  puts "-----------------"
  exit
end
list_museums(input) click to toggle source
# 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() click to toggle source
new_or_back?(input) click to toggle source
# 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) click to toggle source
start() click to toggle source
# 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

  menu

  input = gets.strip.downcase
  exit?(input)

  new_or_back?(input)

end