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!. That way you can have your BlankSlate and eat it, too. Thoughts? Devin