class MetroRelic::Tracer

Attributes

method[R]

Public Class Methods

new(method) click to toggle source
# File lib/metro_relic.rb, line 24
def initialize(method)
  @method = method
end

Public Instance Methods

trace!() click to toggle source
# File lib/metro_relic.rb, line 28
def trace!
  if instance_method?
    klass.send(:include, NewRelic::Agent::MethodTracer)
    klass.add_method_tracer(name, metric)
  elsif class_method?
    klass.singleton_class.send(:include, NewRelic::Agent::MethodTracer)
    klass.singleton_class.add_method_tracer(name, metric)
  end
end

Private Instance Methods

class_method?() click to toggle source
# File lib/metro_relic.rb, line 60
def class_method?
  raw_name[0] == "."
end
instance_method?() click to toggle source
# File lib/metro_relic.rb, line 56
def instance_method?
  raw_name[0] == "#"
end
klass() click to toggle source
# File lib/metro_relic.rb, line 44
def klass
  @klass ||= Object.const_get(method.split(/(?=\#|\.)/)[0])
end
metric() click to toggle source
# File lib/metro_relic.rb, line 40
def metric
  "Custom/MetroRelic/#{method}"
end
name() click to toggle source
# File lib/metro_relic.rb, line 52
def name
  @name ||= raw_name[1..-1].to_sym
end
raw_name() click to toggle source
# File lib/metro_relic.rb, line 48
def raw_name
  @raw_name ||= method.split(/(?=\#|\.)/)[1]
end