Sha256: 48f718a2acff53f650b1e2bad5d3c86c98275dc96f0f8b3ddc84174d1b9f22ea

Contents?: true

Size: 1.38 KB

Versions: 13

Compression:

Stored size: 1.38 KB

Contents

require 'net/http'
require 'uri'

module Supergood
  module Vendor
    module NetHTTP
      block = lambda do |x|
        alias original_request_method request
        def request(original_request_payload, body = nil, &block)
          http = self;
          url = Supergood::Utils.request_url(http, original_request_payload)
          uri = URI.parse(url)
          request = {
            headers: Supergood::Utils.get_header(original_request_payload),
            method: original_request_payload.method,
            body: original_request_payload.body,
            url: url,
            path: original_request_payload.path,
            search: uri.query,
            domain: uri.host,
          }
          Supergood.intercept(request) do
            original_response = original_request_method(original_request_payload, body, &block)
            {
              headers: Supergood::Utils.get_header(original_response),
              status: original_response.code,
              statusText: original_response.message,
              body: original_response.body,
              original_response: original_response
            }
          end
        end
      end

      if defined?(Net::HTTP)
        Net::HTTP.class_eval(&block)
      end

      if defined?(::WebMock)
        WebMock::HttpLibAdapters::NetHttpAdapter.instance_variable_get("@webMockNetHTTP").class_eval(&block)
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
supergood-0.1.1 lib/supergood/vendors/net-http.rb
supergood-0.1.0 lib/supergood/vendors/net-http.rb
supergood-0.0.12 lib/supergood/vendors/net-http.rb
supergood-0.0.11 lib/supergood/vendors/net-http.rb
supergood-0.0.10 lib/supergood/vendors/net-http.rb
supergood-0.0.9 lib/supergood/vendors/net-http.rb
supergood-0.0.8 lib/supergood/vendors/net-http.rb
supergood-0.0.7 lib/supergood/vendors/net-http.rb
supergood-0.0.6 lib/supergood/vendors/net-http.rb
supergood-0.0.5 lib/supergood/vendors/net-http.rb
supergood-0.0.4 lib/supergood/vendors/net-http.rb
supergood-0.0.3 lib/supergood/vendors/net-http.rb
supergood-0.0.2 lib/supergood/vendors/net-http.rb