class FriendlyShipping::Services::Usps::RateEstimatePackageOptions

Attributes

box_name[R]
commercial_pricing[R]
first_class_mail_type[R]
hold_for_pickup[R]
rectangular[R]
shipping_method[R]
transmit_dimensions[R]

Public Class Methods

new( box_name: :variable, commercial_pricing: false, first_class_mail_type: nil, hold_for_pickup: false, shipping_method: nil, transmit_dimensions: true, rectangular: true, **kwargs ) click to toggle source
Calls superclass method FriendlyShipping::PackageOptions::new
# File lib/friendly_shipping/services/usps/rate_estimate_package_options.rb, line 21
def initialize(
  box_name: :variable,
  commercial_pricing: false,
  first_class_mail_type: nil,
  hold_for_pickup: false,
  shipping_method: nil,
  transmit_dimensions: true,
  rectangular: true,
  **kwargs
)
  @box_name = CONTAINERS.key?(box_name) ? box_name : :variable
  @commercial_pricing = commercial_pricing
  @first_class_mail_type = first_class_mail_type
  @hold_for_pickup = hold_for_pickup
  @shipping_method = shipping_method
  @transmit_dimensions = transmit_dimensions
  @rectangular = rectangular
  super kwargs
end

Public Instance Methods

container_code() click to toggle source
# File lib/friendly_shipping/services/usps/rate_estimate_package_options.rb, line 41
def container_code
  CONTAINERS.fetch(box_name)
end
first_class_mail_type_code() click to toggle source
# File lib/friendly_shipping/services/usps/rate_estimate_package_options.rb, line 45
def first_class_mail_type_code
  FIRST_CLASS_MAIL_TYPES[first_class_mail_type]
end
service_code() click to toggle source
# File lib/friendly_shipping/services/usps/rate_estimate_package_options.rb, line 49
def service_code
  return 'ALL' unless shipping_method

  # Cubic shipping methods don't have HFP or COMMERCIAL modifiers
  return shipping_method.service_code if shipping_method.service_code =~ /CUBIC/

  service_code = [shipping_method.service_code]
  service_code << 'HFP' if hold_for_pickup
  service_code << 'COMMERCIAL' if commercial_pricing
  service_code.join(' ')
end