348: def pretty_print(q)
349: require 'etc.so'
350: q.object_group(self) {
351: q.breakable
352: q.text sprintf("dev=0x%x", self.dev); q.comma_breakable
353: q.text "ino="; q.pp self.ino; q.comma_breakable
354: q.group {
355: m = self.mode
356: q.text sprintf("mode=0%o", m)
357: q.breakable
358: q.text sprintf("(%s %c%c%c%c%c%c%c%c%c)",
359: self.ftype,
360: (m & 0400 == 0 ? ?- : ?r),
361: (m & 0200 == 0 ? ?- : ?w),
362: (m & 0100 == 0 ? (m & 04000 == 0 ? ?- : ?S) :
363: (m & 04000 == 0 ? ?x : ?s)),
364: (m & 0040 == 0 ? ?- : ?r),
365: (m & 0020 == 0 ? ?- : ?w),
366: (m & 0010 == 0 ? (m & 02000 == 0 ? ?- : ?S) :
367: (m & 02000 == 0 ? ?x : ?s)),
368: (m & 0004 == 0 ? ?- : ?r),
369: (m & 0002 == 0 ? ?- : ?w),
370: (m & 0001 == 0 ? (m & 01000 == 0 ? ?- : ?T) :
371: (m & 01000 == 0 ? ?x : ?t)))
372: }
373: q.comma_breakable
374: q.text "nlink="; q.pp self.nlink; q.comma_breakable
375: q.group {
376: q.text "uid="; q.pp self.uid
377: begin
378: pw = Etc.getpwuid(self.uid)
379: rescue ArgumentError
380: end
381: if pw
382: q.breakable; q.text "(#{pw.name})"
383: end
384: }
385: q.comma_breakable
386: q.group {
387: q.text "gid="; q.pp self.gid
388: begin
389: gr = Etc.getgrgid(self.gid)
390: rescue ArgumentError
391: end
392: if gr
393: q.breakable; q.text "(#{gr.name})"
394: end
395: }
396: q.comma_breakable
397: q.group {
398: q.text sprintf("rdev=0x%x", self.rdev)
399: q.breakable
400: q.text sprintf('(%d, %d)', self.rdev_major, self.rdev_minor)
401: }
402: q.comma_breakable
403: q.text "size="; q.pp self.size; q.comma_breakable
404: q.text "blksize="; q.pp self.blksize; q.comma_breakable
405: q.text "blocks="; q.pp self.blocks; q.comma_breakable
406: q.group {
407: t = self.atime
408: q.text "atime="; q.pp t
409: q.breakable; q.text "(#{t.tv_sec})"
410: }
411: q.comma_breakable
412: q.group {
413: t = self.mtime
414: q.text "mtime="; q.pp t
415: q.breakable; q.text "(#{t.tv_sec})"
416: }
417: q.comma_breakable
418: q.group {
419: t = self.ctime
420: q.text "ctime="; q.pp t
421: q.breakable; q.text "(#{t.tv_sec})"
422: }
423: }
424: end