class Wasabi::Resolver
Wasabi::Resolver
¶ ↑
Resolves local and remote WSDL documents.
Constants
- URL
- XML
Attributes
adapter[R]
document[R]
request[R]
Public Class Methods
new(document, request = nil, adapter = nil)
click to toggle source
# File lib/wasabi/resolver.rb, line 23 def initialize(document, request = nil, adapter = nil) @document = document @request = request || Faraday.new @adapter = adapter end
Public Instance Methods
resolve()
click to toggle source
# File lib/wasabi/resolver.rb, line 31 def resolve raise ArgumentError, "Unable to resolve: #{document.inspect}" unless document case document when URL then load_from_remote when XML then document else load_from_disc end end
Private Instance Methods
load_from_disc()
click to toggle source
# File lib/wasabi/resolver.rb, line 62 def load_from_disc File.read(document) end
load_from_remote()
click to toggle source
# File lib/wasabi/resolver.rb, line 43 def load_from_remote # TODO: remove_after_httpi # support HTTPI and Faraday side by side # dont reference HTTPI by constant until inside the conditional, in case it isn't loaded if request.class.to_s.include?("HTTPI::Request") request.url = document response = HTTPI.get(request, adapter) raise HTTPError.new("Error: #{response.code} for url #{request.url}", response) if response.error? else request.adapter *adapter if adapter response = request.get(document) raise HTTPError.new("Error: #{response.status} for url #{document}", response) unless response.success? end response.body end