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