Sha256: 7fbcbb9b26bed8ec02e8ae1d6ab3db8421e357fa46672dba2cc27599c697abf8
Contents?: true
Size: 1.39 KB
Versions: 1
Compression:
Stored size: 1.39 KB
Contents
require "base64" module Shippinglogic class UPS class ShipAccept < Service def self.path "/ShipAccept" end class Details class Shipment; attr_accessor :tracking_number, :label; end attr_accessor :rate, :currency, :shipments def initialize(response) details = response[:shipment_results] charges = details[:shipment_charges][:total_charges] self.rate = BigDecimal.new(charges[:monetary_value]) self.currency = charges[:currency_code] self.shipments = [*details[:package_results]].collect do |package| shipment = Shipment.new shipment.tracking_number = package[:tracking_number] shipment.label = Base64.decode64(package[:label_image][:graphic_image]) shipment end end end attribute :digest, :string private def target @target ||= Details.new(request(build_request)) end def build_request b = builder build_authentication(b) b.instruct! b.ShipmentAcceptRequest do b.Request do b.RequestAction "ShipAccept" end b.ShipmentDigest digest end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
shippinglogic-1.2.3 | lib/shippinglogic/ups/ship_accept.rb |