Sha256: 1a7ed82c763c30dc08a53aae1854898c1abe2ef8ad9281b46b2fbdbaa586ca42
Contents?: true
Size: 878 Bytes
Versions: 50
Compression:
Stored size: 878 Bytes
Contents
require 'faraday' module ACTV module Request class MultipartWithFile < Faraday::Middleware 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 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 end end end
Version data entries
50 entries across 50 versions & 1 rubygems