Sha256: 75aba369b3ab6cf564f19fed98179827752ca01af40897886f510db2535897ee

Contents?: true

Size: 1.22 KB

Versions: 2

Compression:

Stored size: 1.22 KB

Contents

# frozen_string_literal: true

require 'friendly_shipping/package_options'
require 'friendly_shipping/services/ship_engine/label_item_options'

module FriendlyShipping
  module Services
    class ShipEngine
      # Options relating to packages in the ShipEngine labels call
      #
      # @attribute :package_code [Symbol] The type of package. Possible types can be gotten
      #    via the ShipEngine API: https://www.shipengine.com/docs/reference/list-carrier-packages/
      #    If a package type is given, no dimensions will be added to the call (as we can assume the
      #    carrier knows the dimensions of their packaging types).
      # @attribute messages [Array<String>] A list of messages to add to the label. No carrier accepts
      #    more than three messages, and some have restrictions on how many characters are possible.
      #    We're not validating here though.
      class LabelPackageOptions < FriendlyShipping::PackageOptions
        attr_reader :package_code, :messages

        def initialize(package_code: nil, messages: [], **kwargs)
          @package_code = package_code
          @messages = messages
          super(**kwargs.merge(item_options_class: LabelItemOptions))
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
friendly_shipping-0.8.1 lib/friendly_shipping/services/ship_engine/label_package_options.rb
friendly_shipping-0.8.0 lib/friendly_shipping/services/ship_engine/label_package_options.rb