In Files

  • pp.rb


Public Instance Methods

pretty_print(q) click to toggle source

A default pretty printing method for general objects. It calls pretty_print_instance_variables to list instance variables.

If self has a customized (redefined) inspect method, the result of self.inspect is used but it obviously has no line break hints.

This module provides predefined pretty_print methods for some of the most commonly used built-in classes for convenience.

               # File pp.rb, line 257
def pretty_print(q)
  if /\(Kernel\)#/ !~ method(:inspect).inspect
    q.text self.inspect
  elsif /\(Kernel\)#/ !~ method(:to_s).inspect && instance_variables.empty?
    q.text self.to_s
pretty_print_cycle(q) click to toggle source

A default pretty printing method for general objects that are detected as part of a cycle.

               # File pp.rb, line 269
def pretty_print_cycle(q)
  q.object_address_group(self) {
    q.text '...'
pretty_print_inspect() click to toggle source

Is inspect implementation using pretty_print. If you implement pretty_print, it can be used as follows.

alias inspect pretty_print_inspect

However, doing this requires that every class that inspect is called on implement pretty_print, or a RuntimeError will be raised.

               # File pp.rb, line 291
def pretty_print_inspect
  if /\(PP::ObjectMixin\)#/ =~ method(:pretty_print).inspect
    raise "pretty_print is not overridden for #{self.class}"
  PP.singleline_pp(self, '')
pretty_print_instance_variables() click to toggle source

Returns a sorted array of instance variable names.

This method should return an array of names of instance variables as symbols or strings as: +[:@a, :@b]+.

               # File pp.rb, line 280
def pretty_print_instance_variables

Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.

If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.

If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.

If you want to help improve the Ruby documentation, please visit