class Devise::JWT::DefaultsGenerator

Generate defaults to be used in the configuration for the Devise installation in a Rails app

@see Warden::JWTAuth

Attributes

defaults[R]
devise_mappings[R]

Public Class Methods

call() click to toggle source
# File lib/devise/jwt/defaults_generator.rb, line 12
def self.call
  new.call
end
new() click to toggle source
# File lib/devise/jwt/defaults_generator.rb, line 16
def initialize
  @devise_mappings = Devise.mappings
  @defaults = {
    mappings: {},
    revocation_strategies: {},
    dispatch_requests: [],
    revocation_requests: []
  }
end

Public Instance Methods

call() click to toggle source
# File lib/devise/jwt/defaults_generator.rb, line 26
def call
  devise_mappings.each_key do |scope|
    inspector = MappingInspector.new(scope)
    next unless inspector.jwt?

    add_defaults(inspector)
  end
  defaults
end

Private Instance Methods

add_defaults(inspector) click to toggle source
# File lib/devise/jwt/defaults_generator.rb, line 38
def add_defaults(inspector)
  add_mapping(inspector)
  add_revocation_strategy(inspector)
  add_dispatch_requests(inspector)
  add_revocation_requests(inspector)
end
add_dispatch_requests(inspector) click to toggle source
# File lib/devise/jwt/defaults_generator.rb, line 57
def add_dispatch_requests(inspector)
  add_sign_in_request(inspector)
  add_registration_request(inspector)
end
add_mapping(inspector) click to toggle source
# File lib/devise/jwt/defaults_generator.rb, line 45
def add_mapping(inspector)
  scope = inspector.scope
  model = inspector.model
  defaults[:mappings][scope] = model.name
end
add_registration_request(inspector) click to toggle source
# File lib/devise/jwt/defaults_generator.rb, line 68
def add_registration_request(inspector)
  return unless inspector.registration?

  defaults[:dispatch_requests].push(*registration_requests(inspector))
end
add_revocation_requests(inspector) click to toggle source
# File lib/devise/jwt/defaults_generator.rb, line 74
def add_revocation_requests(inspector)
  return unless inspector.session?

  defaults[:revocation_requests].push(*sign_out_requests(inspector))
end
add_revocation_strategy(inspector) click to toggle source
# File lib/devise/jwt/defaults_generator.rb, line 51
def add_revocation_strategy(inspector)
  scope = inspector.scope
  strategy = inspector.model.jwt_revocation_strategy
  defaults[:revocation_strategies][scope] = strategy.name
end
add_sign_in_request(inspector) click to toggle source
# File lib/devise/jwt/defaults_generator.rb, line 62
def add_sign_in_request(inspector)
  return unless inspector.session?

  defaults[:dispatch_requests].push(*sign_in_requests(inspector))
end
registration_requests(inspector) click to toggle source
# File lib/devise/jwt/defaults_generator.rb, line 88
def registration_requests(inspector)
  requests(inspector, :registration)
end
requests(inspector, name) click to toggle source
# File lib/devise/jwt/defaults_generator.rb, line 92
def requests(inspector, name)
  path = inspector.path(name)
  methods = inspector.methods(name)
  inspector.formats.each_with_object([]) do |format, requests|
    requests.push(*requests_for_format(path, methods, format))
  end
end
requests_for_format(path, methods, format) click to toggle source
# File lib/devise/jwt/defaults_generator.rb, line 100
def requests_for_format(path, methods, format)
  path_regexp = format ? /^#{path}.#{format}$/ : /^#{path}$/
  methods.map do |method|
    [method, path_regexp]
  end
end
sign_in_requests(inspector) click to toggle source
# File lib/devise/jwt/defaults_generator.rb, line 80
def sign_in_requests(inspector)
  requests(inspector, :sign_in)
end
sign_out_requests(inspector) click to toggle source
# File lib/devise/jwt/defaults_generator.rb, line 84
def sign_out_requests(inspector)
  requests(inspector, :sign_out)
end