Sha256: 259b71d0ec1a90eba5a5227384d5dc1fcbc438c5e8fabd577f4d38d3234f675c
Contents?: true
Size: 830 Bytes
Versions: 1
Compression:
Stored size: 830 Bytes
Contents
require 'faraday' require 'nokogiri' module TakuhaiStatus class USPS attr_reader :key, :time, :state TakuhaiStatus.add_service(self) def initialize(key) @key = key.strip raise NotMyKey.new('invalid key format') unless @key =~ /\A[a-zA-Z0-9]+\Z/ @time, @state = check end def finish? return !!(@state =~ /^Delivered/) end private def check url = "https://tools.usps.com/go/TrackConfirmAction?tLabels=#{@key}" html = Faraday.new(url: url).get.body date, status, detail = Nokogiri(html).css('div.status_feed p'); date_str = date.text.strip status_str = status.text.gsub(/\u00A0/, ' ').strip detail_str = detail.text.gsub(/\u00A0/, ' ').strip unless date_str.empty? return Time.parse(date_str), "#{status_str} (#{detail_str})" else raise NotMyKey end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
takuhai_status-1.8.1 | lib/takuhai_status/usps.rb |