Ruby
3.4.0dev (2024-12-06 revision 892c46283a5ea4179500d951c9d4866c0051f27b)
|
Public APIs related to rb_cClass/rb_cModule. More...
#include "ruby/internal/dllexport.h"
#include "ruby/internal/value.h"
#include "ruby/backward/2/stdarg.h"
Go to the source code of this file.
Functions | |
VALUE | rb_class_new (VALUE super) |
Creates a new, anonymous class. More... | |
VALUE | rb_mod_init_copy (VALUE clone, VALUE orig) |
The comment that comes with this function says :nodoc: . More... | |
void | rb_check_inheritable (VALUE super) |
Asserts that the given class can derive a child class. More... | |
VALUE | rb_define_class_id (ID id, VALUE super) |
This is a very badly designed API that creates an anonymous class. More... | |
VALUE | rb_define_class_id_under (VALUE outer, ID id, VALUE super) |
Identical to rb_define_class_under(), except it takes the name in ID instead of C's string. More... | |
VALUE | rb_module_new (void) |
Creates a new, anonymous module. More... | |
VALUE | rb_refinement_new (void) |
Creates a new, anonymous refinement. More... | |
VALUE | rb_define_module_id (ID id) |
This is a very badly designed API that creates an anonymous module. More... | |
VALUE | rb_define_module_id_under (VALUE outer, ID id) |
Identical to rb_define_module_under(), except it takes the name in ID instead of C's string. More... | |
VALUE | rb_mod_included_modules (VALUE mod) |
Queries the list of included modules. More... | |
VALUE | rb_mod_include_p (VALUE child, VALUE parent) |
Queries if the passed module is included by the module. More... | |
VALUE | rb_mod_ancestors (VALUE mod) |
Queries the module's ancestors. More... | |
VALUE | rb_class_descendants (VALUE klass) |
Queries the class's descendants. More... | |
VALUE | rb_class_subclasses (VALUE klass) |
Queries the class's direct descendants. More... | |
VALUE | rb_class_attached_object (VALUE klass) |
Returns the attached object for a singleton class. More... | |
VALUE | rb_class_instance_methods (int argc, const VALUE *argv, VALUE mod) |
Generates an array of symbols, which are the list of method names defined in the passed class. More... | |
VALUE | rb_class_public_instance_methods (int argc, const VALUE *argv, VALUE mod) |
Identical to rb_class_instance_methods(), except it returns names of methods that are public only. More... | |
VALUE | rb_class_protected_instance_methods (int argc, const VALUE *argv, VALUE mod) |
Identical to rb_class_instance_methods(), except it returns names of methods that are protected only. More... | |
VALUE | rb_class_private_instance_methods (int argc, const VALUE *argv, VALUE mod) |
Identical to rb_class_instance_methods(), except it returns names of methods that are private only. More... | |
VALUE | rb_obj_singleton_methods (int argc, const VALUE *argv, VALUE obj) |
Identical to rb_class_instance_methods(), except it returns names of singleton methods instead of instance methods. More... | |
void | rb_define_method_id (VALUE klass, ID mid, VALUE(*func)(ANYARGS), int arity) |
Identical to rb_define_method(), except it takes the name of the method in ID instead of C's string. More... | |
void | rb_undef (VALUE mod, ID mid) |
Inserts a method entry that hides previous method definition of the given name. More... | |
void | rb_define_protected_method (VALUE klass, const char *mid, VALUE(*func)(ANYARGS), int arity) |
Identical to rb_define_method(), except it defines a protected method. More... | |
void | rb_define_private_method (VALUE klass, const char *mid, VALUE(*func)(ANYARGS), int arity) |
Identical to rb_define_method(), except it defines a private method. More... | |
void | rb_define_singleton_method (VALUE obj, const char *mid, VALUE(*func)(ANYARGS), int arity) |
Identical to rb_define_method(), except it defines a singleton method. More... | |
VALUE | rb_singleton_class (VALUE obj) |
Finds or creates the singleton class of the passed object. More... | |
Public APIs related to rb_cClass/rb_cModule.
RBIMPL
or rbimpl
are implementation details. Don't take them as canon. They could rapidly appear then vanish. The name (path) of this header file is also an implementation detail. Do not expect it to persist at the place it is now. Developers are free to move it anywhere anytime at will. __VA_ARGS__
is always available. We assume C99 for ruby itself but we don't assume languages of extension libraries. They could be written in C++98. Definition in file class.h.
Queries the class's descendants.
This routine gathers classes that are subclasses of the given class (or subclasses of those subclasses, etc.), returning an array of classes that have the given class as an ancestor. The returned array does not include the given class or singleton classes.
[in] | klass | A class. |
klass
is an ancestor. Inserts a method entry that hides previous method definition of the given name.
This is not a deletion of a method. Method of the same name defined in a parent class is kept invisible in this way.
[out] | mod | The module to insert an undef. |
[in] | mid | Name of the undef. |
rb_eTypeError | klass is a non-module. |
rb_eFrozenError | klass is frozen. |
rb_eNameError | No such method named klass#name . |
klass#name
is undefined. Definition at line 1906 of file vm_method.c.