A File part
# File lib/chef-api/multipart.rb, line 113 def initialize(name, file) @file = file @head = build(name, file) @foot = "\r\n" end
# File lib/chef-api/multipart.rb, line 119 def io @io ||= MultiIO.new( StringIO.new(@head), @file, StringIO.new(@foot) ) end
# File lib/chef-api/multipart.rb, line 127 def size @head.bytesize + @file.size + @foot.bytesize end
# File lib/chef-api/multipart.rb, line 133 def build(name, file) filename = File.basename(file.path) mime_type = MIME::Types.type_for(filename)[0] || MIME::Types['application/octet-stream'][0] part = %Q--#{BOUNDARY}\r\n| part << %QContent-Disposition: form-data; name="#{CGI.escape(name)}"; filename="#{filename}"\r\n| part << %QContent-Length: #{file.size}\r\n| part << %QContent-Type: #{mime_type.simplified}\r\n| part << %QContent-Transfer-Encoding: binary\r\n| part << %Q\r\n| part end