Module: RailsAdminNext

Extended by:
Config::ConstLoadSuppressor
Defined in:
lib/rails_admin_next.rb,
lib/rails_admin_next/icons.rb,
lib/rails_admin_next/config.rb,
lib/rails_admin_next/engine.rb,
lib/rails_admin_next/version.rb,
lib/rails_admin_next/extension.rb,
lib/rails_admin_next/config/model.rb,
lib/rails_admin_next/config/fields.rb,
lib/rails_admin_next/abstract_model.rb,
lib/rails_admin_next/config/actions.rb,
lib/rails_admin_next/config/hideable.rb,
lib/rails_admin_next/config/sections.rb,
lib/generators/rails_admin_next/utils.rb,
lib/rails_admin_next/config/groupable.rb,
lib/rails_admin_next/config/proxyable.rb,
lib/rails_admin_next/config/has_fields.rb,
lib/rails_admin_next/config/has_groups.rb,
lib/rails_admin_next/config/lazy_model.rb,
lib/rails_admin_next/config/actions/new.rb,
lib/rails_admin_next/config/fields/base.rb,
lib/rails_admin_next/config/inspectable.rb,
app/helpers/rails_admin_next/main_helper.rb,
lib/rails_admin_next/config/actions/base.rb,
lib/rails_admin_next/config/actions/edit.rb,
lib/rails_admin_next/config/actions/show.rb,
lib/rails_admin_next/config/configurable.rb,
lib/rails_admin_next/config/fields/group.rb,
lib/rails_admin_next/config/fields/types.rb,
lib/rails_admin_next/support/hash_helper.rb,
app/helpers/rails_admin_next/form_builder.rb,
lib/rails_admin_next/config/actions/index.rb,
lib/rails_admin_next/config/sections/base.rb,
lib/rails_admin_next/config/sections/edit.rb,
lib/rails_admin_next/config/sections/list.rb,
lib/rails_admin_next/config/sections/show.rb,
lib/rails_admin_next/config/actions/delete.rb,
lib/rails_admin_next/config/actions/export.rb,
lib/rails_admin_next/config/sections/modal.rb,
lib/rails_admin_next/support/csv_converter.rb,
lib/rails_admin_next/adapters/active_record.rb,
lib/rails_admin_next/config/has_description.rb,
lib/rails_admin_next/config/proxyable/proxy.rb,
lib/rails_admin_next/config/sections/create.rb,
lib/rails_admin_next/config/sections/export.rb,
lib/rails_admin_next/config/sections/nested.rb,
lib/rails_admin_next/config/sections/update.rb,
lib/rails_admin_next/config/actions/dashboard.rb,
lib/rails_admin_next/config/fields/types/date.rb,
lib/rails_admin_next/config/fields/types/enum.rb,
lib/rails_admin_next/config/fields/types/inet.rb,
lib/rails_admin_next/config/fields/types/json.rb,
lib/rails_admin_next/config/fields/types/text.rb,
lib/rails_admin_next/config/fields/types/time.rb,
lib/rails_admin_next/config/fields/types/uuid.rb,
lib/rails_admin_next/config/fields/association.rb,
lib/rails_admin_next/config/fields/types/color.rb,
lib/rails_admin_next/config/fields/types/float.rb,
app/helpers/rails_admin_next/application_helper.rb,
lib/rails_admin_next/config/actions/bulk_delete.rb,
lib/rails_admin_next/config/actions/show_in_app.rb,
lib/rails_admin_next/config/fields/types/citext.rb,
lib/rails_admin_next/config/fields/types/hidden.rb,
lib/rails_admin_next/config/fields/types/string.rb,
app/controllers/rails_admin_next/main_controller.rb,
lib/rails_admin_next/config/actions/history_show.rb,
lib/rails_admin_next/config/fields/types/boolean.rb,
lib/rails_admin_next/config/fields/types/decimal.rb,
lib/rails_admin_next/config/fields/types/integer.rb,
lib/rails_admin_next/config/fields/types/numeric.rb,
lib/generators/rails_admin_next/install_generator.rb,
lib/rails_admin_next/config/actions/history_index.rb,
lib/rails_admin_next/config/const_load_suppressor.rb,
lib/rails_admin_next/config/fields/types/datetime.rb,
lib/rails_admin_next/config/fields/types/password.rb,
lib/rails_admin_next/extensions/url_for_extension.rb,
lib/rails_admin_next/support/paginated_collection.rb,
lib/rails_admin_next/config/fields/types/timestamp.rb,
lib/rails_admin_next/config/fields/types/serialized.rb,
lib/rails_admin_next/adapters/active_record/property.rb,
lib/rails_admin_next/config/fields/types/action_text.rb,
lib/rails_admin_next/config/fields/types/file_upload.rb,
lib/rails_admin_next/config/fields/types/string_like.rb,
lib/rails_admin_next/extensions/controller_extension.rb,
lib/rails_admin_next/support/composite_keys_serializer.rb,
app/controllers/rails_admin_next/application_controller.rb,
lib/rails_admin_next/adapters/active_record/association.rb,
lib/rails_admin_next/config/fields/singular_association.rb,
lib/rails_admin_next/config/fields/types/active_storage.rb,
lib/rails_admin_next/config/fields/collection_association.rb,
lib/rails_admin_next/config/fields/types/active_record_enum.rb,
lib/rails_admin_next/adapters/active_record/object_extension.rb,
lib/rails_admin_next/config/fields/types/has_one_association.rb,
lib/rails_admin_next/extensions/paper_trail/auditing_adapter.rb,
lib/rails_admin_next/extensions/pundit/authorization_adapter.rb,
lib/rails_admin_next/config/fields/types/has_many_association.rb,
lib/rails_admin_next/config/fields/types/multiple_file_upload.rb,
lib/rails_admin_next/config/fields/types/belongs_to_association.rb,
lib/rails_admin_next/extensions/cancancan/authorization_adapter.rb,
lib/rails_admin_next/config/fields/types/multiple_active_storage.rb,
lib/rails_admin_next/config/fields/types/polymorphic_association.rb,
lib/rails_admin_next/config/fields/types/has_and_belongs_to_many_association.rb

Defined Under Namespace

Modules: Adapters, ApplicationHelper, Config, Extensions, Generators, Icons, MainHelper, Support Classes: AbstractModel, ActionNotAllowed, ApplicationController, CSVConverter, Engine, FormBuilder, HashHelper, InstallGenerator, MainController, ModelNotFound, ObjectNotFound, PaginatedCollection, Version

Constant Summary collapse

EXTENSIONS =

rubocop:disable Style/MutableConstant

[]
AUTHORIZATION_ADAPTERS =

rubocop:disable Style/MutableConstant

{}
AUDITING_ADAPTERS =

rubocop:disable Style/MutableConstant

{}
CONFIGURATION_ADAPTERS =

rubocop:disable Style/MutableConstant

{}

Class Method Summary collapse

Class Method Details

.add_extension(extension_key, extension_definition, options = {}) ⇒ Object

Extend RailsAdminNext

The extension may define various adapters (e.g., for authorization) and register those via the options hash.



15
16
17
18
19
20
21
22
23
24
25
# File 'lib/rails_admin_next/extension.rb', line 15

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

.config(entity = nil) ⇒ Object

Setup RailsAdminNext

Given the first argument is a model class, a model class name or an abstract model object proxies to model configuration method.

If only a block is passed it is stored to initializer stack to be evaluated on first request in production mode and on each request in development. If initialization has already occurred (in other words RailsAdminNext.setup has been called) the block will be added to stack and evaluated at once.

Otherwise returns RailsAdminNext::Config class.

See Also:



33
34
35
36
37
38
39
40
41
# File 'lib/rails_admin_next.rb', line 33

def self.config(entity = nil, &)
  if entity
    RailsAdminNext::Config.model(entity, &)
  elsif block_given?
    RailsAdminNext::Config::ConstLoadSuppressor.suppressing { yield(RailsAdminNext::Config) }
  else
    RailsAdminNext::Config
  end
end

.deprecatorObject

Deprecator for RailsAdminNext's own configuration options. Rails 8.1 made the class-level ActiveSupport::Deprecation.warn private, so deprecations go through an instance deprecator. Intentionally left unregistered, so a deprecated-but-removed option warns rather than raising even in a host whose deprecation behavior is :raise — upgrading must never blow up at boot.



47
48
49
# File 'lib/rails_admin_next.rb', line 47

def self.deprecator
  @deprecator ||= ActiveSupport::Deprecation.new(RailsAdminNext::Version.to_s, "RailsAdminNext")
end

.setup_all_extensionsObject

Setup all extensions for testing



28
29
30
31
32
33
34
# File 'lib/rails_admin_next/extension.rb', line 28

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

.yaml_dump(object) ⇒ Object



69
70
71
# File 'lib/rails_admin_next.rb', line 69

def self.yaml_dump(object)
  YAML.dump(object)
end