class ReadBackwardFile
Attributes
chunk_size[R]
file[R]
Public Class Methods
new(file, chunk_size = 512)
click to toggle source
Create a ReadBackwardFile
@param [File] file
the file to read backward from
@param [Integer] chunk_size
the chunk size used to step through the file backwards
@api public
# File lib/tty/file/read_backward_file.rb, line 15 def initialize(file, chunk_size = 512) @file = file @chunk_size = chunk_size @file_size = ::File.stat(file).size end
Public Instance Methods
each_chunk() { |chunk| ... }
click to toggle source
Read file in chunks
@yield [String]
the chunk from file content
@api public
# File lib/tty/file/read_backward_file.rb, line 27 def each_chunk file.seek(0, IO::SEEK_END) while file.tell > 0 if file.tell < @chunk_size # don't read beyond file size @chunk_size = file.tell end file.seek(-@chunk_size, IO::SEEK_CUR) chunk = file.read(@chunk_size) yield(chunk) file.seek(-@chunk_size, IO::SEEK_CUR) end end