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

Version Path
actv-2.10.9 lib/actv/request/multipart_with_file.rb
actv-2.10.8 lib/actv/request/multipart_with_file.rb
actv-2.10.7 lib/actv/request/multipart_with_file.rb
actv-2.10.6 lib/actv/request/multipart_with_file.rb
actv-2.10.5 lib/actv/request/multipart_with_file.rb
actv-2.10.4 lib/actv/request/multipart_with_file.rb
actv-2.10.3 lib/actv/request/multipart_with_file.rb
actv-2.10.2 lib/actv/request/multipart_with_file.rb
actv-2.10.1 lib/actv/request/multipart_with_file.rb
actv-2.10.0 lib/actv/request/multipart_with_file.rb
actv-2.9.2 lib/actv/request/multipart_with_file.rb
actv-2.9.1 lib/actv/request/multipart_with_file.rb
actv-2.9.0 lib/actv/request/multipart_with_file.rb
actv-2.8.2 lib/actv/request/multipart_with_file.rb
actv-2.8.1 lib/actv/request/multipart_with_file.rb
actv-2.7.0 lib/actv/request/multipart_with_file.rb
actv-2.6.0 lib/actv/request/multipart_with_file.rb
actv-2.5.2 lib/actv/request/multipart_with_file.rb
actv-2.5.1 lib/actv/request/multipart_with_file.rb
actv-2.5.0 lib/actv/request/multipart_with_file.rb