Class: Unparser::Preprocessor::CompactDSTR

Inherits:
Unparser::Preprocessor show all
Defined in:
lib/unparser/preprocessor.rb

Overview

Preprocessor eliminating unneded dstr nodes

Constant Summary collapse

MAP =
IceNine.deep_freeze(
  dstr: :str,
  dsym: :sym
)

Constants inherited from Unparser::Preprocessor

EMPTY, REGISTRY

Instance Method Summary collapse

Methods inherited from Unparser::Preprocessor

run

Methods included from NodeHelpers

#n, #s

Instance Method Details

#resultParser::AST::Node

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Return preprocessor result

Returns:

  • (Parser::AST::Node)


171
172
173
174
175
176
177
# File 'lib/unparser/preprocessor.rb', line 171

def result
  if children.any? && children.all? { |child| child.type.equal?(:str) }
    node.updated(MAP.fetch(node.type), [children.map { |child| child.children.first }.join])
  else
    node
  end
end