Sha256: 8c330f42167a67b3081e16246857a9e20e93f55f6bac879cb3d906a368ec0982

Contents?: true

Size: 1.53 KB

Versions: 3

Compression:

Stored size: 1.53 KB

Contents

module ActiveMerchant #:nodoc:
  module Shipping
    
    class TrackingResponse < Response
      attr_reader :carrier # symbol
      attr_reader :carrier_name # string
      attr_reader :status # symbol
      attr_reader :status_code # string
      attr_reader :status_description #string
      attr_reader :scheduled_delivery_date # time
      attr_reader :delivery_signature #string
      attr_reader :tracking_number # string
      attr_reader :shipment_events # array of ShipmentEvents in chronological order
      attr_reader :origin, :destination
      
      def initialize(success, message, params = {}, options = {})
        @carrier = options[:carrier].parameterize.to_sym
        @carrier_name = options[:carrier]
        @status = options[:status]
        @status_code = options[:status_code]
        @status_description = options[:status_description]
        @scheduled_delivery_date = options[:scheduled_delivery_date]
        @delivery_signature = options[:delivery_signature]
        @tracking_number = options[:tracking_number]
        @shipment_events = Array(options[:shipment_events])
        @origin, @destination = options[:origin], options[:destination]
        super
      end

      def latest_event
        @shipment_events.last
      end

      def is_delivered?
        @status == :delivered
      end

      def has_exception?
        @status == :exception
      end

      alias_method(:exception_event, :latest_event)
      alias_method(:delivered?, :is_delivered?)
      alias_method(:exception?, :has_exception?)

    end
    
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
active_shipping-0.11.0 lib/active_shipping/shipping/tracking_response.rb
active_shipping-0.10.1 lib/active_shipping/shipping/tracking_response.rb
active_shipping-0.10.0 lib/active_shipping/shipping/tracking_response.rb