Class PrettyPrint::Breakable
In: prettyprint.rb
Parent: Object

Methods

new   output  

Attributes

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

Public Class methods

[Source]

# File prettyprint.rb, line 280
    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

[Source]

# File prettyprint.rb, line 290
    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

[Validate]