Skip to content

Commit

Permalink
Added FedEx#available_services method. This completes FDXRateAvailabl…
Browse files Browse the repository at this point in the history
…eServices request.
  • Loading branch information
jimmybaker committed Apr 15, 2008
1 parent 2362670 commit 4de79e3
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 9 deletions.
1 change: 1 addition & 0 deletions lib/shipping/base.rb
Expand Up @@ -28,6 +28,7 @@ def initialize(options = {})
YAML.load(File.open(prefs)).each {|pref, value| eval("@#{pref} = #{value.inspect}")} if File.exists?(prefs)

@required = Array.new
@services = Array.new

# include all provided data
options.each do |method, value|
Expand Down
12 changes: 9 additions & 3 deletions lib/shipping/fedex.rb
Expand Up @@ -401,8 +401,12 @@ def void(tracking_number)
return true
end

def available_services
get_available_services
def available_services(force=nil)
if @services.empty? || force
get_available_services
else
@services
end
end

private
Expand Down Expand Up @@ -470,7 +474,9 @@ def get_available_services
# Ground first
@services = []
rate_available_services_request('FDXG')
#rate_available_services_request('FDXE')
rate_available_services_request('FDXE')

return @services
end

def rate_available_services_request(carrier_code)
Expand Down
18 changes: 12 additions & 6 deletions lib/shipping/service.rb
Expand Up @@ -15,7 +15,7 @@ def initialize(carrier, xml)
when 'fedex'
initialize_for_fedex(xml)
when 'ups'

initialize_for_ups(xml)
when 'usps'

end
Expand All @@ -25,14 +25,20 @@ def initialize(carrier, xml)
def initialize_for_fedex(xml)
begin
@carrier = 'fedex'
#@eta = REXML::XPath.first(xml, "//DeliveryDate").text
@type = REXML::XPath.first(xml, "//Service").text
@discount_price = REXML::XPath.first(xml, "//DiscountedCharges/BaseCharge").text
@price = REXML::XPath.first(xml, "//DiscountedCharges/NetCharge").text
rescue ShippingError => e
@eta = REXML::XPath.first(xml, "DeliveryDate").text unless REXML::XPath.match(xml, "DeliveryDate").empty?
@type = REXML::XPath.first(xml, "Service").text
@discount_price = REXML::XPath.first(xml, "EstimatedCharges/DiscountedCharges/BaseCharge").text
@price = REXML::XPath.first(xml, "EstimatedCharges/DiscountedCharges/NetCharge").text
rescue Exception => e
puts e.message
end
end

def initialize_for_ups(xml)

end


end

end

0 comments on commit 4de79e3

Please sign in to comment.