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.