class Fedex::Request::Document

Public Class Methods

new(credentials, options={}) click to toggle source
Calls superclass method
# File lib/fedex/request/document.rb, line 8
def initialize(credentials, options={})
  super(credentials, options)

  @shipping_document = options[:shipping_document]
  @filenames = options.fetch(:filenames) { {} }
end

Public Instance Methods

add_custom_components(xml) click to toggle source
Calls superclass method
# File lib/fedex/request/document.rb, line 15
def add_custom_components(xml)
  super

  add_shipping_document(xml) if @shipping_document
end

Private Instance Methods

add_shipping_document(xml) click to toggle source

Add shipping document specification

# File lib/fedex/request/document.rb, line 24
def add_shipping_document(xml)
  xml.ShippingDocumentSpecification{
    Array(@shipping_document[:shipping_document_types]).each do |type|
      xml.ShippingDocumentTypes type
    end
    hash_to_xml(xml, @shipping_document.reject{ |k| k == :shipping_document_types})
  }
end
success_response(api_response, response) click to toggle source
Calls superclass method
# File lib/fedex/request/document.rb, line 33
def success_response(api_response, response)
  super

  shipment_documents = response.merge!({
    :filenames => @filenames
  })

  Fedex::Document.new shipment_documents
end