D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
self
/
root
/
opt
/
alt
/
ruby34
/
share
/
ri
/
system
/
Object
/
Filename :
DelegateClass-i.ri
back
Copy
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