Class: HttpStreamingClient::Decoders::GZip::GZipBufferIO
- Inherits:
-
StringIO
- Object
- StringIO
- HttpStreamingClient::Decoders::GZip::GZipBufferIO
- Defined in:
- lib/http_streaming_client/decoders/gzip.rb
Instance Method Summary collapse
- #<<(string) ⇒ Object
-
#initialize(string = "") ⇒ GZipBufferIO
constructor
A new instance of GZipBufferIO.
- #logger ⇒ Object
-
#read(length = nil, buffer = nil) ⇒ Object
called by GzipReader.
-
#readpartial(length = nil, buffer = nil) ⇒ Object
called by GzipReader.
-
#size ⇒ Object
called by GzipReader.
Constructor Details
#initialize(string = "") ⇒ GZipBufferIO
Returns a new instance of GZipBufferIO.
130 131 132 133 134 |
# File 'lib/http_streaming_client/decoders/gzip.rb', line 130 def initialize(string="") logger.debug "GZipBufferIO:initialize" @packet_stream = string @packet_stream.force_encoding("BINARY") end |
Instance Method Details
#<<(string) ⇒ Object
136 137 138 |
# File 'lib/http_streaming_client/decoders/gzip.rb', line 136 def <<(string) @packet_stream << string end |
#logger ⇒ Object
126 127 128 |
# File 'lib/http_streaming_client/decoders/gzip.rb', line 126 def logger HttpStreamingClient.logger end |
#read(length = nil, buffer = nil) ⇒ Object
called by GzipReader
167 168 169 170 171 |
# File 'lib/http_streaming_client/decoders/gzip.rb', line 167 def read(length=nil, buffer=nil) logger.debug "GZipBufferIO:read:length:#{length}" return nil if @packet_stream.size == 0 readpartial(length, buffer) end |
#readpartial(length = nil, buffer = nil) ⇒ Object
called by GzipReader
141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 |
# File 'lib/http_streaming_client/decoders/gzip.rb', line 141 def readpartial(length=nil, buffer=nil) logger.debug "GZipBufferIO:readpartial:length:#{length}:@packet_stream:#{@packet_stream.nil? ? 'nil' : @packet_stream.size}" buffer ||= "" raise EOFError "" if @packet_stream.size == 0 length ||= @packet_stream.size # read all if a fraction is specified length = [ length, @packet_stream.size ].min # read length or @packet_stream.size, whichever is smaller #logger.debug "GZipBufferIO:readpartial:before:psize:#{@packet_stream.size}:bsize:#{buffer.size}:length:#{length}" buffer << @packet_stream[0..(length-1)] if length == @packet_stream.size then @packet_stream = "" #@packet_stream = @packet_stream.slice!(0,length) else @packet_stream = @packet_stream[length..-1] #@packet_stream = @packet_stream.slice!(0,length) end #logger.debug "GZipBufferIO:readpartial:after:psize:#{@packet_stream.size}:bsize:#{buffer.size}" buffer end |
#size ⇒ Object
called by GzipReader
174 175 176 177 |
# File 'lib/http_streaming_client/decoders/gzip.rb', line 174 def size logger.debug "GZipBufferIO:size():#{@packet_stream.size}" @packet_stream.size end |