class BrewerySearch::CLI
Constants
- VALID_STATES
Public Instance Methods
breweries_by_city()
click to toggle source
will return a list of breweries in the specified city
# File lib/brewery_search/cli.rb, line 79 def breweries_by_city city_input = nil puts "Please enter the name of the city you would like to filter by:" city_input = gets.strip.downcase.split.map{|word| word.capitalize}.join(' ') @last_search = BrewerySearch::Brewery.find_by_city(city_input) puts "Displaying results:" @last_search.each.with_index {|brewery, index| puts "#{index + 1}. #{brewery.name} -- #{brewery.city}, #{brewery.state} -- #{brewery.type != "" ? brewery.type : "N/A" }"} self.menu end
ind_brewery_info(brewery)
click to toggle source
returns an info sheet for a given brewery
# File lib/brewery_search/cli.rb, line 139 def ind_brewery_info(brewery) puts "\n*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*" puts "Brewery Name: #{brewery.name}" puts "Brewery Address: #{brewery.address != nil ? brewery.address : "N/A"}" puts "Brewery Location: #{brewery.city}, #{brewery.state}" puts "Brewery Phone #: #{brewery.phone != nil ? brewery.phone : "N/A"}" puts "Brewery Type: #{brewery.type != "" ? brewery.type : "N/A" }" puts "Brewery Website: #{brewery.website != nil ? brewery.website : "N/A" }" puts "Brewery Facebook: #{brewery.facebook != nil ? brewery.facebook : "N/A" }" puts "Brewery Twitter: #{brewery.twitter != nil ? brewery.twitter : "N/A" }" puts "Brewery Instagram: #{brewery.instagram != nil ? brewery.instagram : "N/A" }" puts "Brewery Youtube: #{brewery.youtube != nil ? brewery.youtube : "N/A" }" puts "" puts "Brewery Overview: #{brewery.overview.strip}" puts "*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*" puts "\nYou can say 'Website', 'Facebook', 'Twitter', 'Instagram', or" puts "'Youtube' to visit the page. Otherwise say 'menu' if you'd like" puts "to return, or 'exit' if you'd like to quit." end
list_breweries(state_input)
click to toggle source
it will return a list of breweries from the state specified by the user, in alphabetical order by Brewery name
# File lib/brewery_search/cli.rb, line 64 def list_breweries(state_input) #checking to ensure we have not already scraped the state being searched if BrewerySearch::Brewery.find_by_state(state_input) != [] @last_search = BrewerySearch::Brewery.find_by_state(state_input) else BrewerySearch::Scraper.scrape_state(state_input) @last_search = BrewerySearch::Brewery.find_by_state(state_input) end puts "Displaying results:" puts "" @last_search.each.with_index {|brewery, index| puts "#{index + 1}. #{brewery.name} -- #{brewery.city}, #{brewery.state} -- #{brewery.type != "" ? brewery.type : "N/A" }"} end
quit()
click to toggle source
it will terminate the program if the user so chooses
# File lib/brewery_search/cli.rb, line 160 def quit puts "Thank you for using Brewery Search. Have a great day!" exit end
start()
click to toggle source
# File lib/brewery_search/cli.rb, line 44 def start puts "Please enter the abbreviation for the state you'd like to search:" @last_searched_state = gets.strip.upcase if VALID_STATES.include?(@last_searched_state) self.list_breweries(@last_searched_state) elsif @last_searched_state.downcase == "exit" self.quit elsif @last_searched_state.downcase == "brewbound" Launchy.open("https://www.brewbound.com/") self.start else puts "Invalid entry received." self.start end self.menu end
welcome_screen()
click to toggle source
launches the CLI
and greets the user with a welcome screen, prompts user to enter a state to search
# File lib/brewery_search/cli.rb, line 10 def welcome_screen puts "*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*" puts "AL ..,,,,,,... .. .. . .. MT" puts "AK (# * NE" puts "AZ ,# .','.'.'.'.'.'.'. , NV" puts "AR .,,.,............. ,., NH" puts "CA ,******,,,,,,,,,,,....***@, / NJ" puts "CO ,/((#(#%##%####((///*,(((& NM" puts "CT Welcome *((#(#############(((/((/# ,,. * NY" puts "DE *(((###############(((((// *. NC" puts "FL to *((((#######%#####(((/((/( .,. * ND" puts "GA *((((#############(((/((// ,. ( OH" puts "HI Brewery */((##############((((((/* *. , OK" puts "ID *((((#############(((/((/* *. ( OR" puts "IL Search *(((##############((((((/* *. . PA" puts "IN *(((###############(((((/* *. ( RI" puts "IA /(((###############(((((/* ,. * SC" puts "KA /((########%%%#%###(((((/* ,. / SD" puts "KY /((######%%%%%%%####((#(/* *,.* TN" puts "LA /(#####%%%%%%%%%%###((#(/* *. / TX" puts "ME /(####%%%%%%%%%%%###((#(%/ ,.. . UT" puts "MD .((###%%%%%%%%%%%%%###(#(@ ...... VT" puts "MA .((###%%%%%%%%%%%%%###(#(@ .... . VA" puts "MI ,(###%%%%%%%%%%%%%%###(##/ WA" puts "MN ,.*#//%/###(#(##(#//. ,,/ WV" puts "MS , ./*** ,,,*./ WI" puts "MO , /.. .**...// WY" puts "*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*" puts "* All information contained is referenced from BrewBound. *" puts "* Type 'BrewBound' to visit them! *" puts "*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*" self.start end