class AmazingPrint::Formatters::GetChildItem
def initialize(fname)
def initialize(fname) @fname = fname @stat = File.send(File.symlink?(@fname) ? :lstat : :stat, @fname) @attrs = Kernel32::GetFileAttributesA @fname end
def last_write_time
def last_write_time @stat.mtime.strftime '%Y-%m-%d %H:%M' end
def length
def length @stat.file? ? @stat.size.to_s : '' end
def mode
def mode r = ['-'] * 6 r[0] = 'd' if @stat.directory? r[1] = 'a' unless (@attrs & FILE_ATTRIBUTE_ARCHIVE).zero? r[2] = 'r' unless (@attrs & FILE_ATTRIBUTE_READONLY).zero? r[3] = 'h' unless (@attrs & FILE_ATTRIBUTE_HIDDEN).zero? r[4] = 's' unless (@attrs & FILE_ATTRIBUTE_SYSTEM).zero? r[5] = 'l' if File.symlink? @fname r.join end
def name
def name @fname end
def to_s
def to_s format '%-12<Mode>s %<LastWriteTime>s %14<Length>s %<Name>s', { Mode: mode, LastWriteTime: last_write_time, Length: length, Name: name } end