module Doorkeeper::GrantFlow::Registry

def register(name_or_flow, **options)


could recognize and process it.
Allows to register custom OAuth grant flow so that Doorkeeper
def register(name_or_flow, **options)
  unless name_or_flow.is_a?(Doorkeeper::GrantFlow::Flow)
    name_or_flow = Flow.new(name_or_flow, **options)
  end
  flow_key = name_or_flow.name.to_sym
  if flows.key?(flow_key)
    ::Kernel.warn <<~WARNING
      [DOORKEEPER] '#{flow_key}' grant flow already registered and will be overridden
      in #{caller(1..1).first}
    WARNING
  end
  flows[flow_key] = name_or_flow
end