| Class | WEBrick::HTTPUtils::FormData |
| In: |
lib/webrick/httputils.rb
|
| Parent: | String |
| EmptyRawHeader | = | [].freeze |
| EmptyHeader | = | {}.freeze |
| filename | [RW] | |
| name | [RW] | |
| next_data | [RW] |
# File lib/webrick/httputils.rb, line 210
210: def initialize(*args)
211: @name = @filename = @next_data = nil
212: if args.empty?
213: @raw_header = []
214: @header = nil
215: super("")
216: else
217: @raw_header = EmptyRawHeader
218: @header = EmptyHeader
219: super(args.shift)
220: unless args.empty?
221: @next_data = self.class.new(*args)
222: end
223: end
224: end
# File lib/webrick/httputils.rb, line 234
234: def <<(str)
235: if @header
236: super
237: elsif str == CRLF
238: @header = HTTPUtils::parse_header(@raw_header)
239: if cd = self['content-disposition']
240: if /\s+name="(.*?)"/ =~ cd then @name = $1 end
241: if /\s+filename="(.*?)"/ =~ cd then @filename = $1 end
242: end
243: else
244: @raw_header << str
245: end
246: self
247: end
# File lib/webrick/httputils.rb, line 226
226: def [](*key)
227: begin
228: @header[key[0].downcase].join(", ")
229: rescue StandardError, NameError
230: super
231: end
232: end
# File lib/webrick/httputils.rb, line 249
249: def append_data(data)
250: tmp = self
251: while tmp
252: unless tmp.next_data
253: tmp.next_data = data
254: break
255: end
256: tmp = tmp.next_data
257: end
258: self
259: end
# File lib/webrick/httputils.rb, line 261
261: def each_data
262: tmp = self
263: while tmp
264: next_data = tmp.next_data
265: yield(tmp)
266: tmp = next_data
267: end
268: end