Class: CLI

Inherits:
Object
  • Object
show all
Defined in:
lib/sp500_analyzer/cli.rb

Instance Method Summary collapse

Instance Method Details

#callObject



5
6
7
8
9
# File 'lib/sp500_analyzer/cli.rb', line 5

def call
  Scraper.array_to_datapoints
  DataPoint.set_historical_max
  start
end


11
12
13
14
15
16
17
18
19
# File 'lib/sp500_analyzer/cli.rb', line 11

def menu
  puts "1. See all prices by month"
  puts "2. See all prices by year"
  puts "3. See all prices for single year"
  puts "4. Extended info for single date"
  puts "5. Maximum prices by year"
  puts "6. Market crash info"
  puts "7. Compare two dates"
end

#startObject



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# File 'lib/sp500_analyzer/cli.rb', line 21

def start
  puts "\nWelcome to S&P Analyzer. Please choose from the following menu options:"
  puts "\n"
  go = ""
  until go.downcase == "n"
    go = ""
    menu
    input = ""
    puts "\n"
    until input.downcase == "q" || (input.to_i >= 1 && input.to_i <= 7)
      print "Item No. (or \"q\" to exit): "
      input = gets.strip
    end
    puts "\n"
    case input
    when "1"
      DisplayData.display_points(DataPoint.all)
    when "2"
      DisplayData.display_yearly
    when "3"
      valid_year = false
      until valid_year == true
        print "Enter year: "
        year = gets.strip.to_i
        valid_year = DisplayData.validate_year(year)
      end
      DisplayData.display_by_year(year)
    when "4"
      valid_date = false
      until valid_date == true
        print "Enter month (mm/yyyy): "
        date = gets.strip
        valid_date = DisplayData.validate_date(date)
      end
      DisplayData.extended_info(date)
    when "5"
      DisplayData.display_max_by_year
    when "6"
      DisplayData.display_market_crash_info
    when "7"
      valid_dates = [false,false]
      until valid_dates[0] == true
        print "Enter first month (mm/yyyy): "
        date_1 = gets.strip
        valid_dates[0] = DisplayData.validate_date(date_1)
      end
      until valid_dates[1] == true
        print "Enter second month (mm/yyyy): "
        date_2 = gets.strip
        valid_dates[1] = DisplayData.validate_date(date_2)
      end
      DisplayData.display_comparison_info(date_1, date_2)
    when "q"
      go = "n"
    end
    if go != "n"
      puts "\n"
      until go.downcase == "y" || go.downcase == "n"
        print "Would you like to complete another action? (y/n) "
        go = gets.strip
      end
      puts "\n"
    end
  end
end