Skip to content
*UNMAINTAINED* HTTMultiParty is a thin wrapper around HTTParty to provide multipart uploads.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib Implemented the HTTP Patch method. Largely based on #44. Apr 9, 2015
spec Implemented the HTTP Patch method. Largely based on #44. Apr 9, 2015
.gitignore Added Rakefile and default task to run specs using bundle exec rake Feb 8, 2014
.travis.yml
Gemfile Gemfile and travis update Jan 21, 2014
Gemfile.lock Upgraded RSpec to 3.1.0 and HTTParty to 0.13.3 Dec 24, 2014
LICENSE adding MIT license Jun 5, 2012
README.md
Rakefile Rubocop is love. Dec 24, 2014
httmultiparty.gemspec Rubocop is love. Dec 24, 2014

README.md

Build Status

Gem Version

Code Climate

Description

HTTMultiParty is a thin wrapper around HTTParty to provide multipart uploads.

Requirements

  • httparty
  • multipart-post
  • mimemagic

Quick Start and Example

To start just include HTTMultiParty instead of include HTTParty into your client class. When you pass a query with an instance of a File as a value for a PUT or POST request, the wrapper will use a bit of magic and multipart-post to execute a multipart upload:

require 'httmultiparty'
class SomeClient
  include HTTMultiParty
  base_uri 'http://localhost:3000'
end

response = SomeClient.post('/', :query => {
  :foo      => 'bar',
  :somefile => File.new('README.md')
})

Aside from that it provides all the usual HTTParty gimmicks.

MIME type support

If you want the library to detect the MIME types of the uploaded files, then you need to enable it by supplying the :detect_mime_type option as true for POST or PUT requests. Otherwise, they will be uploaded with the default MIME type of application/octet-stream. For example:

require 'httmultiparty'
class SomeClient
  include HTTMultiParty
  base_uri 'http://localhost:3000'
end

response = SomeClient.post('/', :query => {
  :foo      => 'bar',
  :somefile => File.new('README.md')
}, :detect_mime_type => true)

File class support

Instead of using File class, you can use any class that responds to a read method as a file object. If you are using Rails, you can use ActionDispatch::Http::UploadedFile object directly as it responds to read method. The read method should act similar to the IO#read method. To set the filename your file class can optionally respond to the original_filename method, which should return a String.

You can’t perform that action at this time.