U:RDoc::NormalClass[iI"RewindableInput:EFI"Rack::RewindableInput;FI" Object;To:RDoc::Markup::Document: @parts[o;;[ o:RDoc::Markup::Paragraph;[I"[Class which can make any IO object rewindable, including non-rewindable ones. It does ;TI"Ethis by buffering the data into a tempfile, which is rewindable.;To:RDoc::Markup::BlankLineo; ;[I"[rack.input is required to be rewindable, so if your input stream IO is non-rewindable ;TI"Yby nature (e.g. a pipe or a socket) then you can wrap it in an object of this class ;TI""to easily make it rewindable.;T@o; ;[I"ZDon't forget to call #close when you're done. This frees up temporary resources that ;TI"MRewindableInput uses, though it does *not* close the original IO object.;T: @fileI"!lib/rack/rewindable_input.rb;T:0@omit_headings_from_table_of_contents_below0; 0; 0[[[[[I" class;T[[: public[[I"new;TI"!lib/rack/rewindable_input.rb;T[:protected[[: private[[I" instance;T[[; [ [I" close;F@([I" each;F@([I" gets;F@([I" read;F@([I" rewind;F@([;[[;[[I"$filesystem_has_posix_semantics?;F@([I"make_rewindable;F@([[U:RDoc::Context::Section[i0o;;[; 0; 0[@I" Rack;FcRDoc::NormalModule