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



401
402
403
404
405
# File 'lib/prettyprint.rb', line 401

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

Instance Attribute Details

#breakablesObject (readonly)

Array to hold the Breakable objects for this Group



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

def breakables
  @breakables
end

#depthObject (readonly)

This group’s relation to previous groups



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

def depth
  @depth
end

Instance Method Details

#breakObject

Makes a break for this Group, and returns true



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

def break
  @break = true
end

#break?Boolean

Boolean of whether this Group has made a break

Returns:

  • (Boolean)


419
420
421
# File 'lib/prettyprint.rb', line 419

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)


426
427
428
429
430
431
432
433
# File 'lib/prettyprint.rb', line 426

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