lib/unparser/preprocessor.rb in unparser-0.2.8 vs lib/unparser/preprocessor.rb in unparser-0.3.0
- old
+ new
@@ -1,5 +1,7 @@
+# frozen_string_literal: true
+
module Unparser
# Preprocessor to normalize AST generated by parser
class Preprocessor
include Adamantium::Flat, NodeHelpers, AbstractType, Concord.new(:node, :parent_type), Procto.call(:result)
@@ -21,9 +23,10 @@
#
# @api private
#
def self.run(node, parent_type = nil)
return EMPTY if node.nil?
+
REGISTRY.fetch(node.type, [Noop]).reduce(node) do |current, processor|
processor.call(current, parent_type)
end
end