U:RDoc::AnyMethod[iI"define_method:ETI"Module#define_method;TF: privateo:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [ I">Defines an instance method in the receiver. The _method_ ;TI"Iparameter can be a +Proc+, a +Method+ or an +UnboundMethod+ object. ;TI"HIf a block is specified, it is used as the method body. This block ;TI"Dis evaluated using instance_eval, a point that is ;TI"Jtricky to demonstrate because define_method is private. ;TI"@(This is why we resort to the +send+ hack in this example.);To:RDoc::Markup::BlankLineo:RDoc::Markup::Verbatim; [I" class A ;TI" def fred ;TI" puts "In Fred" ;TI" end ;TI"' def create_method(name, &block) ;TI"7 self.class.send(:define_method, name, &block) ;TI" end ;TI"3 define_method(:wilma) { puts "Charge it!" } ;TI" end ;TI"class B < A ;TI"6 define_method(:barney, instance_method(:fred)) ;TI" end ;TI"a = B.new ;TI"a.barney ;TI" a.wilma ;TI"(a.create_method(:betty) { p self } ;TI" a.betty ;T: @format0o; ; [I"produces:;T@o; ; [I" In Fred ;TI"Charge it! ;TI"#;T; 0: @fileI" proc.c;T:0@omit_headings_from_table_of_contents_below0I"]define_method(symbol, method) -> symbol define_method(symbol) { block } -> symbol ;T0[I" (*args);T@/FI" Module;TcRDoc::NormalClass00