Sha256: 0147033d2634b6dc8d9e84c2c82af09cc86ba513e628b7b423e11c7ba25a23f3

Contents?: true

Size: 1.35 KB

Versions: 7

Compression:

Stored size: 1.35 KB

Contents

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

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

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

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

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

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
rails_admin-2.3.1 lib/rails_admin/extension.rb
rails_admin-2.3.0 lib/rails_admin/extension.rb
rails_admin-2.2.1 lib/rails_admin/extension.rb
rails_admin-2.2.0 lib/rails_admin/extension.rb
rails_admin-2.1.1 lib/rails_admin/extension.rb
rails_admin-2.1.0 lib/rails_admin/extension.rb
rails_admin-2.0.2 lib/rails_admin/extension.rb