class LocalSkiReport::CLI
Our CLI
Controller
Constants
- STATES_WITH_RESORTS
Attributes
resort[RW]
Public Class Methods
new()
click to toggle source
# File lib/local_ski_report/cli.rb, line 15 def initialize LocalSkiReport::Scraper.scrap_resorts_page("united-states") end
Public Instance Methods
call()
click to toggle source
# File lib/local_ski_report/cli.rb, line 19 def call greeting menu exit_msg end
display_report()
click to toggle source
# File lib/local_ski_report/cli.rb, line 152 def display_report puts @resort.reports.first.report end
display_xt_report()
click to toggle source
# File lib/local_ski_report/cli.rb, line 146 def display_xt_report report = resort.reports.first LocalSkiReport::Scraper.scrap_report_page(report) puts report.xt_report end
exit_msg()
click to toggle source
# File lib/local_ski_report/cli.rb, line 156 def exit_msg separator(60) puts "Check back later for the latest Ski reports." puts "Thanks for using Local Ski Report gem!" separator(60) end
get_key(num)
click to toggle source
# File lib/local_ski_report/cli.rb, line 66 def get_key(num) STATES_WITH_RESORTS[num].keys[0] end
get_state(reg_num, user_reg, st_num)
click to toggle source
# File lib/local_ski_report/cli.rb, line 70 def get_state(reg_num, user_reg, st_num) STATES_WITH_RESORTS[reg_num][user_reg][st_num] + ", USA" end
greeting()
click to toggle source
# File lib/local_ski_report/cli.rb, line 58 def greeting separator(40) puts "Welcome to Local Ski Report gem" separator(40) puts "Let's Get Your Local Ski Report" puts " " end
list_regions()
click to toggle source
# File lib/local_ski_report/cli.rb, line 81 def list_regions i = 1 STATES_WITH_RESORTS.each do |region| region.each_key do |k| puts "#{i}. #{k.to_s.gsub("_", " ").upcase}" i += 1 end end end
list_resorts(state)
click to toggle source
# File lib/local_ski_report/cli.rb, line 74 def list_resorts(state) resorts = LocalSkiReport::Resort.find_by_location(state) # resorts = LocalSkiReport::Scraper.scrap_resorts_page(state) resorts.each.with_index(1) { |r, i| puts "#{i}. #{r.name}" } resorts end
list_states(num)
click to toggle source
# File lib/local_ski_report/cli.rb, line 91 def list_states(num) STATES_WITH_RESORTS[num].each_value do |states| states.each.with_index(1) { |state, i| puts "#{i}. #{state}" } end end
select_region()
click to toggle source
# File lib/local_ski_report/cli.rb, line 97 def select_region list_regions separator(50) puts "Select a region to check? type number: " input = gets.chomp.to_i - 1 if input.between?(0, STATES_WITH_RESORTS.size - 1) input else separator(55) puts "Invalid number. Please select a number between 1 - #{STATES_WITH_RESORTS.size}: " separator(55) select_region end end
select_resort(state)
click to toggle source
# File lib/local_ski_report/cli.rb, line 112 def select_resort(state) resorts_arr = list_resorts(state) separator(50) puts "Select a Resort or Ski-Area for the latest Report: " input = gets.chomp.to_i - 1 if input.between?(0, resorts_arr.size - 1) @resort = resorts_arr[input] else separator(60) puts "Invalid Choice. Please choose a Resort # between 1 - #{resorts_arr.size}." separator(60) select_resort(state) end end
select_state(region_num, region_key)
click to toggle source
# File lib/local_ski_report/cli.rb, line 127 def select_state(region_num, region_key) list_states(region_num) separator(50) puts "Select a State to check? type number: " input = gets.chomp.to_i - 1 if input.between?(0, STATES_WITH_RESORTS[region_num][region_key].size - 1) input else separator(55) puts "Invalid Choice. Please choose a Resort # between 1 - #{STATES_WITH_RESORTS[region_num][region_key].size}." separator(55) select_state(region_num, region_key) end end
separator(num)
click to toggle source
# File lib/local_ski_report/cli.rb, line 142 def separator(num) puts "-" * num end