Linux heracles.o2switch.net 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
/
opt
/
alt
/
ruby21
/
share
/
ri
/
2.1.0
/
system
/
Binding
/
//opt/alt/ruby21/share/ri/2.1.0/system/Binding/cdesc-Binding.ri
U:RDoc::NormalClass[iI"Binding:ET@I"Object;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I"EObjects of class <code>Binding</code> 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 <code>self</code>, ;TI"Iand possibly an iterator block that can be accessed in this context ;TI"<are all retained. Binding objects can be created using ;TI"I<code>Kernel#binding</code>, and are made available to the callback ;TI"+of <code>Kernel#set_trace_func</code>.;To:RDoc::Markup::BlankLine o; ;[I"GThese binding objects can be passed as the second argument of the ;TI"J<code>Kernel#eval</code> 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" return 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: @fileI"proc.c;T:0@omit_headings_from_table_of_contents_below0; 0;0[ [ [ [[I" class;T[[:public[ [:protected[ [:private[ [I" instance;T[[;[ [I" eval;TI"proc.c;T[I"local_variable_defined?;T@G[I"local_variable_get;T@G[I"local_variable_set;T@G[;[ [;[ [ [U:RDoc::Context::Section[i 0o;;[ ; 0;0[@2@2cRDoc::TopLevel