class Rack::Multipart::Parser::Collector
Public Class Methods
new(tempfile)
click to toggle source
# File lib/rack/multipart/parser.rb, line 121 def initialize tempfile @tempfile = tempfile @mime_parts = [] @open_files = 0 end
Public Instance Methods
each() { |part| ... }
click to toggle source
# File lib/rack/multipart/parser.rb, line 127 def each @mime_parts.each { |part| yield part } end
on_mime_body(mime_index, content)
click to toggle source
# File lib/rack/multipart/parser.rb, line 146 def on_mime_body mime_index, content @mime_parts[mime_index].body << content end
on_mime_finish(mime_index)
click to toggle source
# File lib/rack/multipart/parser.rb, line 150 def on_mime_finish mime_index end
on_mime_head(mime_index, head, filename, content_type, name)
click to toggle source
# File lib/rack/multipart/parser.rb, line 131 def on_mime_head mime_index, head, filename, content_type, name if filename body = @tempfile.call(filename, content_type) body.binmode if body.respond_to?(:binmode) klass = TempfilePart @open_files += 1 else body = ''.force_encoding(Encoding::ASCII_8BIT) klass = BufferPart end @mime_parts[mime_index] = klass.new(body, head, filename, content_type, name) check_open_files end
Private Instance Methods
check_open_files()
click to toggle source
# File lib/rack/multipart/parser.rb, line 155 def check_open_files if Utils.multipart_part_limit > 0 if @open_files >= Utils.multipart_part_limit @mime_parts.each(&:close) raise MultipartPartLimitError, 'Maximum file multiparts in content reached' end end end