Class PrettyPrint::GroupQueue
In: lib/prettyprint.rb
Parent: Object

Methods

delete   deq   enq   new  

Public Class methods

[Source]

     # File lib/prettyprint.rb, line 313
313:     def initialize(*groups)
314:       @queue = []
315:       groups.each {|g| enq g}
316:     end

Public Instance methods

[Source]

     # File lib/prettyprint.rb, line 339
339:     def delete(group)
340:       @queue[group.depth].delete(group)
341:     end

[Source]

     # File lib/prettyprint.rb, line 324
324:     def deq
325:       @queue.each {|gs|
326:         (gs.length-1).downto(0) {|i|
327:           unless gs[i].breakables.empty?
328:             group = gs.slice!(i, 1).first
329:             group.break
330:             return group
331:           end
332:         }
333:         gs.each {|group| group.break}
334:         gs.clear
335:       }
336:       return nil
337:     end

[Source]

     # File lib/prettyprint.rb, line 318
318:     def enq(group)
319:       depth = group.depth
320:       @queue << [] until depth < @queue.length
321:       @queue[depth] << group
322:     end

[Validate]