[#4766] Wiki — "Glen Stampoultzis" <trinexus@...>

21 messages 2000/09/04
[#4768] RE: Wiki — "NAKAMURA, Hiroshi" <nahi@...> 2000/09/04

Hi, Glen,

[#4783] Re: Wiki — Masatoshi SEKI <m_seki@...> 2000/09/04

[#4785] Re: Wiki — "NAKAMURA, Hiroshi" <nakahiro@...> 2000/09/05

Howdy,

[#4883] Re-binding a block — Dave Thomas <Dave@...>

16 messages 2000/09/12

[#4930] Perl 6 rumblings -- RFC 225 (v1) Data: Superpositions — Conrad Schneiker <schneik@...>

Hi,

11 messages 2000/09/15

[#4936] Ruby Book Eng. translation editor's questions — Jon Babcock <jon@...>

20 messages 2000/09/16

[#5045] Proposal: Add constants to Math — Robert Feldt <feldt@...>

15 messages 2000/09/21

[#5077] Crazy idea? infix method calls — hal9000@...

This is a generalization of the "in" operator idea which I

17 messages 2000/09/22

[#5157] Compile Problem with 1.6.1 — Scott Billings <aerogems@...>

When I try to compile Ruby 1.6.1, I get the following error:

15 messages 2000/09/27

[ruby-talk:4892] Re: Re-binding a block

From: Dave Thomas <Dave@...>
Date: 2000-09-12 12:00:25 UTC
List: ruby-talk #4892
matz@zetabits.com (Yukihiro Matsumoto) writes:

> I don't think it's good idea to change instance_eval.  How about this
> yet another trick (using yet undocumented unbound method).

Unfortunately, sing instance methods doesn't quite work for me.

What I'm truing to do is implement something similar to Lisp's advice
system, where you can hook a function, wrapping it in some additional
code that executes before and after the original function. What I'd
like to do is something like


   class String

     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.

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?


Dave

In This Thread