Class: PrettyPrint::Breakable

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

### Methods

new output

### Attributes

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

### Public Class methods

new(sep, width, q)

[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

output(out, output_width)

[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]