class AlacrityRails::Instrumentor

Public Class Methods

instrument(name_or_options) { || ... } click to toggle source
# File lib/alacrity-rails/instrumentor.rb, line 3
def self.instrument(name_or_options)
  options = name_or_options.is_a?(String) ?
    { type: AlacrityRails::Transaction::Custom, data: { name: name_or_options } } :
    name_or_options

  Client.reset if options[:reset]

  transaction = options[:type].new(options[:data])
  Client.open_transaction(transaction)

  yield.tap do |response|
    Client.close_transaction!(response)
  end