On 06.09.2006 02:00, jdonnell wrote: > is there a way for an object to tell you where it was created a la > stacktraces? > > I tried to hack it in myself, but it's really slowwwwwww. Here was my > hack attempt. I also wanted each object to tell me the time it was > created which works fine. > > class Object > attr_accessor :mp_created_at > attr_accessor :origin_trace > end > > class Class > alias oldNew new > def new(*args, &block) > obj = oldNew(*args, &block) > begin > raise "force a stack trace" > rescue Exception => err > obj.origin_trace = err.backtrace > end > #a hack that I need for a reason which I haven't taken the time to > figure out Probably because you were not aware of #caller: http://www.ruby-doc.org/core/classes/Kernel.html#M001968 >> def foo() caller 0 end => nil >> foo => ["(irb):6:in `foo'", "(irb):7:in `irb_binding'", "/usr/lib/ruby/1.8/irb/workspace.rb:52:in `irb_binding'", ":0"] > obj.mp_created_at = Time.now() unless obj.frozen? > return obj > end > end Kind regards robert