@@ -411,6 +411,12 @@ rb_get_namespace_object(rb_namespace_t *ns)
411411
412412static void setup_pushing_loading_namespace (rb_namespace_t * ns );
413413
414+ /*
415+ * call-seq:
416+ * Namespace.new -> new_namespace
417+ *
418+ * Returns a new Namespace object.
419+ */
414420static VALUE
415421namespace_initialize (VALUE namespace )
416422{
@@ -450,12 +456,26 @@ namespace_initialize(VALUE namespace)
450456 return namespace ;
451457}
452458
459+ /*
460+ * call-seq:
461+ * Namespace.enabled? -> true or false
462+ *
463+ * Returns +true+ if namespace is enabled.
464+ */
453465static VALUE
454466rb_namespace_s_getenabled (VALUE namespace )
455467{
456468 return RBOOL (rb_namespace_available ());
457469}
458470
471+ /*
472+ * call-seq:
473+ * Namespace.current -> namespace, nil or false
474+ *
475+ * Returns the current namespace.
476+ * Returns +nil+ if it is the built-in namespace.
477+ * Returns +false+ if namespace is not enabled.
478+ */
459479static VALUE
460480rb_namespace_current (VALUE klass )
461481{
@@ -469,6 +489,12 @@ rb_namespace_current(VALUE klass)
469489 return Qfalse ;
470490}
471491
492+ /*
493+ * call-seq:
494+ * Namespace.is_builtin?(klass) -> true or false
495+ *
496+ * Returns +true+ if +klass+ is only in a user namespace.
497+ */
472498static VALUE
473499rb_namespace_s_is_builtin_p (VALUE namespace , VALUE klass )
474500{
@@ -477,6 +503,12 @@ rb_namespace_s_is_builtin_p(VALUE namespace, VALUE klass)
477503 return Qfalse ;
478504}
479505
506+ /*
507+ * call-seq:
508+ * load_path -> array
509+ *
510+ * Returns namespace local load path.
511+ */
480512static VALUE
481513rb_namespace_load_path (VALUE namespace )
482514{
@@ -1048,6 +1080,13 @@ Init_enable_namespace(void)
10481080 }
10491081}
10501082
1083+ /*
1084+ * Document-class: Namespace
1085+ *
1086+ * Namespace is designed to provide separated spaces in a Ruby
1087+ * process, to isolate applications and libraries.
1088+ * See {Namespace}[rdoc-ref:namespace.md].
1089+ */
10511090void
10521091Init_Namespace (void )
10531092{
@@ -1057,14 +1096,17 @@ Init_Namespace(void)
10571096 rb_cNamespace = rb_define_class ("Namespace" , rb_cModule );
10581097 rb_define_method (rb_cNamespace , "initialize" , namespace_initialize , 0 );
10591098
1099+ /* :nodoc: */
10601100 rb_cNamespaceEntry = rb_define_class_under (rb_cNamespace , "Entry" , rb_cObject );
10611101 rb_define_alloc_func (rb_cNamespaceEntry , rb_namespace_entry_alloc );
10621102
1103+ /* :nodoc: */
10631104 rb_mNamespaceRefiner = rb_define_module_under (rb_cNamespace , "Refiner" );
10641105 if (rb_namespace_available ()) {
10651106 setup_builtin_refinement (rb_mNamespaceRefiner );
10661107 }
10671108
1109+ /* :nodoc: */
10681110 rb_mNamespaceLoader = rb_define_module_under (rb_cNamespace , "Loader" );
10691111 namespace_define_loader_method ("require" );
10701112 namespace_define_loader_method ("require_relative" );
0 commit comments