Sha256: 8c777bb8a088e3810a35e77e69e9c68760c8a4a4ca76aae1f7f21335db6906e1
Contents?: true
Size: 1.39 KB
Versions: 7
Compression:
Stored size: 1.39 KB
Contents
require 'faraday_middleware' module Inferno module DSL # This module contains the HTTP DSL available to test writers. class HTTPClientBuilder attr_accessor :runnable # @private def build(runnable, block) self.runnable = runnable instance_exec(self, &block) params = { url: url } params.merge!(headers: headers) if headers Faraday.new(params) do |f| f.request :url_encoded f.use FaradayMiddleware::FollowRedirects end end # Define the base url for an HTTP client. A string or symbol can be # provided. A string is interpreted as a url. A symbol is interpreted as # the name of an input to the Runnable. # # @param url [String, Symbol] # @return [void] def url(url = nil) @url ||= if url.is_a? Symbol runnable.send(url) else url end end # Define custom headers for a client # # @param headers [Hash] # @return [void] def headers(headers = nil) @headers ||= headers end # @private def method_missing(name, *args, &block) return runnable.call(name, *args, &block) if runnable.respond_to? name super end # @private def respond_to_missing?(name) runnable.respond_to?(name) || super end end end end
Version data entries
7 entries across 7 versions & 1 rubygems