# class WEBrick::HTTPUtils::FormData

Stores multipart form data. `FormData` objects are created when `WEBrick::HTTPUtils.parse_form_data` is called.

### Attributes

filename[RW]

The filename of the form data part

name[RW]

The name of the form data part

### Public Class Methods

new(*args) click to toggle source

Creates a new `FormData` object.

`args` is an `Array` of form data entries. One `FormData` will be created for each entry.

This is called by `WEBrick::HTTPUtils.parse_form_data` for you

Calls superclass method `String::new`

    # File lib/webrick/httputils.rb, line 268
    def initialize(*args)
      @name = @filename = @next_data = nil
      if args.empty?
        @raw_header = []
        @header = nil
        super("")
      else
        @raw_header = EmptyRawHeader
        @header = EmptyHeader
        super(args.shift)
        unless args.empty?
          @next_data = self.class.new(*args)
        end
      end
    end

### Public Instance Methods

<<(str) click to toggle source

Adds `str` to this `FormData` which may be the body, a header or a header entry.

This is called by `WEBrick::HTTPUtils.parse_form_data` for you

Calls superclass method `String#<<`

    # File lib/webrick/httputils.rb, line 301
    def <<(str)
      if @header
        super
      elsif str == CRLF
        @header = HTTPUtils::parse_header(@raw_header.join)
        if cd = self['content-disposition']
          if /\s+name="(.*?)"/ =~ cd then @name = $1 end
          if /\s+filename="(.*?)"/ =~ cd then @filename = $1 end
        end
      else
        @raw_header << str
      end
      self
    end

[](*key) click to toggle source

Retrieves the header at the first entry in `key`

Calls superclass method `String#[]`

    # File lib/webrick/httputils.rb, line 287
    def [](*key)
      begin
        @header[key[0].downcase].join(", ")
      rescue StandardError, NameError
        super
      end
    end

append_data(data) click to toggle source

Adds `data` at the end of the chain of entries

This is called by `WEBrick::HTTPUtils.parse_form_data` for you.

    # File lib/webrick/httputils.rb, line 321
    def append_data(data)
      tmp = self
      while tmp
        unless tmp.next_data
          tmp.next_data = data
          break
        end
        tmp = tmp.next_data
      end
      self
    end

each_data() { |tmp| ... } click to toggle source

Yields each entry in this `FormData`

    # File lib/webrick/httputils.rb, line 336
    def each_data
      tmp = self
      while tmp
        next_data = tmp.next_data
        yield(tmp)
        tmp = next_data
      end
    end

list() click to toggle source

Returns all the `FormData` as an `Array`

    # File lib/webrick/httputils.rb, line 348
    def list
      ret = []
      each_data{|data|
        ret << data.to_s
      }
      ret
    end

Also aliased as: to_ary
to_ary()

A `FormData` will behave like an `Array`

Alias for: list
to_s() click to toggle source

This FormData's body

    # File lib/webrick/httputils.rb, line 364
    def to_s
      String.new(self)
    end