Flowdock
pretty_print(q) public

No documentation

This method has no description. You can help the Ruby community by adding new notes.

Hide source
# File lib/pp.rb, line 421
    def pretty_print(q) # :nodoc:
      require 'etc.so'
      q.object_group(self) {
        q.breakable
        q.text sprintf("dev=0x%x", self.dev); q.comma_breakable
        q.text "ino="; q.pp self.ino; q.comma_breakable
        q.group {
          m = self.mode
          q.text sprintf("mode=0%o", m)
          q.breakable
          q.text sprintf("(%s %c%c%c%c%c%c%c%c%c)",
            self.ftype,
            (m & 0400 == 0 ? -- : rr),
            (m & 0200 == 0 ? -- : ww),
            (m & 0100 == 0 ? (m & 04000 == 0 ? -- : SS) :
                             (m & 04000 == 0 ? xx : ss)),
            (m & 0040 == 0 ? -- : rr),
            (m & 0020 == 0 ? -- : ww),
            (m & 0010 == 0 ? (m & 02000 == 0 ? -- : SS) :
                             (m & 02000 == 0 ? xx : ss)),
            (m & 0004 == 0 ? -- : rr),
            (m & 0002 == 0 ? -- : ww),
            (m & 0001 == 0 ? (m & 01000 == 0 ? -- : TT) :
                             (m & 01000 == 0 ? xx : tt)))
        }
        q.comma_breakable
        q.text "nlink="; q.pp self.nlink; q.comma_breakable
        q.group {
          q.text "uid="; q.pp self.uid
          begin
            pw = Etc.getpwuid(self.uid)
          rescue ArgumentError
          end
          if pw
            q.breakable; q.text "(#{pw.name})"
          end
        }
        q.comma_breakable
        q.group {
          q.text "gid="; q.pp self.gid
          begin
            gr = Etc.getgrgid(self.gid)
          rescue ArgumentError
          end
          if gr
            q.breakable; q.text "(#{gr.name})"
          end
        }
        q.comma_breakable
        q.group {
          q.text sprintf("rdev=0x%x", self.rdev)
          q.breakable
          q.text sprintf('(%d, %d)', self.rdev_major, self.rdev_minor)
        }
        q.comma_breakable
        q.text "size="; q.pp self.size; q.comma_breakable
        q.text "blksize="; q.pp self.blksize; q.comma_breakable
        q.text "blocks="; q.pp self.blocks; q.comma_breakable
        q.group {
          t = self.atime
          q.text "atime="; q.pp t
          q.breakable; q.text "(#{t.tv_sec})"
        }
        q.comma_breakable
        q.group {
          t = self.mtime
          q.text "mtime="; q.pp t
          q.breakable; q.text "(#{t.tv_sec})"
        }
        q.comma_breakable
        q.group {
          t = self.ctime
          q.text "ctime="; q.pp t
          q.breakable; q.text "(#{t.tv_sec})"
        }
      }
    end
Register or log in to add new notes.