class PackageTracker::Client

Attributes

credentials[RW]
mode[R]

Public Class Methods

new(credentials={}) click to toggle source
# File lib/package_tracker/client.rb, line 6
def initialize(credentials={})
  @credentials = credentials
end

Public Instance Methods

production_mode!() click to toggle source
# File lib/package_tracker/client.rb, line 34
def production_mode!
  @mode == "production"
end
test_mode!() click to toggle source
# File lib/package_tracker/client.rb, line 30
def test_mode!
  @mode = "testing"
end
testing?() click to toggle source
# File lib/package_tracker/client.rb, line 26
def testing?
  @mode == "testing"
end
track(tracking_number, carrier=nil) click to toggle source
# File lib/package_tracker/client.rb, line 10
def track(tracking_number, carrier=nil)
  # Fed Ex
  if carrier == :fedex || Carriers::FedEx.match(tracking_number)
    Carriers::FedEx.track(tracking_number, :credentials => @credentials[:fedex], :testing => testing?)
  # UPS
  elsif carrier == :ups || Carriers::UPS.match(tracking_number)
    Carriers::UPS.track(tracking_number, :credentials => @credentials[:ups], :testing => testing?)
  # USPS
  elsif carrier == :usps || Carriers::USPS.match(tracking_number)
    raise CarrierNotFoundError, "Need to impliment USPS"
  # DHL
  else
    raise CarrierNotFoundError
  end
end