Class: PrettyPrint::Text

Inherits:
Object
  • Object
show all
Defined in:
lib/prettyprint.rb

Overview

The Text class is the means by which to collect strings from objects.

This class is intended for internal use of the PrettyPrint buffers.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeText

Creates a new text object.

This constructor takes no arguments.

The workflow is to append a PrettyPrint::Text object to the buffer, and being able to call the buffer.last() to reference it.

As there are objects, use PrettyPrint::Text#add to include the objects and the width to utilized by the String version of this object.



308
309
310
311
# File 'lib/prettyprint.rb', line 308

def initialize
  @objs = []
  @width = 0
end

Instance Attribute Details

#widthObject (readonly)

The total width of the objects included in this Text object.



314
315
316
# File 'lib/prettyprint.rb', line 314

def width
  @width
end

Instance Method Details

#add(obj, width) ⇒ Object

Include obj in the objects to be pretty printed, and increment this Text object’s total width by width



326
327
328
329
# File 'lib/prettyprint.rb', line 326

def add(obj, width)
  @objs << obj
  @width += width
end

#output(out, output_width) ⇒ Object

Render the String text of the objects that have been added to this Text object.

Output the text to out, and increment the width to output_width



319
320
321
322
# File 'lib/prettyprint.rb', line 319

def output(out, output_width)
  @objs.each {|obj| out << obj}
  output_width + @width
end