Class: Net::Hippie::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/net/hippie/client.rb

Overview

A simple client for connecting with http resources.

Constant Summary collapse

DEFAULT_HEADERS =
{
  'Accept' => 'application/json',
  'Content-Type' => 'application/json',
  'User-Agent' => "net/hippie #{Net::Hippie::VERSION}"
}.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(certificate: nil, headers: DEFAULT_HEADERS, key: nil, passphrase: nil, verify_mode: nil) ⇒ Client



15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/net/hippie/client.rb', line 15

def initialize(
  certificate: nil,
  headers: DEFAULT_HEADERS,
  key: nil,
  passphrase: nil,
  verify_mode: nil
)
  @certificate = certificate
  @default_headers = headers
  @key = key
  @mapper = ContentTypeMapper.new
  @passphrase = passphrase
  @verify_mode = verify_mode
end

Instance Attribute Details

#mapperObject

Returns the value of attribute mapper.



13
14
15
# File 'lib/net/hippie/client.rb', line 13

def mapper
  @mapper
end

Instance Method Details

#delete(uri, headers: {}, body: {}, &block) ⇒ Object



55
56
57
58
59
# File 'lib/net/hippie/client.rb', line 55

def delete(uri, headers: {}, body: {}, &block)
  type = Net::HTTP::Delete
  request = request_for(type, uri, headers: headers, body: body)
  execute(uri, request, &block)
end

#execute(uri, request) ⇒ Object



30
31
32
33
34
35
36
37
# File 'lib/net/hippie/client.rb', line 30

def execute(uri, request)
  response = http_for(normalize_uri(uri)).request(request)
  if block_given?
    yield request, response
  else
    response
  end
end

#get(uri, headers: {}, body: {}, &block) ⇒ Object



39
40
41
42
# File 'lib/net/hippie/client.rb', line 39

def get(uri, headers: {}, body: {}, &block)
  request = request_for(Net::HTTP::Get, uri, headers: headers, body: body)
  execute(uri, request, &block)
end

#post(uri, headers: {}, body: {}, &block) ⇒ Object



44
45
46
47
48
# File 'lib/net/hippie/client.rb', line 44

def post(uri, headers: {}, body: {}, &block)
  type = Net::HTTP::Post
  request = request_for(type, uri, headers: headers, body: body)
  execute(uri, request, &block)
end

#put(uri, headers: {}, body: {}, &block) ⇒ Object



50
51
52
53
# File 'lib/net/hippie/client.rb', line 50

def put(uri, headers: {}, body: {}, &block)
  request = request_for(Net::HTTP::Put, uri, headers: headers, body: body)
  execute(uri, request, &block)
end