class Reek::AST::ASTNodeClassMap
Maps AST
node types to sublasses of ASTNode extended with the relevant utility modules.
Attributes
Public Class Methods
Public Instance Methods
Source
# File lib/reek/ast/ast_node_class_map.rb, line 24 def extension_map @extension_map ||= begin assoc = SexpExtensions.constants.map do |const| [ const.to_s.sub(/Node$/, '').downcase.to_sym, SexpExtensions.const_get(const) ] end assoc.to_h end end
Source
# File lib/reek/ast/ast_node_class_map.rb, line 16 def klass_for(type) klass_map[type] ||= Class.new(Node).tap do |klass| extension = extension_map[type] # TODO: map node type to constant directly. klass.send :include, extension if extension end end