Class: JPLMissions::CLI

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

Instance Method Summary collapse

Instance Method Details

#callObject



3
4
5
6
# File 'lib/jpl_missions/cli.rb', line 3

def call
  puts "Welcome to NASA JPL Missions!"
  self.start
end

#display_mission_details(input) ⇒ Object



83
84
85
86
87
88
# File 'lib/jpl_missions/cli.rb', line 83

def display_mission_details(input)
  mission = JPLMissions::Mission.find_from_user_input(input)
  puts "Mission Title: #{mission.title}"
  puts "#{mission.launch_date}"
  puts "About: #{mission.description}"
end

#exit_cliObject



35
36
37
38
39
# File 'lib/jpl_missions/cli.rb', line 35

def exit_cli
  puts "For more information on NASA JPL and their missions,"
  puts "visit https://www.jpl.nasa.gov"
  puts "Goodbye!"
end

#list_missions(option) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/jpl_missions/cli.rb', line 41

def list_missions(option)
  case option
  when '1'
    list_missions_from_url('https://www.jpl.nasa.gov/missions/?search=&type=current&missions_target=&mission_type=&launch_date=#submit')
    list_nav
  when '2'
    list_missions_from_url('https://www.jpl.nasa.gov/missions/?search=&type=past&missions_target=&mission_type=&launch_date=#submit')
    list_nav
  when '3'
    list_missions_from_url('https://www.jpl.nasa.gov/missions/?search=&type=future&missions_target=&mission_type=&launch_date=#submit')
    list_nav
  when '4'
    list_missions_from_url('https://www.jpl.nasa.gov/missions/?type=proposed')
    list_nav
  end
end

#list_missions_from_url(url) ⇒ Object



58
59
60
61
62
63
64
65
# File 'lib/jpl_missions/cli.rb', line 58

def list_missions_from_url(url)
  JPLMissions::Mission.clear_all
  missions_array = JPLMissions::Scraper.scrape_missions_from_url(url)
  JPLMissions::Mission.create_missions_from_array(missions_array)
  JPLMissions::Mission.all.each.with_index do |mission, index|
    puts "#{index + 1}: #{mission.title}"
  end
end

#list_navObject



67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/jpl_missions/cli.rb', line 67

def list_nav
  puts ""
  puts ">> To learn more, select a mission."
  puts ">> To return to the main menu, enter 'exit.'"
  puts ""
  input = gets.chomp
  if input.between?('1', JPLMissions::Mission.all.size.to_s)
    display_mission_details(input)
    list_nav
  elsif input == "exit"
    start
  else puts "Please select from the available options"
    list_nav
  end
end


24
25
26
27
28
29
30
31
32
33
# File 'lib/jpl_missions/cli.rb', line 24

def main_menu
  puts ("  What kind of missions would you like to browse?\n    1. Current Missions\n    2. Past Missions\n    3. Future Missions\n    4. Proposed Missions\n    Enter 'exit' to quit\n  DOC\nend\n")

#startObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/jpl_missions/cli.rb', line 8

def start
  main_menu
  input = gets.chomp
  case input
  when /1|2|3|4/
    #print list of selected Missions
    self.list_missions(input)
  when 'exit'
    exit_cli
  else
    puts "I'm sorry, that's not an option."
    puts "Please choose from the available options."
    self.start
  end
end