Devin Mullins wrote:
> ara.t.howard / noaa.gov wrote:
> > so long as we have to rely on objects responding to certain methods certain
> > constructs, such as those that meta-programming cut to, can be made
> > difficult
> > since the very methods we require to operate can be over-ridden.  this
> > is why
> > we have
> >   __id__
> >   __send__
> Hrm. I thought the reason __id__ and __send__ where there was because id
> and send are fairly common names and useful for custom methods in, say,
> ActiveRecord::Base and Socket.
>
> > are examples.  by moving the essential methods outside of the object
> > itself an
> > into a frozen introspector
> >
> >   Introspector.object_id obj
> Another option is to make __id, __send, and __send! impervious to
> metaprogramming.  Say, they are listed in #methods because that's useful
> for irb-learning, but remove_method and the like are no-ops when called
> on __id, __send, and __send!.

Again, there would be no point in having #object_id, #send and #send!
in that case. If given a choice between a method that works and one
that might work, which one would you choose?

> That way you can have your BlankSlate and
> eat it, too. Thoughts?

__id__ ought to be deprecated. we have object_id.

T.