Module: Datadog::AppSec::Contrib::Sinatra::Patcher

Defined in:
lib/datadog/appsec/contrib/sinatra/patcher.rb

Overview

Patcher for AppSec on Sinatra

Class Method Summary collapse

Class Method Details

.patchObject



114
115
116
117
118
119
120
121
# File 'lib/datadog/appsec/contrib/sinatra/patcher.rb', line 114

def patch
  Gateway::Watcher.watch
  patch_default_middlewares
  patch_dispatch
  patch_route
  setup_security
  Patcher.instance_variable_set(:@patched, true)
end

.patch_default_middlewaresObject



127
128
129
# File 'lib/datadog/appsec/contrib/sinatra/patcher.rb', line 127

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

.patch_dispatchObject



131
132
133
# File 'lib/datadog/appsec/contrib/sinatra/patcher.rb', line 131

def patch_dispatch
  ::Sinatra::Base.prepend(DispatchPatch)
end

.patch_routeObject



135
136
137
# File 'lib/datadog/appsec/contrib/sinatra/patcher.rb', line 135

def patch_route
  ::Sinatra::Base.prepend(RoutePatch)
end

.patched?Boolean

Returns:

  • (Boolean)


106
107
108
# File 'lib/datadog/appsec/contrib/sinatra/patcher.rb', line 106

def patched?
  Patcher.instance_variable_get(:@patched)
end

.setup_securityObject



123
124
125
# File 'lib/datadog/appsec/contrib/sinatra/patcher.rb', line 123

def setup_security
  ::Sinatra::Base.singleton_class.prepend(AppSecSetupPatch)
end

.target_versionObject



110
111
112
# File 'lib/datadog/appsec/contrib/sinatra/patcher.rb', line 110

def target_version
  Integration.version
end