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