On Monday 04 October 2004 09:13 am, Paul Brannan wrote: > On Fri, Oct 01, 2004 at 12:44:47PM +0900, trans. (T. Onoma) wrote: > > How can I subclass the Binding class? > > What do you hope to accomplish by doing this? Short answer: class TracePoint #< Binding def initialize(event, binding, back_binding=nil) @event = event @binding = binding # delegate!!! @back_binding = (back_binding ? back_binding : binding) end # ... def self.trace(&yld) bb_stack = [] set_trace_func proc{ |e, f, l, m, b, k| #(p e, f, l, m, b, k, @@bb_stack; puts "---") if $DEBUG if ['call','c-call','class'].include?(e) bb_stack << b elsif ['return','c-return','end'].include?(e) bb = bb_stack.pop end b = bb if ! b # this sucks! tp = TracePoint.new(e,b,bb) yld.call(tp) } end end T.