Class: HTTP::FormData::Multipart::Param

### Home Classes Methods

### In Files

- lib/http/form_data/multipart/param.rb

### Parent

Object

### Methods

- ::coerce
- ::new
- #size
- #to_s

### 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::Multipart::Param

Utility class to represent multi-part chunks

### Public Class Methods

coerce(data) click to toggle source

Flattens given `data` Hash into an array of `Param`'s. Nested array are unwinded. Behavior is similar to `URL.encode_www_form`.

@param [Hash] data @return [Array<FormData::MultiPart::Param>]

    # File lib/http/form_data/multipart/param.rb, line 59
    def self.coerce(data)
      params = []

      data.each do |name, values|
        Array(values).each do |value|
          params << new(name, value)
        end
      end

      params
    end

new(name, value) click to toggle source

@param [to_s] name @param [FormData::File, to_s] value

    # File lib/http/form_data/multipart/param.rb, line 8
    def initialize(name, value)
      @name, @value = name.to_s, value

      @header = "Content-Disposition: form-data; name=#{@name.inspect}"

      return unless file?

      @header << "; filename=#{value.filename.inspect}"
      @header << CRLF
      @header << "Content-Type: #{value.mime_type}"
    end

### Public Instance Methods

size() click to toggle source

Calculates size of a part (headers + body).

@return [Fixnum]

    # File lib/http/form_data/multipart/param.rb, line 43
    def size
      size = @header.bytesize + (CRLF.bytesize * 2)

      if file?
        size + @value.size
      else
        size + @value.to_s.bytesize
      end
    end

to_s() click to toggle source

Returns body part with headers and data.

@example With {FormData::File} value

    Content-Disposition: form-data; name="avatar"; filename="avatar.png"
    Content-Type: application/octet-stream

    ...data of avatar.png...

@example With non-{FormData::File} value

    Content-Disposition: form-data; name="username"

    ixti

@return [String]

    # File lib/http/form_data/multipart/param.rb, line 36
    def to_s
      "#{@header}#{CRLF * 2}#{@value}"
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.