class RailInspector::Visitor::Attribute
Constants
- ATTRIBUTE_METHODS
Attributes
Public Class Methods
# File tools/rail_inspector/lib/rail_inspector/visitor/attribute.rb, line 10 def initialize @attribute_map = {} @namespace_stack = [] end
Public Instance Methods
# File tools/rail_inspector/lib/rail_inspector/visitor/attribute.rb, line 24 def visit_call_node(node) attr_access = node.name return unless ATTRIBUTE_METHODS.include?(attr_access) full_namespace = @namespace_stack.join("::") @attribute_map[full_namespace] ||= {} @attribute_map[full_namespace][attr_access] ||= Set.new attributes = node.arguments.arguments.map { |p| p.value } @attribute_map[full_namespace][attr_access].merge(attributes) end
# File tools/rail_inspector/lib/rail_inspector/visitor/attribute.rb, line 15 def with_namespace(node) @namespace_stack << node.constant_path.name visit_child_nodes(node) @namespace_stack.pop end
Also aliased as: visit_class_node, visit_module_node