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
menu() click to toggle source
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