Class: Evil::Client::Connection Abstract

Inherits:
Object
  • Object
show all
Extended by:
Dry::Initializer::Mixin
Defined in:
lib/evil/client/connection.rb,
lib/evil/client/connection/net_http.rb

Overview

This class is abstract.

Base class for a specific connection to remote uri

Direct Known Subclasses

NetHTTP

Defined Under Namespace

Classes: NetHTTP

Constant Summary collapse

REGISTRY =
{ net_http: "NetHTTP" }.freeze

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.[](name = nil) ⇒ Class

Envokes a specific connection class

Parameters:

  • key (#to_sym)

Returns:

  • (Class)


14
15
16
17
18
19
20
21
22
23
24
# File 'lib/evil/client/connection.rb', line 14

def self.[](name = nil)
  key = (name || REGISTRY.keys.first).to_sym

  klass = REGISTRY.fetch(key) do
    fail ArgumentError.new "Connection '#{key}' is not registered." \
                           " Use the following keys: #{REGISTRY.keys}"
  end

  require_relative "connection/#{key}"
  const_get klass
end

Instance Method Details

#call(_env) ⇒ Array

This method is abstract.

Sends request to the server and returns rack-compatible response

Parameters:

  • env (Hash)

Returns:

  • (Array)


31
32
33
# File 'lib/evil/client/connection.rb', line 31

def call(_env)
  fail NotImplementedError
end