Sha256: c7dc9135f5e3b9387b428cdfe5f036c5bec3a24bf62ef5a7784ee130757d5e3c

Contents?: true

Size: 1.26 KB

Versions: 7

Compression:

Stored size: 1.26 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

    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

7 entries across 7 versions & 1 rubygems

Version Path
rails_admin-3.0.0 lib/rails_admin/extension.rb
rails_admin-3.0.0.rc4 lib/rails_admin/extension.rb
rails_admin-3.0.0.rc3 lib/rails_admin/extension.rb
rails_admin-3.0.0.rc2 lib/rails_admin/extension.rb
rails_admin-3.0.0.rc lib/rails_admin/extension.rb
rails_admin-3.0.0.beta2 lib/rails_admin/extension.rb
rails_admin-3.0.0.beta lib/rails_admin/extension.rb