module ElasticAPM::Spies::SinatraSpy::Ext

def compile_template(engine, data, opts, *args, &block)

def compile_template(engine, data, opts, *args, &block)
  opts[:__elastic_apm_template_name] =
    case data
    when Symbol then data.to_s
    else format('Inline %s', engine)
    end
  super(engine, data, opts, *args, &block)
end

def dispatch!(*args, &block)

def dispatch!(*args, &block)
  super(*args, &block).tap do
    next unless (transaction = ElasticAPM.current_transaction)
    next unless (route = env['sinatra.route'])
    transaction.name = route
  end
end