U:RDoc::NormalClass[iI"Binding:ET@I"Object;To:RDoc::Markup::Document:@parts[o;;[ :
@fileI"lib/irb.rb;T:0@omit_headings_from_table_of_contents_below0o;;[o:RDoc::Markup::Paragraph;[I"EObjects of class Binding
encapsulate the execution ;TI"Jcontext at some particular place in the code and retain this context ;TI"Ifor future use. The variables, methods, value of self
, ;TI"Iand possibly an iterator block that can be accessed in this context ;TI"Kernel#binding, and are made available to the callback ;TI"+of Kernel#set_trace_func
.;To:RDoc::Markup::BlankLine o;;[I"GThese binding objects can be passed as the second argument of the ;TI"JKernel#eval
method, establishing an environment for the ;TI"evaluation.;T@o:RDoc::Markup::Verbatim;[I"class Demo
;TI" def initialize(n)
;TI" @secret = n
;TI" end
;TI" def get_binding
;TI" binding
;TI" end
;TI" end
;TI"
;TI"k1 = Demo.new(99)
;TI"b1 = k1.get_binding
;TI"k2 = Demo.new(-3)
;TI"b2 = k2.get_binding
;TI"
;TI""eval("@secret", b1) #=> 99
;TI""eval("@secret", b2) #=> -3
;TI"#eval("@secret") #=> nil
;T:@format0o;;[I"4Binding objects have no class-specific methods.;T; I"proc.c;T;
0; 0;
0[ [ [ [[I"
class;T[[:public[ [:protected[ [:private[ [I"
instance;T[[;[[I" eval;TI"proc.c;T[I"local_variable_defined?;T@J[I"local_variable_get;T@J[I"local_variable_set;T@J[I"local_variables;T@J[I"
receiver;T@J[;[ [;[ [ [U:RDoc::Context::Section[i 0o;;[ ; 0;
0[@
@5@5cRDoc::TopLevel