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.



330
331
332
333
# File 'lib/prettyprint.rb', line 330

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

Instance Attribute Details

#widthObject (readonly)

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



336
337
338
# File 'lib/prettyprint.rb', line 336

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



348
349
350
351
# File 'lib/prettyprint.rb', line 348

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



341
342
343
344
# File 'lib/prettyprint.rb', line 341

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