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