module FileUtils

Public Class Methods

tail(file_name, lines = 10, sep = $/) click to toggle source
def self.tail(file_name, lines = 10, sep = $/)
        file = File.open(file_name, 'r')
        string = ""
        pos = -1
        n = 0
        size = file.stat.size

# return string if size == 0

        while size > 0
                file.sysseek(pos, IO::SEEK_END)
                char = file.sysread(1)
                n+= 1 if char == sep  
                break if n == lines + 1
                string = char + string
                break if pos == - size 
                pos -= 1
        end
        file.close
        return string
end
# File lib/rubyhacks.rb, line 824
        def self.tail(file_name, lines = 10, sep = $/)
                if lines > 49 and sep == "\n" # The command line utility will be much faster
                        begin
                                return `tail -n #{lines} #{file_name}`  
                        rescue => err #in case the command tail can't be found
#                               puts err
                        end
                end
                file = File.open(file_name, 'r')
                string = ""
                pos = -1
                n = 0
                size = file.stat.size
                while size > 0
                        file.sysseek(size + pos)
                        char = file.sysread(1)
                        n+= 1 if char == sep and not pos == -1  
                        break if n == lines 
                        string = char + string
                        break if pos == - size 
                        pos -= 1
                end
                file.close
                return string
        end