Class: YARD::Handlers::RBS::Base

Inherits:
Handlers::Base
  • Object
show all
Defined in:
lib/yard/handlers/rbs/base.rb

Overview

Base class for all RBS handlers. Handlers match on the Parser::RBS::Statement#type symbol of the current statement and process it to create or annotate code objects.

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.handles?(statement, _processor) ⇒ Boolean

Returns whether this handler matches the given statement.

Returns:

  • (Boolean)

    whether this handler matches the given statement



11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/yard/handlers/rbs/base.rb', line 11

def self.handles?(statement, _processor)
  handlers.any? do |matcher|
    case matcher
    when Symbol
      statement.type == matcher
    when String
      statement.type.to_s == matcher
    when Regexp
      (statement.source || '') =~ matcher
    else
      false
    end
  end
end

Instance Method Details

#parse_block(opts = {}) ⇒ Object

Recurse into the body of a namespace statement.

Parameters:

  • opts (Hash) (defaults to: {})

    state overrides

See Also:

  • #push_state


29
30
31
32
33
34
# File 'lib/yard/handlers/rbs/base.rb', line 29

def parse_block(opts = {})
  return if statement.block.nil? || statement.block.empty?
  push_state(opts) do
    parser.process(statement.block)
  end
end