Sha256: 23b738ea5d15637b6134accc7f357c7c868507fff4e4da7caa758208387ee257

Contents?: true

Size: 419 Bytes

Versions: 8

Compression:

Stored size: 419 Bytes

Contents

module TrackingNumber
  class DHL < Base
    SEARCH_PATTERN = /(\b([0-9]\s*){11,11}\b)/
    VERIFY_PATTERN = /^([0-9]{10,10})([0-9])$/
    def carrier
      :dhl
    end

    def matches
      self.tracking_number.scan(VERIFY_PATTERN).flatten
    end

    def valid_checksum?
      # standard mod 7 check
      sequence, check_digit = matches
      return true if sequence.to_i % 7 == check_digit.to_i
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
tracking_number-0.9.1 lib/tracking_number/dhl.rb
tracking_number-0.9.0 lib/tracking_number/dhl.rb
tracking_number-0.8.6 lib/tracking_number/dhl.rb
tracking_number-0.8.5 lib/tracking_number/dhl.rb
tracking_number-0.8.0 lib/tracking_number/dhl.rb
tracking_number-0.7.0 lib/tracking_number/dhl.rb
tracking_number-0.6.0 lib/tracking_number/dhl.rb
tracking_number-0.5.0 lib/tracking_number/dhl.rb