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



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

def patch
  Gateway::Watcher.watch

  ::Sinatra::Base.singleton_class.prepend(DefaultMiddlewarePatch)
  ::Sinatra::Base.prepend(DispatchPatch)
  ::Sinatra::Base.prepend(RoutePatch)
  ::Sinatra::Base.prepend(Patches::JsonPatch) if patch_json?
  ::Sinatra::Base.singleton_class.prepend(AppSecSetupPatch)

  Patcher.instance_variable_set(:@patched, true)
end

.patch_json?Boolean

Returns:

  • (Boolean)


125
126
127
# File 'lib/datadog/appsec/contrib/sinatra/patcher.rb', line 125

def patch_json?
  defined?(::Sinatra::JSON) && ::Sinatra::Base < ::Sinatra::JSON
end

.patched?Boolean

Returns:

  • (Boolean)


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

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

.target_versionObject



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

def target_version
  Integration.version
end