class PrettyPrint::Breakable

Attributes

indent[R]
obj[R]
width[R]

Public Class Methods

new(sep, width, q) click to toggle source
# File lib/prettyprint.rb, line 278
def initialize(sep, width, q)
  @obj = sep
  @width = width
  @pp = q
  @indent = q.indent
  @group = q.current_group
  @group.breakables.push self
end

Public Instance Methods

output(out, output_width) click to toggle source
# File lib/prettyprint.rb, line 288
def output(out, output_width)
  @group.breakables.shift
  if @group.break?
    out << @pp.newline
    out << @pp.genspace.call(@indent)
    @indent
  else
    @pp.group_queue.delete @group if @group.breakables.empty?
    out << @obj
    output_width + @width
  end
end