Sha256: 136a29fd77677c2eedc33c89f74fde0076510f5f1a3d2d1449e2c48a051d6652
Contents?: true
Size: 1.58 KB
Versions: 4
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
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
reek-4.7.2 | lib/reek/context/ghost_context.rb |
reek-4.7.1 | lib/reek/context/ghost_context.rb |
reek-4.7.0 | lib/reek/context/ghost_context.rb |
reek-4.6.2 | lib/reek/context/ghost_context.rb |