class Rack::RewindableInput
Класс, позволяющий перематывать любой объект IO, в том числе неперематываемые. Для этого данные буферизуются во временный файл, который можно перематывать.
Не забудьте вызвать close, когда закончите. Это освободит временные ресурсы, используемые RewindableInput, но не закроет исходный объект IO.
Открытые методы класса
# File lib/rack/rewindable_input.rb, line 31 def initialize(io) @io = io @rewindable_io = nil @unlinked = false end
Открытые методы экземпляра
# File lib/rack/rewindable_input.rb, line 67
def close
if @rewindable_io
if @unlinked
@rewindable_io.close
else
@rewindable_io.close!
end
@rewindable_io = nil
end
end Закрывает этот объект RewindableInput, не закрывая исходный обёрнутый объект IO. Освобождает временные ресурсы, созданные этим объектом RewindableInput.
Этот метод можно вызывать несколько раз. При последующих вызовах он ничего не делает.
# File lib/rack/rewindable_input.rb, line 47 def each(&block) make_rewindable unless @rewindable_io @rewindable_io.each(&block) end
# File lib/rack/rewindable_input.rb, line 37 def gets make_rewindable unless @rewindable_io @rewindable_io.gets end
# File lib/rack/rewindable_input.rb, line 42 def read(*args) make_rewindable unless @rewindable_io @rewindable_io.read(*args) end
# File lib/rack/rewindable_input.rb, line 52 def rewind make_rewindable unless @rewindable_io @rewindable_io.rewind end
# File lib/rack/rewindable_input.rb, line 57 def size make_rewindable unless @rewindable_io @rewindable_io.size end
© 2007-2021 Leah Neukirchen
Licensed under the MIT License.