class Stark::Rack::Metadata::RewindableInput
Public Class Methods
new(io)
click to toggle source
# File lib/stark/rack/metadata.rb, line 59 def initialize(io) @io = io @buffered = StringIO.new end
Public Instance Methods
read(n)
click to toggle source
# File lib/stark/rack/metadata.rb, line 64 def read(n) if @io @io.read(n).tap do |s| if s @buffered.write s else @io.close @io = nil end end else @buffered.read(n) end end
rewind()
click to toggle source
# File lib/stark/rack/metadata.rb, line 79 def rewind if @io @io = CompositeReadIO.new([StringIO.new(@buffered.string), @io]) @buffered = StringIO.new else @buffered.rewind end end