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
2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 |
# File 'lib/syntax_tree.rb', line 2315 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 |