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

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

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.


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

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.


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

def http_method
  @http_method
end

Instance Method Details

#bodyIO

Returns:

  • (IO)

46
47
48
# File 'lib/seahorse/client/http/request.rb', line 46

def body
  @body
end

#body=(io) ⇒ Object

Parameters:

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

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

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)

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

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

#endpointURI::HTTP, ...

Returns:

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

29
30
31
# File 'lib/seahorse/client/http/request.rb', line 29

def endpoint
  @endpoint
end

#endpoint=(endpoint) ⇒ Object

Parameters:

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

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

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, '\
          "got #{endpoint.inspect}"
    raise ArgumentError, msg
  end
end