Sha256: ac3995499577e47b5d62e9429c6f0cdfb0809cc1c7c68d1cd0ddb94386eab4cd
Contents?: true
Size: 927 Bytes
Versions: 2
Compression:
Stored size: 927 Bytes
Contents
require 'faraday' module Twitter module Request class MultipartWithFile < Faraday::Middleware CONTENT_TYPE = 'Content-Type'.freeze class << self attr_accessor :mime_type end self.mime_type = 'multipart/form-data'.freeze def call(env) if env[:body].is_a?(Hash) env[:body].each do |key, value| if value.respond_to?(:to_io) env[:body][key] = Faraday::UploadIO.new(value, mime_type(value.path), value.path) env[:request_headers][CONTENT_TYPE] = self.class.mime_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
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
twitter-4.1.0 | lib/twitter/request/multipart_with_file.rb |
twitter-4.0.0 | lib/twitter/request/multipart_with_file.rb |