# PrettyPrint::Breakable (Class)

In: | prettyprint.rb
Parent: | Object

## Methods

new output

## Attributes

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

## Public Class methods

new(sep, width, pp)

[Source]

    # File prettyprint.rb, line 277
        def initialize(sep, width, pp)
          @obj = sep
          @width = width
          @pp = pp
          @indent = pp.indent
          @group = pp.current_group
          @group.breakables.push self
        end

## Public Instance methods

output(out, output_width)

[Source]

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