From: Robert Dober Date: 2009-05-07T02:12:23+09:00 Subject: Re: delegate and unless for __ On Wed, May 6, 2009 at 6:40 PM, Robert Klemme 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| >>  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__"). 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 -- Si tu veux construire un bateau ... Ne rassemble pas des hommes pour aller chercher du bois, préparer des outils, répartir les tâches, alléger le travail… mais enseigne aux gens la nostalgie de l’infini de la mer. If you want to build a ship, don’t herd people together to collect wood and don’t assign them tasks and work, but rather teach them to long for the endless immensity of the sea. -- Antoine de Saint-Exupéry