U:RDoc::AnyMethod[iI"DelegateClass:EFI"Object#DelegateClass;TF: publico:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [I"SThe primary interface to this library. Use to setup delegation when defining ;TI"your class.;To:RDoc::Markup::BlankLineo:RDoc::Markup::Verbatim; [ I"?class MyClass < DelegateClass(ClassToDelegateTo) # Step 1 ;TI" def initialize ;TI"? super(obj_of_ClassToDelegateTo) # Step 2 ;TI" end ;TI" end ;T: @format0o; ; [ I"OHere's a sample of use from Tempfile which is really a File object with a ;TI"Jfew special rules about storage location and when the File should be ;TI"Odeleted. That makes for an almost textbook perfect example of how to use ;TI"delegation.;T@o; ; [I"*class Tempfile < DelegateClass(File) ;TI": # constant and class member data initialization... ;TI" ;TI"4 def initialize(basename, tmpdir=Dir::tmpdir) ;TI"5 # build up file path/name in var tmpname... ;TI" ;TI"P @tmpfile = File.open(tmpname, File::RDWR|File::CREAT|File::EXCL, 0600) ;TI" ;TI" # ... ;TI" ;TI" super(@tmpfile) ;TI" ;TI"B # below this point, all methods of File are supported... ;TI" end ;TI" ;TI" # ... ;TI"end;T; 0: @fileI"lib/delegate.rb;T:0@omit_headings_from_table_of_contents_below000[I"(superclass);T@0TI" Object;TcRDoc::NormalClass00