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

Inherits:
Base
  • Object
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

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

#processvoid

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