Class File::Stat
In: pp.rb
Parent: Object

Methods

Public Instance methods

[Source]

     # File pp.rb, line 348
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

Search

Google

Ruby API Docs

Links