File: //usr/share/ri/3.0.0/system/Object/DelegateClass-i.ri
U:RDoc::AnyMethod[iI"DelegateClass:ETI"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::BlankLine o: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"or:;T@o;; [
I"?MyClass = DelegateClass(ClassToDelegateTo) do # Step 1
;TI" def initialize
;TI"? super(obj_of_ClassToDelegateTo) # Step 2
;TI" end
;TI" end
;T;
0o;
; [ 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, &block);T@:TI"Object;TcRDoc::NormalClass00