Class: AppMap::Inspect::ImplicitInspector

Inherits:
Inspector
  • Object
show all
Defined in:
lib/appmap/inspect/inspector.rb

Overview

ImplicitInspector extracts features from a Ruby program, creating a feature for each public class and method.

Instance Attribute Summary

Attributes inherited from Inspector

#comments, #file_path, #parse_nodes

Instance Method Summary collapse

Methods inherited from Inspector

#initialize

Constructor Details

This class inherits a constructor from AppMap::Inspect::Inspector

Instance Method Details

#inspect_fileObject



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/appmap/inspect/inspector.rb', line 16

def inspect_file
  features = []
  features_by_ast_node = {}
  parse_nodes.select(&:public?).each do |parse_node|
    feature = parse_node.to_feature({})
    features_by_ast_node[parse_node.node] = feature
    if feature
      if (enclosing_type_node = parse_node.enclosing_type_node) &&
         (parent_feature = features_by_ast_node[enclosing_type_node])
        parent_feature.add_child(feature)
      else
        features << feature
      end
    end
  end

  features.keep_if(&:valid?)
  features
end