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 ⇒ Boolean
- #container_override ⇒ String?
- #default_class_vis ⇒ Symbol
- #default_instance_vis ⇒ Symbol
-
#explicit_class ⇒ Object
readonly
Returns the value of attribute explicit_class.
-
#explicit_instance ⇒ Object
readonly
Returns the value of attribute explicit_instance.
- #extend_self ⇒ Boolean
- #inside_sclass ⇒ Boolean
- #module_function_default ⇒ Boolean
-
#module_function_explicit ⇒ Object
readonly
Returns the value of attribute module_function_explicit.
Instance Method Summary collapse
-
#dup ⇒ Docscribe::InlineRewriter::Collector::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.
136 137 138 139 140 141 142 143 144 145 146 147 |
# File 'lib/docscribe/inline_rewriter/collector.rb', line 136 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 ⇒ Boolean
126 127 128 |
# File 'lib/docscribe/inline_rewriter/collector.rb', line 126 def container_is_module @container_is_module end |
#container_override ⇒ String?
109 110 111 |
# File 'lib/docscribe/inline_rewriter/collector.rb', line 109 def container_override @container_override end |
#default_class_vis ⇒ Symbol
94 95 96 |
# File 'lib/docscribe/inline_rewriter/collector.rb', line 94 def default_class_vis @default_class_vis end |
#default_instance_vis ⇒ Symbol
89 90 91 |
# File 'lib/docscribe/inline_rewriter/collector.rb', line 89 def default_instance_vis @default_instance_vis end |
#explicit_class ⇒ Object (readonly)
Returns the value of attribute explicit_class.
117 118 119 |
# File 'lib/docscribe/inline_rewriter/collector.rb', line 117 def explicit_class @explicit_class end |
#explicit_instance ⇒ Object (readonly)
Returns the value of attribute explicit_instance.
113 114 115 |
# File 'lib/docscribe/inline_rewriter/collector.rb', line 113 def explicit_instance @explicit_instance end |
#extend_self ⇒ Boolean
131 132 133 |
# File 'lib/docscribe/inline_rewriter/collector.rb', line 131 def extend_self @extend_self end |
#inside_sclass ⇒ Boolean
99 100 101 |
# File 'lib/docscribe/inline_rewriter/collector.rb', line 99 def inside_sclass @inside_sclass end |
#module_function_default ⇒ Boolean
104 105 106 |
# File 'lib/docscribe/inline_rewriter/collector.rb', line 104 def module_function_default @module_function_default end |
#module_function_explicit ⇒ Object (readonly)
Returns the value of attribute module_function_explicit.
121 122 123 |
# File 'lib/docscribe/inline_rewriter/collector.rb', line 121 def module_function_explicit @module_function_explicit end |
Instance Method Details
#dup ⇒ Docscribe::InlineRewriter::Collector::VisibilityCtx
Duplicate the context so nested bodies can mutate state independently.
152 153 154 155 156 157 158 |
# File 'lib/docscribe/inline_rewriter/collector.rb', line 152 def dup VisibilityCtx.new.tap do |ctx| copy_visibility_state(ctx) copy_module_function_state(ctx) copy_container_state(ctx) end end |