lib/seko/tracking.rb in seko-0.0.3 vs lib/seko/tracking.rb in seko-0.0.4
- old
+ new
@@ -2,13 +2,29 @@
class Tracking
attr_accessor :carrier
DPD = "http://www.dpd.co.uk/apps/tracking/?reference=:tracking_number&postcode=#results"
+ UPS = "http://wwwapps.ups.com/WebTracking/track?trackNums=:tracking_number&track.x=Track"
+ TRACKING_NUMBERS = {
+ 'UPS' => /\b(1Z ?[0-9A-Z]{3} ?[0-9A-Z]{3} ?[0-9A-Z]{2} ?[0-9A-Z]{4} ?[0-9A-Z]{3} ?[0-9A-Z]|[\dT]\d\d\d ?\d\d\d\d ?\d\d\d)\b/i,
+ 'DPD' => /\b([0-9]{14} ?[A-Z]{1})/i
+ }
+
+ def get_carrier
+ TRACKING_NUMBERS.each do |carrier, pattern|
+ return carrier.dup if @tracking_number =~ pattern
+ end
+ return 'DPD' # return DPD by default
+ end
+
def initialize(carrier, tracking_number)
- @carrier = carrier
+ # FIXME: dependent apps currently rely on two arguments
+ # (carrier and tracking_number) therefore we should keep
+ # carrier, but should removed in next minor level release
@tracking_number = tracking_number
+ @carrier = get_carrier
end
def carrier_destination
self.class.const_get(carrier.upcase)
end