# File lib/aws/s3/cipher_io.rb, line 20 def initialize cipher, stream, stream_size = nil @stream = stream @stream_size = stream_size @orig_cipher = cipher.clone reset_cipher # add a #rewind method if the original stream can be rewound if @stream.respond_to?(:rewind) Core::MetaUtils.extend_method(self, :rewind) do reset_cipher @stream.rewind end end # add a #size method if the stream size is known if stream_size Core::MetaUtils.extend_method(self, :size) do EncryptionUtils.get_encrypted_size(@stream_size) end end end