Sha256: 9d023e44f17ad10e4e4fcbbec1bceb22006630b9d117aab308889fb31bb421b3
Contents?: true
Size: 1.58 KB
Versions: 23
Compression:
Stored size: 1.58 KB
Contents
# frozen_string_literal: true 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
23 entries across 23 versions & 1 rubygems