Module: HTTP::FormData

### Home Classes Methods

### In Files

- lib/http/form_data.rb
- lib/http/form_data/file.rb
- lib/http/form_data/multipart.rb
- lib/http/form_data/multipart/param.rb
- lib/http/form_data/urlencoded.rb
- lib/http/form_data/version.rb

### Namespace

- CLASS HTTP::FormData::Error
- CLASS HTTP::FormData::File
- CLASS HTTP::FormData::Multipart
- CLASS HTTP::FormData::Urlencoded

### Methods

- ::create
- ::ensure_hash

### Class/Module Index

Quicksearch

- HTTP
- HTTP::FormData
- HTTP::FormData::Error
- HTTP::FormData::File
- HTTP::FormData::Multipart
- HTTP::FormData::Multipart::Param
- HTTP::FormData::Urlencoded

No matching classes.

# HTTP::FormData

Utility-belt to build form data request bodies. Provides support for `application/x-www-form-urlencoded` and `multipart/form-data` types.

@example Usage

    form = FormData.create({
      :username     => "ixti",
      :avatar_file  => FormData::File.new("/home/ixti/avatar.png")
    })

    # Assuming socket is an open socket to some HTTP server
    socket << "POST /some-url HTTP/1.1\r\n"
    socket << "Host: example.com\r\n"
    socket << "Content-Type: #{form.content_type}\r\n"
    socket << "Content-Length: #{form.content_length}\r\n"
    socket << "\r\n"
    socket << form.to_s

### Constants

CRLF

  CRLF

VERSION

  Gem version.

### Public Class Methods

create(data) click to toggle source

FormData factory. Automatically selects best type depending on given `data` Hash.

@param [to_h, Hash] data @return [Multipart] if any of values is a {FormData::File} @return [Urlencoded] otherwise

    # File lib/http/form_data.rb, line 41
    def create(data)
      data  = ensure_hash data
      klass = multipart?(data) ? Multipart : Urlencoded

      klass.new data
    end

ensure_hash(obj) click to toggle source

Coerce `obj` to Hash.

@note Internal usage helper, to workaround lack of `to_h` on Ruby < 2.1 @raise [Error] `obj` can't be coerced. @return [Hash]

    # File lib/http/form_data.rb, line 53
    def ensure_hash(obj)
      case
      when obj.nil?               then {}
      when obj.is_a?(Hash)        then obj
      when obj.respond_to?(:to_h) then obj.to_h
      else fail Error, "#{obj.inspect} is neither Hash nor responds to :to_h"
      end
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.