Sha256: df63665ce48e1630e253002b55f21abcac00fa67619beb038430fef2bb5fd0a3

Contents?: true

Size: 825 Bytes

Versions: 15

Compression:

Stored size: 825 Bytes

Contents

require "httpi/adapter"

module HTTPI
  module Adapter

    # HTTPI::Adapter::Base
    #
    # Allows you to build your own adapter by implementing all public instance methods.
    # Register your adapter by calling the base class' .register method.
    class Base

      # Registers an adapter.
      def self.register(name, options = {})
        deps = options.fetch(:deps, [])
        Adapter.register(name, self, deps)
      end

      def initialize(request)
      end

      # Returns a client instance.
      def client
        raise NotImplementedError, "Adapters need to implement a #client method"
      end

      # Executes arbitrary HTTP requests.
      # @see HTTPI.request
      def request(method)
        raise NotImplementedError, "Adapters need to implement a #request method"
      end

    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
httpi-4.0.4 lib/httpi/adapter/base.rb
httpi-4.0.3 lib/httpi/adapter/base.rb
httpi-4.0.2 lib/httpi/adapter/base.rb
httpi-4.0.1 lib/httpi/adapter/base.rb
httpi-3.0.2 lib/httpi/adapter/base.rb
httpi-3.0.1 lib/httpi/adapter/base.rb
httpi-3.0.0 lib/httpi/adapter/base.rb
httpi-2.5.0 lib/httpi/adapter/base.rb
httpi-2.4.5 lib/httpi/adapter/base.rb
httpi-2.4.4 lib/httpi/adapter/base.rb
httpi-2.4.3 lib/httpi/adapter/base.rb
httpi-2.4.2 lib/httpi/adapter/base.rb
httpi-2.4.1 lib/httpi/adapter/base.rb
httpi-2.4.0 lib/httpi/adapter/base.rb
httpi-2.3.0 lib/httpi/adapter/base.rb