class DhlExpressGlobal::Label

Attributes

image[RW]
options[RW]
response_details[RW]

Public Class Methods

new(label_details = {}) click to toggle source
# File lib/dhl_express_global/label.rb, line 8
def initialize(label_details = {})
  @response_details = label_details[:envelope][:body][:shipment_response]
  @options = @response_details[:label_image]
  @options[:tracking_number] = @response_details[:packages_result][:package_result][:tracking_number] 
  @options[:file_name] = label_details[:file_name]
  @image = Base64.decode64(options[:graphic_image]) if has_image?

  if file_name = @options[:file_name]
    save(file_name, false)
  end
end

Public Instance Methods

file_name() click to toggle source
# File lib/dhl_express_global/label.rb, line 28
def file_name
  options[:file_name]
end
format() click to toggle source
# File lib/dhl_express_global/label.rb, line 24
def format
  options[:label_image_format]
end
has_image?() click to toggle source
# File lib/dhl_express_global/label.rb, line 47
def has_image?
  options.key?(:graphic_image)
end
name() click to toggle source
# File lib/dhl_express_global/label.rb, line 20
def name
  [tracking_number, format].join('.')
end
save(path, append_name = true) click to toggle source
# File lib/dhl_express_global/label.rb, line 36
def save(path, append_name = true)
  return unless has_image?

  full_path = Pathname.new(path)
  full_path = full_path.join(name) if append_name

  File.open(full_path, 'wb') do |f|
    f.write(@image)
  end
end
tracking_number() click to toggle source
# File lib/dhl_express_global/label.rb, line 32
def tracking_number
  options[:tracking_number]
end