Sha256: 13c2eef4e9bd3a70d8add0af44a1e68c83ab13e45d1d7ea8fe631dfeca8a7c21

Contents?: true

Size: 718 Bytes

Versions: 26

Compression:

Stored size: 718 Bytes

Contents

module TraceView
  module MethodProfiling
    def profile_wrapper(method, report_kvs, opts, *args, &block)
      report_kvs[:Backtrace] = TraceView::API.backtrace(2) if opts[:backtrace]
      report_kvs[:Arguments] = args if opts[:arguments]

      TraceView::API.log(nil, 'profile_entry', report_kvs)

      begin
        rv = self.send(method, *args, &block)
        report_kvs[:ReturnValue] = rv if opts[:result]
        rv
      rescue => e
        TraceView::API.log_exception(nil, e)
        raise
      ensure
        report_kvs.delete(:Backtrace)
        report_kvs.delete(:Controller)
        report_kvs.delete(:Action)
        TraceView::API.log(nil, 'profile_exit', report_kvs)
      end
    end
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
traceview-3.8.0-java lib/traceview/method_profiling.rb
traceview-3.8.0 lib/traceview/method_profiling.rb
traceview-3.7.1-java lib/traceview/method_profiling.rb
traceview-3.7.1 lib/traceview/method_profiling.rb
traceview-3.7.0-java lib/traceview/method_profiling.rb
traceview-3.7.0 lib/traceview/method_profiling.rb
traceview-3.6.0-java lib/traceview/method_profiling.rb
traceview-3.6.0 lib/traceview/method_profiling.rb
traceview-3.5.1-java lib/traceview/method_profiling.rb
traceview-3.5.1 lib/traceview/method_profiling.rb
traceview-3.5.0-java lib/traceview/method_profiling.rb
traceview-3.5.0 lib/traceview/method_profiling.rb
traceview-3.4.2-java lib/traceview/method_profiling.rb
traceview-3.4.2 lib/traceview/method_profiling.rb
traceview-3.4.1-java lib/traceview/method_profiling.rb
traceview-3.4.1 lib/traceview/method_profiling.rb
traceview-3.4.0-java lib/traceview/method_profiling.rb
traceview-3.4.0 lib/traceview/method_profiling.rb
traceview-3.3.3-java lib/traceview/method_profiling.rb
traceview-3.3.3 lib/traceview/method_profiling.rb