Class: RailsAiBridge::Serializers::Providers::Collaborators::StackOverviewBuilder::AuthPartsExtractor

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_ai_bridge/serializers/providers/collaborators/stack_overview_builder.rb

Overview

Utility class for extracting auth provider parts

Defined Under Namespace

Classes: AuthPayload

Constant Summary collapse

AUTH_PROVIDERS =

Authentication providers configuration

[
  { name: 'Devise', section: :authentication, key: :devise },
  { name: 'Rails 8 auth', section: :authentication, key: :rails_auth },
  { name: 'Pundit', section: :authorization, key: :pundit },
  { name: 'CanCanCan', section: :authorization, key: :cancancan }
].freeze

Class Method Summary collapse

Class Method Details

.extract(auth) ⇒ Array<String>

Extracts available authentication providers

Parameters:

  • auth (Hash)

    Auth configuration hash

Returns:

  • (Array<String>)

    List of provider names



90
91
92
93
94
95
# File 'lib/rails_ai_bridge/serializers/providers/collaborators/stack_overview_builder.rb', line 90

def self.extract(auth)
  payload = AuthPayload.new(auth)
  AUTH_PROVIDERS.filter_map do |provider|
    provider[:name] if payload.provider_present?(provider[:section], provider[:key])
  end
end