Class: Docscribe::InlineRewriter::Collector::VisibilityCtx
- Inherits:
-
Object
- Object
- Docscribe::InlineRewriter::Collector::VisibilityCtx
- Defined in:
- lib/docscribe/inline_rewriter/collector.rb
Overview
Tracks visibility and container state while walking a class/module body.
The context carries enough Ruby state to support:
-
lexical visibility changes
-
‘class << self`
-
‘module_function`
-
‘extend self`
-
retroactive visibility updates
Instance Attribute Summary collapse
- #container_is_module ⇒ Object
- #container_override ⇒ Object
- #default_class_vis ⇒ Object
- #default_instance_vis ⇒ Object
-
#explicit_class ⇒ Object
readonly
Returns the value of attribute explicit_class.
-
#explicit_instance ⇒ Object
readonly
Returns the value of attribute explicit_instance.
- #extend_self ⇒ Object
- #inside_sclass ⇒ Object
- #module_function_default ⇒ Object
-
#module_function_explicit ⇒ Object
readonly
Returns the value of attribute module_function_explicit.
Instance Method Summary collapse
-
#dup ⇒ VisibilityCtx
Duplicate the context so nested bodies can mutate state independently.
-
#initialize ⇒ void
constructor
Create a fresh visibility context with Ruby-like defaults.
Constructor Details
#initialize ⇒ void
Create a fresh visibility context with Ruby-like defaults.
125 126 127 128 129 130 131 132 133 134 135 136 |
# File 'lib/docscribe/inline_rewriter/collector.rb', line 125 def initialize @default_instance_vis = :public @default_class_vis = :public @explicit_instance = {} @explicit_class = {} @inside_sclass = false @module_function_default = false @module_function_explicit = {} @container_override = nil @container_is_module = false @extend_self = false end |
Instance Attribute Details
#container_is_module ⇒ Object
115 116 117 |
# File 'lib/docscribe/inline_rewriter/collector.rb', line 115 def container_is_module @container_is_module end |
#container_override ⇒ Object
98 99 100 |
# File 'lib/docscribe/inline_rewriter/collector.rb', line 98 def container_override @container_override end |
#default_class_vis ⇒ Object
83 84 85 |
# File 'lib/docscribe/inline_rewriter/collector.rb', line 83 def default_class_vis @default_class_vis end |
#default_instance_vis ⇒ Object
78 79 80 |
# File 'lib/docscribe/inline_rewriter/collector.rb', line 78 def default_instance_vis @default_instance_vis end |
#explicit_class ⇒ Object (readonly)
Returns the value of attribute explicit_class.
106 107 108 |
# File 'lib/docscribe/inline_rewriter/collector.rb', line 106 def explicit_class @explicit_class end |
#explicit_instance ⇒ Object (readonly)
Returns the value of attribute explicit_instance.
102 103 104 |
# File 'lib/docscribe/inline_rewriter/collector.rb', line 102 def explicit_instance @explicit_instance end |
#extend_self ⇒ Object
120 121 122 |
# File 'lib/docscribe/inline_rewriter/collector.rb', line 120 def extend_self @extend_self end |
#inside_sclass ⇒ Object
88 89 90 |
# File 'lib/docscribe/inline_rewriter/collector.rb', line 88 def inside_sclass @inside_sclass end |
#module_function_default ⇒ Object
93 94 95 |
# File 'lib/docscribe/inline_rewriter/collector.rb', line 93 def module_function_default @module_function_default end |
#module_function_explicit ⇒ Object (readonly)
Returns the value of attribute module_function_explicit.
110 111 112 |
# File 'lib/docscribe/inline_rewriter/collector.rb', line 110 def module_function_explicit @module_function_explicit end |
Instance Method Details
#dup ⇒ VisibilityCtx
Duplicate the context so nested bodies can mutate state independently.
141 142 143 144 145 146 147 |
# File 'lib/docscribe/inline_rewriter/collector.rb', line 141 def dup VisibilityCtx.new.tap do |ctx| copy_visibility_state(ctx) copy_module_function_state(ctx) copy_container_state(ctx) end end |