class YARD::Handlers::Ruby::HandlesExtension

To implement a custom handler matcher, subclass this class and implement {#matches?} to return whether a node matches the handler.

@example A Custom Handler Matcher Extension

# Implements a handler that checks for a specific string
# in the node's source.
class MyExtension < HandlesExtension
  def matches?(node) node.source.include?(name) end
end

# This handler will handle any node where the source includes 'foo'
class MyHandler < Handlers::Ruby::Base
  handles MyExtension.new('foo')
end

Attributes

name[R]

@return [String] the extension matcher value

Public Class Methods

new(name) click to toggle source

Creates a new extension with a specific matcher value name @param [Object] name the matcher value to check against {#matches?}

# File lib/yard/handlers/ruby/base.rb, line 22
def initialize(name) @name = name end

Public Instance Methods

matches?(node) click to toggle source

Tests if the node matches the handler @param [Parser::Ruby::AstNode] node a Ruby node @return [Boolean] whether the node matches the handler

# File lib/yard/handlers/ruby/base.rb, line 27
def matches?(node) # rubocop:disable Lint/UnusedMethodArgument
  raise NotImplementedError
end