Sha256: 9b5bcbbcd37b8b178e3f41faf8ebe51ada2951d9a4b114bf803ad67beaae555d
Contents?: true
Size: 803 Bytes
Versions: 3
Compression:
Stored size: 803 Bytes
Contents
# Identify if tracking numbers are valid, and which service they belong to # Information on validating tracking numbers found here: # http://answers.google.com/answers/threadview/id/207899.html require 'base' require 'usps' require 'fedex' require 'ups' require 'dhl' class TrackingNumber TYPES = [UPS, FedExExpress, FedExGround, FedExGround18, FedExGround96, USPS91, USPS20, USPS13, DHL] def self.search(body) TYPES.collect { |type| type.search(body) }.flatten end def self.detect(tracking_number) detected = TYPES.collect do |test| t = test.new(tracking_number) t if t.valid? end found = detected.compact.first return found if found return Unknown.new(tracking_number) end def self.new(tracking_number) self.detect(tracking_number) end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
tracking_number-0.3.2 | lib/tracking_number.rb |
tracking_number-0.3.1 | lib/tracking_number.rb |
tracking_number-0.3.0 | lib/tracking_number.rb |