Class: PP
Overview
A pretty-printer for Ruby objects.
== What PP Does
Standard output by #p returns this:
  #
Pretty-printed output returns this:
  #
== Usage
pp(obj) #=> obj pp obj #=> obj pp(obj1, obj2, ...) #=> [obj1, obj2, ...] pp() #=> nil
Output obj(s) to $> in pretty printed format.
It returns obj(s).
== Output Customization
To define a customized pretty printing function for your classes,
redefine method #pretty_print(pp) in the class.
#pretty_print takes the +pp+ argument, which is an instance of the PP class.
The method uses #text, #breakable, #nest, #group and #pp to print the
object.
== Pretty-Print JSON
To pretty-print JSON refer to JSON#pretty_generate.
== Author Tanaka Akira [email protected]
Defined Under Namespace
Modules: ObjectMixin, PPMethods Classes: SingleLine
Class Attribute Summary collapse
- 
  
    
      .sharing_detection  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the sharing detection flag as a boolean value. 
Attributes inherited from PrettyPrint
#genspace, #group_queue, #indent, #maxwidth, #newline, #output
Class Method Summary collapse
- 
  
    
      .mcall(obj, mod, meth, *args, &block)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    :stopdoc:. 
- 
  
    
      .pp(obj, out = $stdout, width = 79)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Outputs +obj+ to +out+ in pretty printed format of +width+ columns in width. 
- 
  
    
      .singleline_pp(obj, out = $stdout)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Outputs +obj+ to +out+ like PP.pp but with no indent and newline. 
Methods included from PPMethods
#check_inspect_key, #comma_breakable, #guard_inspect_key, #object_address_group, #object_group, #pop_inspect_key, #pp, #pp_hash, #pp_object, #push_inspect_key, #seplist
Methods inherited from PrettyPrint
#break_outmost_groups, #breakable, #current_group, #fill_breakable, #flush, format, #group, #group_sub, #initialize, #nest, singleline_format, #text
Constructor Details
This class inherits a constructor from PrettyPrint
Class Attribute Details
.sharing_detection ⇒ Object
Returns the sharing detection flag as a boolean value. It is false by default.
| 103 104 105 | # File 'opal/stdlib/pp.rb', line 103 def sharing_detection @sharing_detection end | 
Class Method Details
.mcall(obj, mod, meth, *args, &block) ⇒ Object
:stopdoc:
| 94 95 96 | # File 'opal/stdlib/pp.rb', line 94 def PP.mcall(obj, mod, meth, *args, &block) mod.instance_method(meth).bind_call(obj, *args, &block) end | 
.pp(obj, out = $stdout, width = 79) ⇒ Object
Outputs +obj+ to +out+ in pretty printed format of +width+ columns in width.
If +out+ is omitted, $> is assumed.
If +width+ is omitted, 79 is assumed.
PP.pp returns +out+.
| 74 75 76 77 78 79 80 | # File 'opal/stdlib/pp.rb', line 74 def PP.pp(obj, out=$stdout, width=79) # Opal: replace $> with $stdout q = PP.new(out, width) q.guard_inspect_key {q.pp obj} q.flush #$pp = q out << "\n" end | 
.singleline_pp(obj, out = $stdout) ⇒ Object
Outputs +obj+ to +out+ like PP.pp but with no indent and newline.
PP.singleline_pp returns +out+.
| 86 87 88 89 90 91 | # File 'opal/stdlib/pp.rb', line 86 def PP.singleline_pp(obj, out=$stdout) # Opal: replace $> with $stdout q = SingleLine.new(out) q.guard_inspect_key {q.pp obj} q.flush out end |