Giter Club home page Giter Club logo

httpm's Introduction

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.

httpm's People

Contributors

3hd avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.