Sha256: bc9e3dd7eaa488cc3de1997a38d72d42e1c445a629cde2f85bd9c8b109a77d62

Contents?: true

Size: 920 Bytes

Versions: 1

Compression:

Stored size: 920 Bytes

Contents

require "httpi"

module Savon
  module WSDL

    # = Savon::WSDL::Request
    #
    # Executes WSDL requests.
    class Request

      # Expects an <tt>HTTPI::Request</tt> to execute a WSDL request
      # and returns the response.
      def self.execute(request)
        new(request).response
      end

      # Expects an <tt>HTTPI::Request</tt>.
      def initialize(request)
        self.request = request
      end

      # Accessor for the <tt>HTTPI::Request</tt>.
      attr_accessor :request

      # Executes the request and returns the response.
      def response
        @response ||= with_logging { HTTPI.get request }
      end

    private

      # Logs the HTTP request and yields to a given +block+.
      def with_logging
        Savon.log "Retrieving WSDL from: #{request.url}"
        Savon.log "Using :#{request.auth.type} authentication" if request.auth?
        yield
      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
savon-0.9.3 lib/savon/wsdl/request.rb