class OpenKit::Request::PostMultipartDelegate

Public Class Methods

new(path, req_params, upload) click to toggle source
Calls superclass method OpenKit::Request::BaseDelegate::new
# File lib/openkit/request/post_multipart.rb, line 29
def initialize(path, req_params, upload)
  super(path)
  @req_params = req_params
  @upload = upload
end

Public Instance Methods

flat_names(parameters, running = '') { |name, v| ... } click to toggle source
# File lib/openkit/request/post_multipart.rb, line 51
def flat_names(parameters, running = '', &block)
  parameters.each do |k,v|
    name = (running.length == 0) ? k.to_s : running + "[#{k}]"
    if v.is_a?(Hash)
      flat_names(v, name, &block)
    else
      yield name, v
    end
  end
end
flatten_params(parameters) click to toggle source
# File lib/openkit/request/post_multipart.rb, line 43
def flatten_params(parameters)
  flattened = {}
  flat_names(parameters, '') do |name,v|
    flattened[name] = v
  end
  flattened
end
net_request() click to toggle source
# File lib/openkit/request/post_multipart.rb, line 35
def net_request
  up_io = UploadIO.new(@upload.file, "application/octet-stream", "upload")
  flat_params = flatten_params(@req_params)
  req = Net::HTTP::Post::Multipart.new(uri.request_uri, flat_params.merge(@upload.param_name => up_io))
  req['Accept'] = "application/json"
  req
end