Sha256: f609b26eb2ad49b1a160c5dba44ac849c86b9db4d78bcdd6bdf94764155b29dd
Contents?: true
Size: 1.57 KB
Versions: 5
Compression:
Stored size: 1.57 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
5 entries across 5 versions & 1 rubygems