class ACTV::Request::MultipartWithFile

Public Instance Methods

call(env) click to toggle source
# File lib/actv/request/multipart_with_file.rb, line 7
def call(env)
  if env[:body].is_a?(Hash)
    env[:body].each do |key, value|
      if value.is_a?(File)
        env[:body][key] = Faraday::UploadIO.new(value, mime_type(value.path), value.path)
      elsif value.is_a?(Hash) && (value[:io].is_a?(IO) || value[:io].is_a?(StringIO))
        env[:body][key] = Faraday::UploadIO.new(value[:io], mime_type('.' + value[:type]), '')
      end
    end
  end
  @app.call(env)
end

Private Instance Methods

mime_type(path) click to toggle source
# File lib/actv/request/multipart_with_file.rb, line 22
def mime_type(path)
  case path
  when /\.jpe?g/i
    'image/jpeg'
  when /\.gif$/i
    'image/gif'
  when /\.png$/i
    'image/png'
  else
    'application/octet-stream'
  end
end