Sha256: 73747ddb9ab2849f10093413295f673bb9cfac7c0bd1d676f5215813d35aa40d
Contents?: true
Size: 1.55 KB
Versions: 6
Compression:
Stored size: 1.55 KB
Contents
require_relative 'code_context' require_relative 'singleton_method_context' module Reek module Context # Semi-transparent context to represent a metaclass while building the # context tree. This context will not be part of the resulting tree, but # will track context and visibility separately while building is in # progress. class GhostContext < ModuleContext attr_reader :children def register_with_parent(parent) @parent = parent end def append_child_context(child) real_parent = parent.append_child_context(child) super real_parent end # Return the correct class for child method contexts (representing nodes # of type `:def`). For GhostContext, this is the class that represents # singleton methods. def method_context_class SingletonMethodContext end # Return the correct class for child attribute contexts. For # GhostContext, this is the class that represents singleton attributes. def attribute_context_class SingletonAttributeContext end def track_visibility(visibility, names) visibility_tracker.track_visibility children: children, visibility: visibility, names: names end def track_singleton_visibility(_visibility, _names) end def record_use_of_self parent.record_use_of_self end def statement_counter parent.statement_counter end end end end
Version data entries
6 entries across 6 versions & 1 rubygems