Class: Seahorse::Client::Http::Request

Inherits:
Object
  • Object
show all
Defined in:
lib/seahorse/client/http/request.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Request

Returns a new instance of Request.

Parameters:

  • options (Hash) (defaults to: {})

    a customizable set of options

Options Hash (options):

  • :endpoint (URI::HTTP, URI::HTTPS) — default: nil
  • :http_method (String) — default: 'GET'
  • :headers (Headers) — default: Headers.new
  • :body (Body) — default: StringIO.new


13
14
15
16
17
18
# File 'lib/seahorse/client/http/request.rb', line 13

def initialize(options = {})
  self.endpoint = options[:endpoint]
  self.http_method = options[:http_method] || 'GET'
  self.headers = Headers.new(options[:headers] || {})
  self.body = options[:body]
end

Instance Attribute Details

#headersHeaders

Returns The hash of request headers.

Returns:

  • (Headers)

    The hash of request headers.



24
25
26
# File 'lib/seahorse/client/http/request.rb', line 24

def headers
  @headers
end

#http_methodString

Returns The HTTP request method, e.g. ‘GET`, `PUT`, etc.

Returns:

  • (String)

    The HTTP request method, e.g. ‘GET`, `PUT`, etc.



21
22
23
# File 'lib/seahorse/client/http/request.rb', line 21

def http_method
  @http_method
end

Instance Method Details

#bodyIO

Returns:

  • (IO)


44
45
46
# File 'lib/seahorse/client/http/request.rb', line 44

def body
  @body
end

#body=(io) ⇒ Object

Parameters:

  • io (#read, #size, #rewind)


57
58
59
60
61
62
63
# File 'lib/seahorse/client/http/request.rb', line 57

def body=(io)
  @body =case io
    when nil then StringIO.new('')
    when String then StringIO.new(io)
    else io
  end
end

#body_contentsString

Returns:

  • (String)


49
50
51
52
53
54
# File 'lib/seahorse/client/http/request.rb', line 49

def body_contents
  body.rewind
  contents = body.read
  body.rewind
  contents
end

#endpointURI::HTTP, ...

Returns:

  • (URI::HTTP, URI::HTTPS, nil)


27
28
29
# File 'lib/seahorse/client/http/request.rb', line 27

def endpoint
  @endpoint
end

#endpoint=(endpoint) ⇒ Object

Parameters:

  • endpoint (String, URI::HTTP, URI::HTTPS, nil)


32
33
34
35
36
37
38
39
40
41
# File 'lib/seahorse/client/http/request.rb', line 32

def endpoint=(endpoint)
  endpoint = URI.parse(endpoint) if endpoint.is_a?(String)
  if endpoint.nil? or URI::HTTP === endpoint or URI::HTTPS === endpoint
    @endpoint = endpoint
  else
    msg = "invalid endpoint, expected URI::HTTP, URI::HTTPS, or nil, "
    msg << "got #{endpoint.inspect}"
    raise ArgumentError, msg
  end
end