class PackageTracker::Response

Attributes

statuses[R]
tracking_number[R]

Public Class Methods

new(tracking_number, carrier, statuses=[]) click to toggle source
# File lib/package_tracker/response.rb, line 6
def initialize(tracking_number, carrier, statuses=[])
  @tracking_number = tracking_number
  @carrier = carrier
  @statuses = statuses
  sort_statuses!
end

Public Instance Methods

add_status(message, time, location="") click to toggle source
# File lib/package_tracker/response.rb, line 13
def add_status(message, time, location="")
  @statuses << { :message => message, :time => time, :location => location }
  sort_statuses!
end
current_location() click to toggle source
# File lib/package_tracker/response.rb, line 22
def current_location
  current_status[:location]
end
current_status() click to toggle source
# File lib/package_tracker/response.rb, line 18
def current_status
  @statuses.first
end
delivered?() click to toggle source
# File lib/package_tracker/response.rb, line 26
def delivered?
  current_status[:message] == @carrier.delivered_status
end

Private Instance Methods

sort_statuses!() click to toggle source
# File lib/package_tracker/response.rb, line 32
def sort_statuses!
  @statuses.sort_by! { |status| status[:time] }.reverse!
end