From: matz@... (Yukihiro Matsumoto) Date: 2000-09-13T00:19:53+09:00 Subject: [ruby-talk:4897] Re: Re-binding a block Hi, In message "[ruby-talk:4892] Re: Re-binding a block" on 00/09/12, Dave Thomas writes: |Unfortunately, sing instance methods doesn't quite work for me. |I've got this working, except I can't access instance variables during |the block's execution. The problem comes down to invoking the block |passed to 'hook' using the then-caller's context, passing in a set of |arguments at that time. | |Does anyone have any ideas? Hmm, I don't think it's possible by plain Ruby. Options: (1) provide a method to rebind Proc's self. (2) remove static from rb_yield_0() and make simple extension. (3) whatever else | hook :upcase do |_upcase, str| | res = _upcase(str) | res.tr '_', '~' | end | | end | |The first parameter to the block is a proc object that wraps the |original routine, and the remaining parameters are those supplied by |the caller. How did you do that. Show me your (imcomplete?) code. matz.