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 264
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 297
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 283
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 317
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 332
def each_data
tmp = self
while tmp
next_data = tmp.next_data
yield(tmp)
tmp = next_data
end
end
Commenting is here to help enhance the documentation. For example, sample code, or clarification of the documentation.
If you are posting code samples in your comments, please wrap them in "<pre><code class="ruby" > ... </code></pre>" markup in order to get syntax highlighting.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file a bug report so that it can be corrected for the next release. Thank you.