class HTTP::Features::AutoDeflate::CompressedBody
Public Class Methods
Source
# File lib/http/features/auto_deflate.rb, line 52 def initialize(uncompressed_body) @body = uncompressed_body @compressed = nil end
Public Instance Methods
Source
# File lib/http/features/auto_deflate.rb, line 62 def each(&block) return to_enum __method__ unless block if @compressed compressed_each(&block) else compress(&block) end self end
Source
# File lib/http/features/auto_deflate.rb, line 57 def size compress_all! unless @compressed @compressed.size end
Private Instance Methods
Source
# File lib/http/features/auto_deflate.rb, line 84 def compress_all! @compressed = Tempfile.new("http-compressed_body", :binmode => true) compress { |data| @compressed.write(data) } @compressed.rewind end
Source
# File lib/http/features/auto_deflate.rb, line 76 def compressed_each while (data = @compressed.read(Connection::BUFFER_SIZE)) yield data end ensure @compressed.close! end