U:RDoc::NormalModule[iI"SingleForwardable:EF@0o:RDoc::Markup::Document: @parts[o;;[ o:RDoc::Markup::Paragraph;[I"SSingleForwardable can be used to setup delegation at the object level as well.;To:RDoc::Markup::BlankLineo:RDoc::Markup::Verbatim;[ I"printer = String.new ;TI"Mprinter.extend SingleForwardable # prepare object for delegation ;TI"Pprinter.def_delegator "STDOUT", "puts" # add delegation for STDOUT.puts() ;TI"printer.puts "Howdy!" ;T: @format0o; ;[I"TAlso, SingleForwardable can be used to set up delegation for a Class or Module.;T@o; ;[I"class Implementation ;TI" def self.service ;TI" puts "serviced!" ;TI" end ;TI" end ;TI" ;TI"module Facade ;TI" extend SingleForwardable ;TI"/ def_delegator :Implementation, :service ;TI" end ;TI" ;TI""Facade.service #=> serviced! ;T; 0o; ;[I"HIf you want to use both Forwardable and SingleForwardable, you can ;TI"Fuse methods def_instance_delegator and def_single_delegator, etc.;T: @fileI"lib/forwardable.rb;T:0@omit_headings_from_table_of_contents_below0; 0;0[[[[[I" class;T[[: public[[:protected[[: private[[I" instance;T[[;[ [I"def_delegator;FI"lib/forwardable.rb;T[I"def_delegators;F@@[I"def_single_delegator;F@@[I"def_single_delegators;F@@[I" delegate;F@@[I"single_delegate;F@@[;[[;[[[U:RDoc::Context::Section[i0o;;[; 0;0[@+@+cRDoc::TopLevel