Class: FreightKit::NUMK

Inherits:
TheGreatInformationFactory show all
Includes:
Documentable
Defined in:
lib/freight_kit/carriers/numk.rb

Constant Summary collapse

REACTIVE_FREIGHT_CARRIER =
true

Constants inherited from TheGreatInformationFactory

TheGreatInformationFactory::REACTIVE_FREIGHT_PLATFORM

Constants inherited from Carrier

Carrier::BOL_NUMBER_TRACKING_URL_TEMPLATE, Carrier::NUMBERS, Carrier::ORDER_NUMBER_TRACKING_URL_TEMPLATE, Carrier::PICKUP_NUMBER_TRACKING_URL_TEMPLATE, Carrier::PO_NUMBER_TRACKING_URL_TEMPLATE, Carrier::TRACKING_NUMBER_TRACKING_URL_TEMPLATE, Carrier::VALID_BOL_NUMBER_REGEX, Carrier::VALID_ORDER_NUMBER_REGEX, Carrier::VALID_PICKUP_NUMBER_REGEX, Carrier::VALID_PO_NUMBER_REGEX, Carrier::VALID_TRACKING_NUMBER_REGEX

Class Attribute Summary collapse

Attributes inherited from Carrier

#conf, #credentials, #customer_location, #last_request, #rates_with_excessive_length_fees, #tariff, #tmpdir

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Documentable

#pod, #scanned_bol

Methods inherited from TheGreatInformationFactory

required_credential_types

Methods included from Pickupable

#create_pickup

Methods included from Trackable

#find_tracking_info

Methods included from Rateable

#find_rates

Methods inherited from Platform

#initialize

Methods inherited from Carrier

#available_services, #bol, bol_requires_tracking_number?, #cancel_shipment, #create_pickup, default_location, #fetch_credential, #find_estimate, #find_locations, #find_rates, find_rates_with_declared_value?, #find_tracking_info, #find_tracking_number_from_pickup_number, implemented?, #initialize, maximum_address_field_length, #overlength_fee, pickup_number_is_tracking_number?, #pod, required_credential_types, #scanned_bol, #serviceable_accessorials?, tracking_url_template, #valid_credentials?, valid_number_regex, #valid_tracking_number?, #validate_packages

Constructor Details

This class inherits a constructor from FreightKit::Platform

Class Attribute Details

.nameObject (readonly)

Returns the value of attribute name.



32
33
34
# File 'lib/freight_kit/carriers/numk.rb', line 32

def name
  @name
end

.scacObject (readonly)

Returns the value of attribute scac.



32
33
34
# File 'lib/freight_kit/carriers/numk.rb', line 32

def scac
  @scac
end

Class Method Details

.maximum_heightObject



6
7
8
# File 'lib/freight_kit/carriers/numk.rb', line 6

def maximum_height
  Measured::Length.new(105, :inches)
end

.maximum_weightObject



10
11
12
# File 'lib/freight_kit/carriers/numk.rb', line 10

def maximum_weight
  Measured::Weight.new(10_000, :pounds)
end

.minimum_length_for_overlength_feesObject



14
15
16
# File 'lib/freight_kit/carriers/numk.rb', line 14

def minimum_length_for_overlength_fees
  Measured::Length.new(4, :ft)
end

.overlength_fees_require_tariff?Boolean

Returns:

  • (Boolean)


18
19
20
# File 'lib/freight_kit/carriers/numk.rb', line 18

def overlength_fees_require_tariff?
  false
end

.requirementsObject



22
23
24
# File 'lib/freight_kit/carriers/numk.rb', line 22

def requirements
  %i[credentials]
end

Instance Method Details

#build_calculated_accessorials(packages) ⇒ Object



37
38
39
40
41
42
43
# File 'lib/freight_kit/carriers/numk.rb', line 37

def build_calculated_accessorials(packages)
  longest_dimension = packages.map { |package| [package.length(:in), package.width(:in)].max }.max.ceil

  return ['OVER'] if longest_dimension > 48

  []
end

#build_soap_headerObject



45
46
47
48
49
50
# File 'lib/freight_kit/carriers/numk.rb', line 45

def build_soap_header
  soap_header = super
  soap_header[:password] = soap_header[:password]&.downcase

  soap_header
end