# Class: YARD::Handlers::C::MethodHandler

Inherits:
  Base
  - Object
  - Base
  - Base
  - YARD::Handlers::C::MethodHandler
  show all

Defined in:
  lib/yard/handlers/c/method_handler.rb

## Overview

Since:

- 0.8.0

## Constant Summary collapse

MATCH1 =

Since:

- 0.8.0

      /rb_define_
                       (
       singleton_method |
       method           |
       module_function  |
       private_method
                       )
                       \s*\(\s*([\w\.]+)\s*,
      \s*"([^"]+)"\s*,
      \s*(?:RUBY_METHOD_FUNC\(|VALUEFUNC\(|\(\w+\))?(\w+)\)?\s*,
      \s*(-?\w+)\s*\)/xm

MATCH2 =

Since:

- 0.8.0

      /rb_define_global_function\s*\(
      \s*"([^"]+)",
      \s*(?:RUBY_METHOD_FUNC\(|VALUEFUNC\(|\(\w+\))?(\w+)\)?,
      \s*(-?\w+)\s*\)/xm

MATCH3 =

Since:

- 0.8.0

      /define_filetest_function\s*\(
      \s*"([^"]+)",
      \s*(?:RUBY_METHOD_FUNC\(|VALUEFUNC\(|\(\w+\))?(\w+)\)?,
      \s*(-?\w+)\s*\)/xm

### Constants included from CodeObjects

CodeObjects::BUILTIN_ALL, CodeObjects::BUILTIN_CLASSES, CodeObjects::BUILTIN_EXCEPTIONS, CodeObjects::BUILTIN_EXCEPTIONS_HASH, CodeObjects::BUILTIN_MODULES, CodeObjects::CONSTANTMATCH, CodeObjects::CONSTANTSTART, CodeObjects::CSEP, CodeObjects::CSEPQ, CodeObjects::ISEP, CodeObjects::ISEPQ, CodeObjects::METHODMATCH, CodeObjects::METHODNAMEMATCH, CodeObjects::NAMESPACEMATCH, CodeObjects::NSEP, CodeObjects::NSEPQ

## Instance Method Summary collapse

- #process ⇒ void

  Main processing callback.

### Methods included from HandlerMethods

#handle_alias, #handle_attribute, #handle_class, #handle_constants, #handle_method, #handle_module

### Methods included from YARD::Handlers::Common::MethodHandler

#add_predicate_return_tag

### Methods included from CodeObjects::NamespaceMapper

#clear_separators, #default_separator, on_invalidate, #register_separator, #separators, #separators_for_type, #separators_match, #types_for_separator, #unregister_separator_by_type

## Constructor Details

This class inherits a constructor from YARD::Handlers::Base

## Instance Method Details

### #process ⇒ `void`

This method returns an undefined value.

Main processing callback

    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44

    # File 'lib/yard/handlers/c/method_handler.rb', line 27

    process do
      statement.source.scan(MATCH1) do |type, var_name, name, func_name, _param_count|
        break if var_name == "ruby_top_self"
        break if var_name == "nstr"
        break if var_name == "envtbl"

        var_name = "rb_cObject" if var_name == "rb_mKernel"
        handle_method(type, var_name, name, func_name)
      end

      statement.source.scan(MATCH2) do |name, func_name, _param_count|
        handle_method("method", "rb_mKernel", name, func_name)
      end

      statement.source.scan(MATCH3) do |name, func_name, _param_count|
        handle_method("singleton_method", "rb_cFile", name, func_name)
      end
    end