class SpeedGun::Profiler

Public Class Methods

ignore?() click to toggle source
# File lib/speed_gun/profiler.rb, line 10
def self.ignore?
  SpeedGun.config.ignored_profilers.any? do |ignore|
    name.include?(ignore)
  end
end
profile(*args, &block) click to toggle source
# File lib/speed_gun/profiler.rb, line 6
def self.profile(*args, &block)
  new.profile(*args, &block)
end

Public Instance Methods

profile(name = self.class.name, payload = {}) { |event| ... } click to toggle source
# File lib/speed_gun/profiler.rb, line 16
def profile(name = self.class.name, payload = {})
  started_at = Time.now

  payload[:backtrace] ||= SpeedGun.get_backtrace

  event = SpeedGun::Event.new(name, payload, started_at)
  result = yield(event)
  event.finish!

  SpeedGun.record(event) unless self.class.ignore?

  result
end