module Datadog::Tracing::Contrib::Sinatra::Patcher

def patch

def patch
  require_relative 'tracer'
  register_tracer
  patch_default_middlewares
  setup_tracer
end

def patch_default_middlewares

def patch_default_middlewares
  ::Sinatra::Base.singleton_class.prepend(DefaultMiddlewarePatch)
end

def register_tracer

def register_tracer
  ::Sinatra::Base.register(Contrib::Sinatra::Tracer)
  ::Sinatra::Base.prepend(Sinatra::Tracer::Base)
end

def setup_tracer

def setup_tracer
  ::Sinatra::Base.singleton_class.prepend(TracerSetupPatch)
end

def target_version

def target_version
  Integration.version
end