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/.