module Datadog::AppSec::Contrib::Devise::Patcher

def patch

def patch
  patch_authenticable_strategy
  patch_registration_controller
  Patcher.instance_variable_set(:@patched, true)
end

def patch_authenticable_strategy

def patch_authenticable_strategy
  ::Devise::Strategies::Authenticatable.prepend(AuthenticatablePatch)
end

def patch_registration_controller

def patch_registration_controller
  ::ActiveSupport.on_load(:after_initialize) do
    ::Devise::RegistrationsController.prepend(RegistrationControllerPatch)
  end
end

def patched?

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

def target_version

def target_version
  Integration.version
end