Class: CFoundry::RestClient

Inherits:
Object
  • Object
show all
Includes:
ProxyOptions, TraceHelpers
Defined in:
lib/cfoundry/rest_client.rb

Defined Under Namespace

Classes: HTTPFactory

Constant Summary collapse

LOG_LENGTH =
10
HTTP_METHODS =
{
  "GET" => Net::HTTP::Get,
  "PUT" => Net::HTTP::Put,
  "POST" => Net::HTTP::Post,
  "DELETE" => Net::HTTP::Delete,
  "HEAD" => Net::HTTP::Head,
}
DEFAULT_OPTIONS =
{
  :follow_redirects => true
}

Constants included from TraceHelpers

TraceHelpers::PROTECTED_ATTRIBUTES

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from ProxyOptions

#proxy_options_for

Methods included from TraceHelpers

#request_trace, #response_trace

Constructor Details

#initialize(target, token = nil) ⇒ RestClient

Returns a new instance of RestClient.



44
45
46
47
48
49
50
# File 'lib/cfoundry/rest_client.rb', line 44

def initialize(target, token = nil)
  @target = target
  @token = token
  @trace = false
  @backtrace = false
  @log = false
end

Instance Attribute Details

#backtraceObject

Returns the value of attribute backtrace.



41
42
43
# File 'lib/cfoundry/rest_client.rb', line 41

def backtrace
  @backtrace
end

#http_proxyObject

Returns the value of attribute http_proxy.



41
42
43
# File 'lib/cfoundry/rest_client.rb', line 41

def http_proxy
  @http_proxy
end

#https_proxyObject

Returns the value of attribute https_proxy.



41
42
43
# File 'lib/cfoundry/rest_client.rb', line 41

def https_proxy
  @https_proxy
end

#logObject

Returns the value of attribute log.



41
42
43
# File 'lib/cfoundry/rest_client.rb', line 41

def log
  @log
end

#request_idObject

Returns the value of attribute request_id.



41
42
43
# File 'lib/cfoundry/rest_client.rb', line 41

def request_id
  @request_id
end

#targetObject

Returns the value of attribute target.



39
40
41
# File 'lib/cfoundry/rest_client.rb', line 39

def target
  @target
end

#tokenObject

Returns the value of attribute token.



41
42
43
# File 'lib/cfoundry/rest_client.rb', line 41

def token
  @token
end

#traceObject

Returns the value of attribute trace.



41
42
43
# File 'lib/cfoundry/rest_client.rb', line 41

def trace
  @trace
end

Instance Method Details

#generate_headers(payload, options) ⇒ Object



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# File 'lib/cfoundry/rest_client.rb', line 63

def generate_headers(payload, options)
  headers = {}

  if payload.is_a?(String)
    headers["Content-Length"] = payload.size
  elsif !payload
    headers["Content-Length"] = 0
  end

  headers["X-Request-Id"] = @request_id if @request_id
  headers["Authorization"] = @token.auth_header if @token

  if accept_type = mimetype(options[:accept])
    headers["Accept"] = accept_type
  end

  if content_type = mimetype(options[:content])
    headers["Content-Type"] = content_type
  end

  headers.merge!(options[:headers]) if options[:headers]
  headers
end

#request(method, path, options = {}) ⇒ Object



59
60
61
# File 'lib/cfoundry/rest_client.rb', line 59

def request(method, path, options = {})
  request_uri(method, construct_url(path), DEFAULT_OPTIONS.merge(options))
end