class SpaceMissions::Mission
Attributes
acronym[RW]
altitude[RW]
attributes[RW]
current_location[RW]
description[RW]
destinations[RW]
end_date[RW]
info[RW]
landing_date[RW]
launch_date[RW]
launch_location[RW]
launch_year[RW]
mission_end_date[RW]
missions_by_status[RW]
name[RW]
number[RW]
status[RW]
targets[RW]
type[RW]
url[RW]
Public Class Methods
all()
click to toggle source
# File lib/space_missions/mission.rb, line 52 def self.all @@all end
find_by_description(input)
click to toggle source
# File lib/space_missions/mission.rb, line 16 def self.find_by_description(input) missions = @missions_by_status.select {|mission| mission.description.downcase.include?(input.downcase) if mission.description} end
find_by_status(input)
click to toggle source
# File lib/space_missions/mission.rb, line 20 def self.find_by_status(input) if input.downcase == "all" @missions_by_status = @@all else @missions_by_status = @@all.select {|mission| mission.status == input.capitalize if mission.status} end end
find_by_target(input)
click to toggle source
# File lib/space_missions/mission.rb, line 12 def self.find_by_target(input) missions = @missions_by_status.select {|mission| mission.targets.include?(input.capitalize) if mission.targets} end
launched(parameter, year, end_year=nil)
click to toggle source
# File lib/space_missions/mission.rb, line 33 def self.launched(parameter, year, end_year=nil) if parameter == "after" missions = @missions_by_status.select {|mission| mission.launch_date.scan(/\d{4}/)[0].to_i > year.to_i} elsif parameter == "before" #does not catch launch_date TBD @missions_by_status.select {|mission| mission.launch_date.scan(/\d{4}/)[0].to_i < year.to_i} elsif parameter == "between" later = @missions_by_status.select {|mission| mission.launch_date.scan(/\d{4}/)[0].to_i > year} before = @missions_by_status.select {|mission| mission.launch_date.scan(/\d{4}/)[0].to_i < end_year} missions = before & later end end
new()
click to toggle source
# File lib/space_missions/mission.rb, line 7 def initialize @@all << self end
sort_by_launch_date()
click to toggle source
# File lib/space_missions/mission.rb, line 28 def self.sort_by_launch_date filtered = @missions_by_status.select {|mission| mission.launch_date.scan(/\d{4}/)[0].to_i > 0} missions = filtered.sort_by {|mission| mission.launch_date.scan(/\d{4}/)[0].to_i} end
Public Instance Methods
open_in_browser()
click to toggle source
# File lib/space_missions/mission.rb, line 48 def open_in_browser system("open '#{url}'") end