Class: RBI::Rewriters::FlattenVisibilities
- Defined in:
- lib/rbi/rewriters/flatten_visibilities.rb
Overview
Flattens visibility nodes into method nodes
Example: ~~~rb class A
def m1; end
private
def m2; end
def m3; end
end ~~~
will be transformed into:
~~~rb class A
def m1; end
private def m2; end
private def m3; end
end ~~~
Instance Method Summary collapse
-
#initialize ⇒ FlattenVisibilities
constructor
: -> void.
-
#visit(node) ⇒ Object
: (Node? node) -> void.
Methods inherited from Visitor
Constructor Details
#initialize ⇒ FlattenVisibilities
: -> void
29 30 31 32 33 |
# File 'lib/rbi/rewriters/flatten_visibilities.rb', line 29 def initialize super @current_visibility = [Public.new] #: Array[Visibility] end |
Instance Method Details
#visit(node) ⇒ Object
: (Node? node) -> void
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/rbi/rewriters/flatten_visibilities.rb', line 37 def visit(node) return unless node case node when Public, Protected, Private @current_visibility[-1] = node node.detach when Tree @current_visibility << Public.new visit_all(node.nodes.dup) @current_visibility.pop when Attr, Method node.visibility = @current_visibility.last #: as !nil end end |