Sha256: e9f5eab9d201a99715853fb7f793388c59ac52126f30aa1288325577c12aad1c

Contents?: true

Size: 787 Bytes

Versions: 6

Compression:

Stored size: 787 Bytes

Contents

# frozen_string_literal: true

module Wayfarer
  module Networking
    class HTTP
      include Strategy

      CONNECTION_NAME = "wayfarer"

      def create
        Net::HTTP::Persistent.new(name: CONNECTION_NAME).tap do |conn|
          Wayfarer.config.network.http_headers.each do |key, val|
            conn.override_headers[key] = val
          end
        end
      end

      def destroy(instance)
        instance.shutdown
      end

      def fetch(instance, url)
        res = instance.request(URI(url))

        return redirect(res["location"]) if res.is_a?(Net::HTTPRedirection)

        success(url: url,
                status_code: res.code.to_i,
                body: res.body,
                headers: res.to_hash.transform_values(&:first))
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
wayfarer-0.4.6 lib/wayfarer/networking/http.rb
wayfarer-0.4.5 lib/wayfarer/networking/http.rb
wayfarer-0.4.4 lib/wayfarer/networking/http.rb
wayfarer-0.4.3 lib/wayfarer/networking/http.rb
wayfarer-0.4.2 lib/wayfarer/networking/http.rb
wayfarer-0.4.1 lib/wayfarer/networking/http.rb