ups_time_in_transit is an easy to use interface to the UPS Time in Transit API.
installation ==
gem install ups_time_in_transit
usage ==
define your access options. These are options that won't change
between requests. Take care to specify the proper UPS url:
'https://wwwcie.ups.com/ups.app/xml/TimeInTransit' for testing and
development, and 'https://onlinetools.ups.com/ups.app/xml/TimeInTransit'
for production.
access_options = { :url => 'https://wwwcie.ups.com/ups.app/xml/TimeInTransit', :access_license_number => 'foo', :user_id => 'bar', :password => 'baz', :order_cutoff_time => 17 , :sender_city => 'Hoboken', :sender_state => 'NJ', :sender_country_code => 'US', :sender_zip => '07030'}
It's best to store these these options in a yaml file and load them
into a map when you need them:
yaml = YAML.load_file("#RAILS_ROOT/config/ups_time_in_transit.yml") access_options = yaml.inject({}){|h,(k, v)| h[k.to_sym] = v; h}
create an api instance with your access options
time_in_transit_api = UPS::TimeInTransit.new(access_options)
for each request, generate a map of request options describing
the shipment and where it's going
request_options = { :total_packages => 1, :unit_of_measurement => 'LBS', :weight => 10, :city => 'Newark', :state => 'DE', :zip => '19711', :country_code => 'US'}
request the map of delivery types (overnight, ground, etc.) to the expected
delivery date for that type. Be sure to rescue any errors.
begin delivery_dates = time_in_transit_api.request(request_options) rescue => error puts error.inspect end
changelog ==
v.0.1.0 initial release