Ruby 3.5.0dev (2025-02-22 revision 412997300569c1853c09813e4924b6df3d7e8669)
class.h
Go to the documentation of this file.
1#ifndef RBIMPL_INTERN_CLASS_H /*-*-C++-*-vi:se ft=cpp:*/
2#define RBIMPL_INTERN_CLASS_H
24#include "ruby/internal/value.h"
26
28
29/* class.c */
30
31
39
50
59void rb_check_inheritable(VALUE super);
60
72
95
101VALUE rb_module_new(void);
102
103
110
119
134
145
158VALUE rb_mod_include_p(VALUE child, VALUE parent);
159
176
189
202
203
214
228VALUE rb_class_instance_methods(int argc, const VALUE *argv, VALUE mod);
229
243VALUE rb_class_public_instance_methods(int argc, const VALUE *argv, VALUE mod);
244
258VALUE rb_class_protected_instance_methods(int argc, const VALUE *argv, VALUE mod);
259
273VALUE rb_class_private_instance_methods(int argc, const VALUE *argv, VALUE mod);
274
288VALUE rb_obj_singleton_methods(int argc, const VALUE *argv, VALUE obj);
289
301void rb_define_method_id(VALUE klass, ID mid, VALUE (*func)(ANYARGS), int arity);
302
303/* vm_method.c */
304
324void rb_undef(VALUE mod, ID mid);
325
326/* class.c */
327
339void rb_define_protected_method(VALUE klass, const char *mid, VALUE (*func)(ANYARGS), int arity);
340
352void rb_define_private_method(VALUE klass, const char *mid, VALUE (*func)(ANYARGS), int arity);
353
365void rb_define_singleton_method(VALUE obj, const char *mid, VALUE(*func)(ANYARGS), int arity);
366
391
393
394#endif /* RBIMPL_INTERN_CLASS_H */
#define rb_define_method_id(klass, mid, func, arity)
Defines klass#mid.
#define rb_define_singleton_method(klass, mid, func, arity)
Defines klass.mid.
#define rb_define_protected_method(klass, mid, func, arity)
Defines klass#mid and makes it protected.
#define rb_define_private_method(klass, mid, func, arity)
Defines klass#mid and makes it private.
Tweaking visibility of C variables/functions.
#define RBIMPL_SYMBOL_EXPORT_END()
Counterpart of RBIMPL_SYMBOL_EXPORT_BEGIN.
Definition dllexport.h:74
#define RBIMPL_SYMBOL_EXPORT_BEGIN()
Shortcut macro equivalent to RUBY_SYMBOL_EXPORT_BEGIN extern "C" {.
Definition dllexport.h:65
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.
Definition class.c:1912
VALUE rb_refinement_new(void)
Creates a new, anonymous refinement.
Definition class.c:1082
VALUE rb_class_new(VALUE super)
Creates a new, anonymous class.
Definition class.c:359
VALUE rb_class_subclasses(VALUE klass)
Queries the class's direct descendants.
Definition class.c:1692
VALUE rb_singleton_class(VALUE obj)
Finds or creates the singleton class of the passed object.
Definition class.c:2297
VALUE rb_class_attached_object(VALUE klass)
Returns the attached object for a singleton class.
Definition class.c:1715
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 ins...
Definition class.c:2089
VALUE rb_module_new(void)
Creates a new, anonymous module.
Definition class.c:1076
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.
Definition class.c:1897
void rb_check_inheritable(VALUE super)
Asserts that the given class can derive a child class.
Definition class.c:344
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.
Definition class.c:1950
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.
Definition class.c:1125
VALUE rb_mod_included_modules(VALUE mod)
Queries the list of included modules.
Definition class.c:1510
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.
Definition class.c:1051
VALUE rb_mod_ancestors(VALUE mod)
Queries the module's ancestors.
Definition class.c:1578
VALUE rb_mod_include_p(VALUE child, VALUE parent)
Queries if the passed module is included by the module.
Definition class.c:1546
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.
Definition class.c:1935
VALUE rb_mod_init_copy(VALUE clone, VALUE orig)
The comment that comes with this function says :nodoc:.
Definition class.c:533
VALUE rb_define_module_id(ID id)
This is a very badly designed API that creates an anonymous module.
Definition class.c:1089
VALUE rb_define_class_id(ID id, VALUE super)
This is a very badly designed API that creates an anonymous class.
Definition class.c:950
void rb_undef(VALUE mod, ID mid)
Inserts a method entry that hides previous method definition of the given name.
Definition vm_method.c:1899
VALUE rb_class_descendants(VALUE klass)
Queries the class's descendants.
#define RBIMPL_ATTR_NONNULL(list)
Wraps (or simulates) __attribute__((nonnull))
Definition nonnull.h:30
Defines old _.
#define ANYARGS
Functions declared using this macro take arbitrary arguments, including void.
Definition stdarg.h:64
Defines VALUE and ID.
uintptr_t ID
Type that represents a Ruby identifier such as a variable name.
Definition value.h:52
uintptr_t VALUE
Type that represents a Ruby object.
Definition value.h:40