HEX
Server: Apache
System: Windows NT MAGNETO-ARM 10.0 build 22000 (Windows 10) AMD64
User: Michel (0)
PHP: 7.4.7
Disabled: NONE
Upload Files
File: C:/Ruby27-x64/share/ri/2.7.0/system/BasicObject/cdesc-BasicObject.ri
U:RDoc::NormalClass[iI"BasicObject:ET@0o:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I"OBasicObject is the parent class of all classes in Ruby.  It's an explicit ;TI"blank class.;To:RDoc::Markup::BlankLineo;	;[	I"LBasicObject can be used for creating object hierarchies independent of ;TI"ORuby's object hierarchy, proxy objects like the Delegator class, or other ;TI"Luses where namespace pollution from Ruby's methods and classes must be ;TI"
avoided.;T@o;	;[I"KTo avoid polluting BasicObject for other users an appropriately named ;TI"Msubclass of BasicObject should be created instead of directly modifying ;TI"BasicObject:;T@o:RDoc::Markup::Verbatim;[I"(class MyObjectSystem < BasicObject
;TI"	end
;T:@format0o;	;[I"GBasicObject does not include Kernel (for methods like +puts+) and ;TI"OBasicObject is outside of the namespace of the standard library so common ;TI"?classes will not be found without using a full class path.;T@o;	;[
I"KA variety of strategies can be used to provide useful portions of the ;TI"Fstandard library to subclasses of BasicObject.  A subclass could ;TI"J<code>include Kernel</code> to obtain +puts+, +exit+, etc.  A custom ;TI"PKernel-like module could be created and included or delegation can be used ;TI"via #method_missing:;T@o;;[I"(class MyObjectSystem < BasicObject
;TI"  DELEGATE = [:puts, :p]
;TI"
;TI"/  def method_missing(name, *args, &block)
;TI"4    return super unless DELEGATE.include? name
;TI",    ::Kernel.send(name, *args, &block)
;TI"  end
;TI"
;TI">  def respond_to_missing?(name, include_private = false)
;TI"*    DELEGATE.include?(name) or super
;TI"  end
;TI"	end
;T;0o;	;[
I"IAccess to classes and modules from the Ruby standard library can be ;TI"Lobtained in a BasicObject subclass by referencing the desired constant ;TI"Jfrom the root like <code>::File</code> or <code>::Enumerator</code>. ;TI"KLike #method_missing, #const_missing can be used to delegate constant ;TI"lookup to +Object+:;T@o;;[
I"(class MyObjectSystem < BasicObject
;TI"$  def self.const_missing(name)
;TI""    ::Object.const_get(name)
;TI"  end
;TI"end;T;0:
@fileI"
object.c;T:0@omit_headings_from_table_of_contents_below0;
0;0[[[[[I"
class;T[[:public[[I"new;TI"../ruby-2.7.7/object.c;T[:protected[[:private[[I"
instance;T[[;[
[I"!;T@T[I"!=;T@T[I"==;T@T[I"__id__;TI"../ruby-2.7.7/gc.c;T[I"
__send__;TI"../ruby-2.7.7/vm_eval.c;T[I"equal?;T@T[I"instance_eval;T@i[I"instance_exec;T@i[;[[;[	[I"method_missing;T@i[I"singleton_method_added;T@T[I"singleton_method_removed;T@T[I"singleton_method_undefined;T@T[[U:RDoc::Context::Section[i0o;;[;
0;0[I"	gc.c;TI"
object.c;TI"vm_eval.c;TI"vm_eval.c;TcRDoc::TopLevel