Sha256: 68baaabfa47afcd8d584562d961d24c947429a44c6d9fe4cca6bffc5e3eec992

Contents?: true

Size: 1.29 KB

Versions: 13

Compression:

Stored size: 1.29 KB

Contents

# frozen_string_literal: true

require 'rails_admin/extensions/controller_extension'

module RailsAdmin
  EXTENSIONS = [] # rubocop:disable Style/MutableConstant
  AUTHORIZATION_ADAPTERS = {} # rubocop:disable Style/MutableConstant
  AUDITING_ADAPTERS = {} # rubocop:disable Style/MutableConstant
  CONFIGURATION_ADAPTERS = {} # rubocop:disable Style/MutableConstant

  # Extend RailsAdmin
  #
  # The extension may define various adapters (e.g., for authorization) and
  # register those via the options hash.
  def self.add_extension(extension_key, extension_definition, options = {})
    options.assert_valid_keys(:authorization, :configuration, :auditing)

    EXTENSIONS << extension_key

    AUTHORIZATION_ADAPTERS[extension_key] = extension_definition::AuthorizationAdapter if options[:authorization]

    CONFIGURATION_ADAPTERS[extension_key] = extension_definition::ConfigurationAdapter if options[:configuration]

    AUDITING_ADAPTERS[extension_key] = extension_definition::AuditingAdapter if options[:auditing]
  end

  # Setup all extensions for testing
  def self.setup_all_extensions
    (AUTHORIZATION_ADAPTERS.values + AUDITING_ADAPTERS.values).each do |klass|
      klass.setup if klass.respond_to? :setup
    rescue # rubocop:disable Style/RescueStandardError
      # ignore errors
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
rails_admin-3.3.0 lib/rails_admin/extension.rb
rails_admin-3.2.1 lib/rails_admin/extension.rb
rails_admin-3.2.0 lib/rails_admin/extension.rb
rails_admin-3.2.0.rc lib/rails_admin/extension.rb
rails_admin-3.2.0.beta lib/rails_admin/extension.rb
rails_admin-3.1.4 lib/rails_admin/extension.rb
rails_admin-3.1.3 lib/rails_admin/extension.rb
rails_admin-3.1.2 lib/rails_admin/extension.rb
rails_admin-3.1.1 lib/rails_admin/extension.rb
rails_admin-3.1.0 lib/rails_admin/extension.rb
rails_admin-3.1.0.rc2 lib/rails_admin/extension.rb
rails_admin-3.1.0.rc lib/rails_admin/extension.rb
rails_admin-3.1.0.beta lib/rails_admin/extension.rb