Class: RubyIndexer::Enhancement Abstract

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby_indexer/lib/ruby_indexer/enhancement.rb

Overview

This class is abstract.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(listener) ⇒ Enhancement

: (DeclarationListener listener) -> void



29
30
31
# File 'lib/ruby_indexer/lib/ruby_indexer/enhancement.rb', line 29

def initialize(listener)
  @listener = listener
end

Class Method Details

.all(listener) ⇒ Object

: (DeclarationListener listener) -> Array



17
18
19
# File 'lib/ruby_indexer/lib/ruby_indexer/enhancement.rb', line 17

def all(listener)
  @enhancements.map { |enhancement| enhancement.new(listener) }
end

.clearObject

Only available for testing purposes : -> void



23
24
25
# File 'lib/ruby_indexer/lib/ruby_indexer/enhancement.rb', line 23

def clear
  @enhancements.clear
end

.inherited(child) ⇒ Object

: (Class child) -> void



11
12
13
14
# File 'lib/ruby_indexer/lib/ruby_indexer/enhancement.rb', line 11

def inherited(child)
  @enhancements << child
  super
end

Instance Method Details

#on_call_node_enter(node) ⇒ Object

The ‘on_extend` indexing enhancement is invoked whenever an extend is encountered in the code. It can be used to register for an included callback, similar to what `ActiveSupport::Concern` does in order to auto-extend the `ClassMethods` modules : (Prism::CallNode node) -> void



38
# File 'lib/ruby_indexer/lib/ruby_indexer/enhancement.rb', line 38

def on_call_node_enter(node); end

#on_call_node_leave(node) ⇒ Object

: (Prism::CallNode node) -> void



42
# File 'lib/ruby_indexer/lib/ruby_indexer/enhancement.rb', line 42

def on_call_node_leave(node); end