Dr. J. J. "One Eyed CrackerJack" Harbaugh 



-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf
Of Maxim Olivier-Adlhoch
Sent: Thursday, November 27, 2003 9:40 AM
To: [EMAIL PROTECTED]
Subject: [REBOL] Re: [encompass.r]



very good idea!

but this would only work for global words.  I often use the encompass
return function in an object, in order to overide the default function
only within the context of an object.  

thats basically what namespaces (contexts, objects) are for.


Anyone... What is the best way for a function to detect if it is part
of an object?


-MAx
---
"You can either be part of the problem or part of the solution, but in
the end, being part of the problem is much more fun."
 

> -----Original Message-----
> From: Anton Rolls [mailto:[EMAIL PROTECTED]
> Sent: Thursday, November 27, 2003 6:46 AM
> To: [EMAIL PROTECTED]
> Subject: [REBOL] Re: [encompass.r]
> 
> 
> 
> How about encompass stores the old function
> name and function definition in a list maintained
> within itself, so you can /restore later.
> Just an idea.
> 
> Anton.
> 
> > Hi all,
> > 
> > 
> > I just wanted to let everyone know of a nifty function I just
> > uploaded to the rebol.r repository, it is called emcompass.
> > 
> > I wanted to share it here, but its too large and will wordwrap
> > pretty badly...
> > 
> > http://www.rebol.org/cgi-bin/cgiwrap/rebol/view-script.r?script=en
> > compass.r
> > 
> > There are a lot of comments in the code (per my usual coding
style)
> > 
> > It lets you add code around a function and wraps all refinements
> > to it.  It is a follow up to the question I asked a week ago 
> > about transfering all refinements to another function of the 
> > same/lesser template.
> > 
> > 'ENCOMPASS can be used to modify behaviour of code, without
> > actually tampering with the code itself.  It is especially 
> > usefull in patching native! funcs.
> > 
> > simply put you can:
> >  -extend the argument list by adding new parameters or
refinements,
> >  -add pre-process code, executed before the function you 
> are enclosing.
> >  -add pos-tprocess code, executed after the function you
> are enclosing.
> >  -the return value (if any) of the enclosed function can be
> > created/modified in the
> >   post-process, which is in turn returned by the 
> encompassing function.
> > 
> > the example within the rebol.org encompass.r script show how you
> > can add a confirm on every 'read done, in the case where you want 
> > to monitor and intercept what a script is about to read, just 
> > before it does.  Canceling the read, terminates the script.  
> > 
> > the example even adds a refinement to read /safe which prevent
> > any confirmation when you know the file is safe.
> > 
> > the patch replaces the global read statement, so calling this at
> > the begining of your code actually protects you from someone 
> > prying files on your disk and sending them over the net without 
> > your knowledge.
> > 
> > good thing is that if the template to read changes in the future,
> > you have nothing to edit, it just continues using the new 
> > template, because you do not have to tamper with it yourself. 
> > 
> > 
> > The example itself is simple, but it shows just how easy it is to
> > extend/restrict functionality of any function, method, 
> action or native.
> > 
> > 
> > hope some of you find it usefull, I know I really am!
> > 
> > 
> > ciao!
> > 
> > 
> > -MAx
> > 
> > PS: if some of you noticed it yesterday, I have severely updated
> > it last night, its worth getting the newer version (1.0.2)
> > 
> > -------------
> > Steel project coordinator
> > http://www.rebol.it/~steel
> > -------------
> 
> --
> To unsubscribe from this list, just send an email to
> [EMAIL PROTECTED] with unsubscribe as the subject.
> 
> 

-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.

Reply via email to