require "wasabi"
require "httpi/request"
module Savon
module Wasabi
class Document < ::Wasabi::Document
def xml
@xml ||= document.kind_of?(String) ? resolve_document : document
end
attr_writer :request
private
def request
@request ||= HTTPI::Request.new
@request.url = document
@request
end
def resolve_document
case document
when /^http[s]?:/ then
response = HTTPI.get(request)
if response.error?
raise Savon::HTTP::Error.new(response)
else
response.body
end
when /^</ then document
else File.read(document)
end
end
end
end
end