Module: Ethon::Easy::Http::Putable

Defined in:
lib/docspring/ethon_multipart_put_fix.rb

Instance Method Summary collapse

Instance Method Details

#set_form(easy) ⇒ Object

Override set_form to handle multipart forms like POST does



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/docspring/ethon_multipart_put_fix.rb', line 15

def set_form(easy)
  easy.url ||= url
  form.params_encoding = params_encoding
  if form.multipart?
    # Use httppost for multipart forms (like POST does)
    form.escape = false
    form.materialize
    easy.httppost = form.first.read_pointer
    # Override libcurl's default POST method when using httppost
    easy.customrequest = 'PUT'
  else
    # Keep existing behavior for non-multipart forms
    easy.upload = true
    form.escape = true
    easy.infilesize = form.to_s.bytesize
    easy.set_read_callback(form.to_s)
  end
end