module TestProf::EventProf

def build(event = config.event)

Returns new configured instance of profilers group
def build(event = config.event)
  ProfilersGroup.new(
    event: event,
    instrumenter: instrumenter,
    rank_by: config.rank_by,
    top_count: config.top_count,
    per_example: config.per_example?
  )
end

def config

def config
  @config ||= Configuration.new
end

def configure

def configure
  yield config
end

def instrumenter

def instrumenter
  @instrumenter ||= config.resolve_instrumenter
end

def monitor(mod, event, *mids, **kwargs)

TestProf::EventProf.monitor(MyModule, "my_module.call", :call)

Use it to profile arbitrary methods:

Wraps them with `instrumenter.instrument(event) { ... }`.
Instrument specified module methods.
def monitor(mod, event, *mids, **kwargs)
  Monitor.call(mod, event, *mids, **kwargs)
end