Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > delegate and unless for __

Reply
Thread Tools

delegate and unless for __

 
 
Raj Singh
Guest
Posts: n/a
 
      05-05-2009
Anytime I see the delegate code usually there is an unless along with
it. The code might look like this.

Object.instance_methods.each do |m|
delegate m, :to => :@model unless m =~ /^__/
end


I am thinking that __ is escaped so that one could called
object.__SEND__ and this call will not be sent to the delegate. Is that
the reason why __ is not delegated to the delegate or the actual
reasoning is something else?

That piece of code as picked up from http://m.onkey.org/2008/10/5/sanity
--
Posted via http://www.ruby-forum.com/.

 
Reply With Quote
 
 
 
 
Robert Klemme
Guest
Posts: n/a
 
      05-06-2009
On 05.05.2009 22:50, Raj Singh wrote:
> Anytime I see the delegate code usually there is an unless along with
> it. The code might look like this.
>
> Object.instance_methods.each do |m|
> delegate m, :to => :@model unless m =~ /^__/
> end
>
>
> I am thinking that __ is escaped so that one could called
> object.__SEND__ and this call will not be sent to the delegate. Is that
> the reason why __ is not delegated to the delegate or the actual
> reasoning is something else?


I think you're spot on. There seems to be a convention that method
whose names start with underscores are not really meant to be part of
the regular public interface (such as "__send__").

Kind regards

robert
 
Reply With Quote
 
 
 
 
Robert Dober
Guest
Posts: n/a
 
      05-06-2009
On Wed, May 6, 2009 at 6:40 PM, Robert Klemme
<(E-Mail Removed)> wrote:
> On 05.05.2009 22:50, Raj Singh wrote:
>>
>> Anytime I see the delegate code usually there is an unless along with
>> it. The code might look like this.
>>
>> Object.instance_methods.each do |m|
>> =A0delegate m, :to =3D> :@model unless m =3D~ /^__/
>> end
>>
>>
>> I am thinking that __ is escaped so that one could called
>> object.__SEND__ and this call will not be sent to the delegate. Is that
>> the reason why __ is not delegated to the delegate or the actual
>> reasoning is something else?

>
> I think you're spot on. =A0There seems to be a convention that method who=

se
> names start with underscores are not really meant to be part of the regul=

ar
> public interface (such as "__send__").

So do I think
However, unless this is a somehow contrived example, I would love to
know more about the usecase for this.
Delegating all Object methods somehow puzzles me. Please do not get me
wrong, there might be a very good reason for this. But I am curious,
because whenever I did something like this I rather deleted the
methods, mixed in something or extended objects.
Maybe delegation was something I should have considered even in core
related metaprogramming.
Would you care to elaborate?

Thx in advance
Robert

--=20
Si tu veux construire un bateau ...
Ne rassemble pas des hommes pour aller chercher du bois, pr=E9parer des
outils, r=E9partir les t=E2ches, all=E9ger le travail=85 mais enseigne aux
gens la nostalgie de l=92infini de la mer.

If you want to build a ship, don=92t herd people together to collect
wood and don=92t assign them tasks and work, but rather teach them to
long for the endless immensity of the sea.

--
Antoine de Saint-Exup=E9ry

 
Reply With Quote
 
Raj Singh
Guest
Posts: n/a
 
      05-06-2009
Hi Robert,

Thanks for the answer.

As I posted in the question the code is picked up from
http://m.onkey.org/2008/10/5/sanity . I did not code it so I do not know
the justification for this style of coding.

I was just curious about leaving methods starting with __ as it is.
--
Posted via http://www.ruby-forum.com/.

 
Reply With Quote
 
Robert Dober
Guest
Posts: n/a
 
      05-06-2009
On Wed, May 6, 2009 at 9:01 PM, Raj Singh <(E-Mail Removed)> wrote:
> Hi Robert,
> I was just curious about leaving methods starting with __ as it is.

Than thank you even more for sharing the link
> --
> Posted via http://www.ruby-forum.com/.
>
>




--=20
Si tu veux construire un bateau ...
Ne rassemble pas des hommes pour aller chercher du bois, pr=E9parer des
outils, r=E9partir les t=E2ches, all=E9ger le travail=85 mais enseigne aux
gens la nostalgie de l=92infini de la mer.

If you want to build a ship, don=92t herd people together to collect
wood and don=92t assign them tasks and work, but rather teach them to
long for the endless immensity of the sea.

--
Antoine de Saint-Exup=E9ry

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Java Delegate and Visitor Pattern examples ... Giovanni Azua Java 0 11-30-2007 01:32 PM
Please give me more information about delegate and its usage? =?Utf-8?B?TWluaCBLaG9h?= ASP .Net 3 09-28-2005 11:15 AM
Unless unless Gábor SEBESTYÉN Ruby 3 06-17-2005 08:54 AM
Delegate and Thread Problem Irfan ASP .Net 1 05-06-2004 12:05 AM
Problem with refresh after delegate event fires. c# and asp.net. George K ASP .Net 3 11-25-2003 05:48 PM



Advertisments