class RailInspector::Visitor::Attribute
Constants
- ATTRIBUTE_METHODS
Attributes
Public Class Methods
# File tools/rail_inspector/lib/rail_inspector/visitor/attribute.rb, line 11 def initialize @attribute_map = {} @namespace_stack = [] end
Public Instance Methods
# File tools/rail_inspector/lib/rail_inspector/visitor/attribute.rb, line 26 def visit_command(node) attr_access = node.message.value 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.parts.map { |p| p.value.value } @attribute_map[full_namespace][attr_access].merge(attributes) end
# File tools/rail_inspector/lib/rail_inspector/visitor/attribute.rb, line 16 def with_namespace(node) @namespace_stack << node.constant.constant.value visit_child_nodes(node) @namespace_stack.pop end
Also aliased as: visit_module, visit_class