Module: SyntaxTree::RemoveBreaks
- Defined in:
- lib/syntax_tree/node.rb
Overview
This module will remove any breakables from the list of contents so that no newlines are present in the output.
Class Method Summary collapse
Class Method Details
.call(doc) ⇒ Object
1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 |
# File 'lib/syntax_tree/node.rb', line 1561 def call(doc) marker = Object.new stack = [doc] while stack.any? doc = stack.pop if doc == marker stack.pop next end stack += [doc, marker] case doc when PrettyPrint::Align, PrettyPrint::Indent, PrettyPrint::Group doc.contents.map! { |child| remove_breaks(child) } stack += doc.contents.reverse when PrettyPrint::IfBreak doc.flat_contents.map! { |child| remove_breaks(child) } stack += doc.flat_contents.reverse end end end |