Sha256: d5a6d2d3702fc88ccf96eeaecf528b8f782f91d6e1c5221b7d5be89e5b78fabd
Contents?: true
Size: 1.01 KB
Versions: 6
Compression:
Stored size: 1.01 KB
Contents
require "httpi" module Wasabi # = Wasabi::Resolver # # Resolves local and remote WSDL documents. class Resolver class HTTPError < StandardError def initialize(message, response=nil) super(message) @response = response end attr_reader :response end URL = /^http[s]?:/ XML = /^</ def initialize(document, request = nil) @document = document @request = request || HTTPI::Request.new end attr_reader :document, :request 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 def load_from_remote request.url = document response = HTTPI.get(request) raise HTTPError.new("Error: #{response.code}", response) if response.error? response.body end def load_from_disc File.read(document) end end end
Version data entries
6 entries across 6 versions & 2 rubygems