Class | DBI::HandleTracer |
In: |
lib/dbi/trace.rb
|
Parent: | AspectR::Aspect |
# File lib/dbi/trace.rb, line 31 31: def initialize(klass) 32: @never_wrap = /^__|^send$|^id$|^class$|^$ / 33: self.wrap(klass, :pre, :post, methods(klass)) 34: end
# File lib/dbi/trace.rb, line 49 49: def post(method, object, exitstatus, *args) 50: 51: case object.trace_mode 52: when 1, 2 # return values and errors 53: arrow = object.trace_mode == 1 ? "<=" : "<-" 54: if exitstatus.kind_of? Array 55: object.trace_output << "#{arrow} #{method} for #{object} = #{exitstatus[0] || 'nil'}\n" 56: else 57: if exitstatus == true 58: object.trace_output << "!! #{$!.message.chomp}\n" 59: end 60: object.trace_output << "#{arrow} #{method} for #{object}\n" 61: end 62: 63: when 3 64: if exitstatus.kind_of? Array 65: object.trace_output << "<- #{method} for #{object.inspect} = #{exitstatus[0].inspect}\n" 66: else 67: if exitstatus == true 68: object.trace_output << "!! #{$!.inspect}\n" 69: end 70: object.trace_output << "<- #{method} for #{object.inspect}\n" 71: end 72: end 73: 74: end
trace methods —————————————————————
# File lib/dbi/trace.rb, line 38 38: def pre(method, object, exitstatus, *args) 39: 40: par = args.collect{|a| a.inspect}.join(", ") 41: 42: if object.trace_mode == 2 then 43: object.trace_output << "-> #{method} for #{object} (#{par})\n" 44: elsif object.trace_mode == 3 then 45: object.trace_output << "-> #{method} for #{object.inspect} (#{par})\n" 46: end 47: end