Module: SyntaxTree::RemoveBreaks
- Defined in:
- lib/syntax_tree.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
2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 |
# File 'lib/syntax_tree.rb', line 2428 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 |