String
Stores multipart form data. FormData objects are created when WEBrick::HTTPUtils.parse_form_data is called.
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
# File webrick/httputils.rb, line 266
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
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
# File webrick/httputils.rb, line 299
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
Retrieves the header at the first entry in key
# File webrick/httputils.rb, line 285
def [](*key)
begin
@header[key[0].downcase].join(", ")
rescue StandardError, NameError
super
end
end
Adds data at the end of the chain of entries
This is called by WEBrick::HTTPUtils.parse_form_data for you.
# File webrick/httputils.rb, line 319
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
Yields each entry in this FormData
# File webrick/httputils.rb, line 334
def each_data
tmp = self
while tmp
next_data = tmp.next_data
yield(tmp)
tmp = next_data
end
end