Class: HTTP::Post

Inherits:
Object
  • Object
show all
Defined in:
lib/support/multipart_hack.rb

Instance Method Summary collapse

Instance Method Details

#multipart_params=(param_hash = {}) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/support/multipart_hack.rb', line 13

def multipart_params=(param_hash={})
  boundary_token = [Array.new(8) {rand(256)}].join
  self.content_type = "multipart/form-data; boundary=#{boundary_token}"
  boundary_marker = "--#{boundary_token}\r\n"
  self.body = param_hash.inject('') do |memo, (param_name, param_value)|
    memo << boundary_marker
    case param_value
    when File
      file_to_multipart(memo, param_name, param_value)
    else
      memo << text_to_multipart(param_name, param_value.to_s)
    end
  end << "--#{boundary_token}--\r\n"
end