Class: FreightKit::Shipment
- Defined in:
- lib/freight_kit/models/shipment.rb
Overview
Shipment is the abstract base class for all rate requests.
Instance Attribute Summary collapse
-
#accessorials ⇒ Object
Returns the value of attribute accessorials.
-
#declared_value_cents ⇒ Object
Declared value in cents.
-
#destination ⇒ Object
Where the package will go.
-
#order_number ⇒ Object
Order number (also known as shipper number, SO #).
-
#origin ⇒ Object
Where the shipment will originate from.
-
#packages ⇒ Object
The list of packages that will be in the shipment.
-
#pickup_at ⇒ Object
Pickup date/time.
-
#po_number ⇒ Object
Purchase order number (also known as PO #).
-
#pro ⇒ Object
Returns the value of attribute pro.
Instance Method Summary collapse
- #hazmat? ⇒ Boolean
- #loose? ⇒ Boolean
- #loose_and_palletized? ⇒ Boolean
- #palletized? ⇒ Boolean
- #valid? ⇒ Boolean
Methods inherited from Model
Constructor Details
This class inherits a constructor from FreightKit::Model
Instance Attribute Details
#accessorials ⇒ Object
Returns the value of attribute accessorials.
16 17 18 |
# File 'lib/freight_kit/models/shipment.rb', line 16 def accessorials @accessorials end |
#declared_value_cents ⇒ Object
Declared value in cents.
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/freight_kit/models/shipment.rb', line 15 class Shipment < Model attr_accessor :accessorials, :declared_value_cents, :destination, :origin, :order_number, :packages, :po_number, :pro attr_reader :pickup_at def loose? return false if @packages.blank? packages.map(&:packaging).map(&:pallet?).none?(true) end def hazmat? packages.map(&:hazmat?).any?(true) end def loose_and_palletized? !loose? && !palletized? end def palletized? return false if @packages.blank? packages.map(&:packaging).map(&:pallet?).none?(false) end def pickup_at=(date_time) if date_time.is_a?(ActiveSupport::TimeWithZone) @pickup_at = FreightKit::DateTime.new(date_time_with_zone: date_time) return end raise ArgumentError, 'date_time must be an FreightKit::DateTime' unless date_time.is_a?(DateTime) @pickup_at = date_time end def valid? return false if @accessorials.nil? return false unless @destination.is_a?(Location) return false unless @packages.is_a?(Array) return false if @packages.any? { |p| p.class != Package } true end end |
#destination ⇒ Object
Where the package will go.
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/freight_kit/models/shipment.rb', line 15 class Shipment < Model attr_accessor :accessorials, :declared_value_cents, :destination, :origin, :order_number, :packages, :po_number, :pro attr_reader :pickup_at def loose? return false if @packages.blank? packages.map(&:packaging).map(&:pallet?).none?(true) end def hazmat? packages.map(&:hazmat?).any?(true) end def loose_and_palletized? !loose? && !palletized? end def palletized? return false if @packages.blank? packages.map(&:packaging).map(&:pallet?).none?(false) end def pickup_at=(date_time) if date_time.is_a?(ActiveSupport::TimeWithZone) @pickup_at = FreightKit::DateTime.new(date_time_with_zone: date_time) return end raise ArgumentError, 'date_time must be an FreightKit::DateTime' unless date_time.is_a?(DateTime) @pickup_at = date_time end def valid? return false if @accessorials.nil? return false unless @destination.is_a?(Location) return false unless @packages.is_a?(Array) return false if @packages.any? { |p| p.class != Package } true end end |
#order_number ⇒ Object
Order number (also known as shipper number, SO #).
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/freight_kit/models/shipment.rb', line 15 class Shipment < Model attr_accessor :accessorials, :declared_value_cents, :destination, :origin, :order_number, :packages, :po_number, :pro attr_reader :pickup_at def loose? return false if @packages.blank? packages.map(&:packaging).map(&:pallet?).none?(true) end def hazmat? packages.map(&:hazmat?).any?(true) end def loose_and_palletized? !loose? && !palletized? end def palletized? return false if @packages.blank? packages.map(&:packaging).map(&:pallet?).none?(false) end def pickup_at=(date_time) if date_time.is_a?(ActiveSupport::TimeWithZone) @pickup_at = FreightKit::DateTime.new(date_time_with_zone: date_time) return end raise ArgumentError, 'date_time must be an FreightKit::DateTime' unless date_time.is_a?(DateTime) @pickup_at = date_time end def valid? return false if @accessorials.nil? return false unless @destination.is_a?(Location) return false unless @packages.is_a?(Array) return false if @packages.any? { |p| p.class != Package } true end end |
#origin ⇒ Object
Where the shipment will originate from.
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/freight_kit/models/shipment.rb', line 15 class Shipment < Model attr_accessor :accessorials, :declared_value_cents, :destination, :origin, :order_number, :packages, :po_number, :pro attr_reader :pickup_at def loose? return false if @packages.blank? packages.map(&:packaging).map(&:pallet?).none?(true) end def hazmat? packages.map(&:hazmat?).any?(true) end def loose_and_palletized? !loose? && !palletized? end def palletized? return false if @packages.blank? packages.map(&:packaging).map(&:pallet?).none?(false) end def pickup_at=(date_time) if date_time.is_a?(ActiveSupport::TimeWithZone) @pickup_at = FreightKit::DateTime.new(date_time_with_zone: date_time) return end raise ArgumentError, 'date_time must be an FreightKit::DateTime' unless date_time.is_a?(DateTime) @pickup_at = date_time end def valid? return false if @accessorials.nil? return false unless @destination.is_a?(Location) return false unless @packages.is_a?(Array) return false if @packages.any? { |p| p.class != Package } true end end |
#packages ⇒ Object
The list of packages that will be in the shipment.
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/freight_kit/models/shipment.rb', line 15 class Shipment < Model attr_accessor :accessorials, :declared_value_cents, :destination, :origin, :order_number, :packages, :po_number, :pro attr_reader :pickup_at def loose? return false if @packages.blank? packages.map(&:packaging).map(&:pallet?).none?(true) end def hazmat? packages.map(&:hazmat?).any?(true) end def loose_and_palletized? !loose? && !palletized? end def palletized? return false if @packages.blank? packages.map(&:packaging).map(&:pallet?).none?(false) end def pickup_at=(date_time) if date_time.is_a?(ActiveSupport::TimeWithZone) @pickup_at = FreightKit::DateTime.new(date_time_with_zone: date_time) return end raise ArgumentError, 'date_time must be an FreightKit::DateTime' unless date_time.is_a?(DateTime) @pickup_at = date_time end def valid? return false if @accessorials.nil? return false unless @destination.is_a?(Location) return false unless @packages.is_a?(Array) return false if @packages.any? { |p| p.class != Package } true end end |
#pickup_at ⇒ Object
Pickup date/time.
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/freight_kit/models/shipment.rb', line 15 class Shipment < Model attr_accessor :accessorials, :declared_value_cents, :destination, :origin, :order_number, :packages, :po_number, :pro attr_reader :pickup_at def loose? return false if @packages.blank? packages.map(&:packaging).map(&:pallet?).none?(true) end def hazmat? packages.map(&:hazmat?).any?(true) end def loose_and_palletized? !loose? && !palletized? end def palletized? return false if @packages.blank? packages.map(&:packaging).map(&:pallet?).none?(false) end def pickup_at=(date_time) if date_time.is_a?(ActiveSupport::TimeWithZone) @pickup_at = FreightKit::DateTime.new(date_time_with_zone: date_time) return end raise ArgumentError, 'date_time must be an FreightKit::DateTime' unless date_time.is_a?(DateTime) @pickup_at = date_time end def valid? return false if @accessorials.nil? return false unless @destination.is_a?(Location) return false unless @packages.is_a?(Array) return false if @packages.any? { |p| p.class != Package } true end end |
#po_number ⇒ Object
Purchase order number (also known as PO #).
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/freight_kit/models/shipment.rb', line 15 class Shipment < Model attr_accessor :accessorials, :declared_value_cents, :destination, :origin, :order_number, :packages, :po_number, :pro attr_reader :pickup_at def loose? return false if @packages.blank? packages.map(&:packaging).map(&:pallet?).none?(true) end def hazmat? packages.map(&:hazmat?).any?(true) end def loose_and_palletized? !loose? && !palletized? end def palletized? return false if @packages.blank? packages.map(&:packaging).map(&:pallet?).none?(false) end def pickup_at=(date_time) if date_time.is_a?(ActiveSupport::TimeWithZone) @pickup_at = FreightKit::DateTime.new(date_time_with_zone: date_time) return end raise ArgumentError, 'date_time must be an FreightKit::DateTime' unless date_time.is_a?(DateTime) @pickup_at = date_time end def valid? return false if @accessorials.nil? return false unless @destination.is_a?(Location) return false unless @packages.is_a?(Array) return false if @packages.any? { |p| p.class != Package } true end end |
#pro ⇒ Object
Returns the value of attribute pro.
16 17 18 |
# File 'lib/freight_kit/models/shipment.rb', line 16 def pro @pro end |
Instance Method Details
#hazmat? ⇒ Boolean
32 33 34 |
# File 'lib/freight_kit/models/shipment.rb', line 32 def hazmat? packages.map(&:hazmat?).any?(true) end |
#loose? ⇒ Boolean
26 27 28 29 30 |
# File 'lib/freight_kit/models/shipment.rb', line 26 def loose? return false if @packages.blank? packages.map(&:packaging).map(&:pallet?).none?(true) end |
#loose_and_palletized? ⇒ Boolean
36 37 38 |
# File 'lib/freight_kit/models/shipment.rb', line 36 def loose_and_palletized? !loose? && !palletized? end |
#palletized? ⇒ Boolean
40 41 42 43 44 |
# File 'lib/freight_kit/models/shipment.rb', line 40 def palletized? return false if @packages.blank? packages.map(&:packaging).map(&:pallet?).none?(false) end |
#valid? ⇒ Boolean
57 58 59 60 61 62 63 64 |
# File 'lib/freight_kit/models/shipment.rb', line 57 def valid? return false if @accessorials.nil? return false unless @destination.is_a?(Location) return false unless @packages.is_a?(Array) return false if @packages.any? { |p| p.class != Package } true end |