Joel, thanks very much, much appreciated. --Kip Joel VanderWerf wrote: > Kip Cole wrote: >> So the question is: what is the right way to achieve the desired result. >> Where the desired result is to pass a block to a method to be executed >> in a different context, without the caller having to know any of the >> implementation details. > > What about this? > > Context = Struct.new :user > > def sudo > context = Context.new > context.user = "admin_user" > yield context > end > > outer_context = Context.new > outer_context.user = "normal_user" > puts "I am #{outer_context.user}" > > sudo do |context| > puts "I am #{context.user}" > end -- Posted via http://www.ruby-forum.com/.