Class: PrettyPrint::Group

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

Overview

The Group class is used for making indentation easier.

While this class does neither the breaking into newlines nor indentation, it is used in a stack (as well as a queue) within PrettyPrint, to group objects.

For information on using groups, see PrettyPrint#group

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(depth) ⇒ Group

Create a Group object

Arguments:

  • depth - this group’s relation to previous groups



397
398
399
400
401
# File 'lib/prettyprint.rb', line 397

def initialize(depth)
  @depth = depth
  @breakables = []
  @break = false
end

Instance Attribute Details

#breakablesObject (readonly)

Array to hold the Breakable objects for this Group



407
408
409
# File 'lib/prettyprint.rb', line 407

def breakables
  @breakables
end

#depthObject (readonly)

This group’s relation to previous groups



404
405
406
# File 'lib/prettyprint.rb', line 404

def depth
  @depth
end

Instance Method Details

#breakObject

Makes a break for this Group, and returns true



410
411
412
# File 'lib/prettyprint.rb', line 410

def break
  @break = true
end

#break?Boolean

Boolean of whether this Group has made a break

Returns:

  • (Boolean)


415
416
417
# File 'lib/prettyprint.rb', line 415

def break?
  @break
end

#first?Boolean

Boolean of whether this Group has been queried for being first

This is used as a predicate, and ought to be called first.

Returns:

  • (Boolean)


422
423
424
425
426
427
428
429
# File 'lib/prettyprint.rb', line 422

def first?
  if defined? @first
    false
  else
    @first = false
    true
  end
end