Module: Docker::Multipart

Includes:
Error
Included in:
Image, Image
Defined in:
lib/docker/multipart.rb

Overview

This Mixin provides the ability to do multipart post requests.

Instance Method Summary collapse

Instance Method Details

#build_multipart_post(path, *io_opts_list) ⇒ Object



16
17
18
19
20
21
22
23
24
# File 'lib/docker/multipart.rb', line 16

def build_multipart_post(path, *io_opts_list)
  options = Hash[io_opts_list.map { |opts|
    [
      opts[:name],
      UploadIO.new(opts[:io], opts[:content_type], opts[:file_name])
    ]
  }]
  Net::HTTP::Post::Multipart.new(path, options)
end

#multipart_request(connection, request) ⇒ Object

Given a path, resource name, io, and Connection sends a multipart request.



6
7
8
9
10
11
12
13
14
# File 'lib/docker/multipart.rb', line 6

def multipart_request(connection, request)
  host, port = host_and_port(connection)
  res = Net::HTTP.start(host, port) { |http| http.request(request) }
  if (200..204).include?(res.code.to_i)
    res.body
  else
    raise UnexpectedResponseError, "Got status #{res.code}"
  end
end