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.



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

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

Instance Attribute Details

#widthObject (readonly)

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



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

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



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

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



323
324
325
326
# File 'lib/prettyprint.rb', line 323

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