Sha256: f4eedb519d1929211bc28fa5a5c013172f4758674a96d2f63d52da6ff7d136e6

Contents?: true

Size: 1.25 KB

Versions: 10

Compression:

Stored size: 1.25 KB

Contents

module Supergood
  module Vendor
    module HTTPrb
      if defined?(HTTP::Client)
        HTTP::Client.class_eval {
          alias original_perform perform
          def perform(original_request_payload, original_options)
            request = {
              headers: original_request_payload.headers.to_hash,
              method: original_request_payload.verb.upcase.to_s,
              body: Supergood::Utils.safe_parse_json(original_request_payload.body.source),
              url: original_request_payload.uri.to_s,
              path: original_request_payload.uri.path,
              search: original_request_payload.uri.query,
              domain: original_request_payload.uri.host
            }
            Supergood.intercept(request) do
              original_response = original_perform(original_request_payload, original_options)
              status, statusText = original_response.status.to_s.split(' ')
              {
                headers: original_response.headers.to_hash,
                status: status,
                statusText: statusText,
                body: Supergood::Utils.safe_parse_json(original_response),
                original_response: original_response
              }
            end
          end
        }
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

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