Module: Plutonium

Defined in:
lib/plutonium.rb,
lib/plutonium/ui.rb,
lib/plutonium/auth.rb,
lib/plutonium/engine.rb,
lib/plutonium/helpers.rb,
lib/plutonium/invites.rb,
lib/plutonium/railtie.rb,
lib/plutonium/testing.rb,
lib/plutonium/version.rb,
lib/plutonium/reloader.rb,
lib/plutonium/ui/block.rb,
lib/plutonium/ui/panel.rb,
lib/plutonium/api_client.rb,
lib/plutonium/query/base.rb,
lib/plutonium/action/base.rb,
lib/plutonium/auth/public.rb,
lib/plutonium/testing/dsl.rb,
lib/plutonium/ui/nav_user.rb,
lib/plutonium/ui/page/new.rb,
lib/plutonium/ui/tab_list.rb,
lib/plutonium/auth/rodauth.rb,
lib/plutonium/query/filter.rb,
lib/plutonium/ui/form/base.rb,
lib/plutonium/ui/page/base.rb,
lib/plutonium/ui/page/edit.rb,
lib/plutonium/ui/page/show.rb,
lib/plutonium/action/simple.rb,
lib/plutonium/configuration.rb,
lib/plutonium/lib/bit_flags.rb,
lib/plutonium/portal/engine.rb,
lib/plutonium/ui/empty_card.rb,
lib/plutonium/ui/form/query.rb,
lib/plutonium/ui/form/theme.rb,
lib/plutonium/ui/page/index.rb,
lib/plutonium/ui/table/base.rb,
lib/plutonium/package/engine.rb,
lib/plutonium/ui/breadcrumbs.rb,
lib/plutonium/ui/layout/base.rb,
lib/plutonium/ui/page_header.rb,
lib/plutonium/ui/table/theme.rb,
lib/plutonium/core/controller.rb,
lib/plutonium/definition/base.rb,
lib/plutonium/lib/smart_cache.rb,
lib/plutonium/resource/policy.rb,
lib/plutonium/resource/record.rb,
lib/plutonium/ui/display/base.rb,
lib/plutonium/ui/sidebar_menu.rb,
lib/plutonium/engine/validator.rb,
lib/plutonium/interaction/base.rb,
lib/plutonium/lib/after_commit.rb,
lib/plutonium/lib/deep_freezer.rb,
lib/plutonium/models/has_cents.rb,
lib/plutonium/resource/context.rb,
lib/plutonium/ui/action_button.rb,
lib/plutonium/ui/component/kit.rb,
lib/plutonium/ui/display/theme.rb,
lib/plutonium/ui/form/resource.rb,
lib/plutonium/ui/layout/header.rb,
lib/plutonium/ui/nav_grid_menu.rb,
lib/plutonium/definition/search.rb,
lib/plutonium/portal/controller.rb,
lib/plutonium/query/adhoc_block.rb,
lib/plutonium/query/model_scope.rb,
lib/plutonium/resource/register.rb,
lib/plutonium/ui/component/base.rb,
lib/plutonium/ui/layout/sidebar.rb,
lib/plutonium/ui/skeleton_table.rb,
lib/plutonium/ui/table/resource.rb,
lib/plutonium/action/interactive.rb,
lib/plutonium/definition/actions.rb,
lib/plutonium/definition/scoping.rb,
lib/plutonium/definition/sorting.rb,
lib/plutonium/invites/controller.rb,
lib/plutonium/lib/overlayed_hash.rb,
lib/plutonium/query/filters/date.rb,
lib/plutonium/query/filters/text.rb,
lib/plutonium/support/parameters.rb,
lib/plutonium/ui/dyna_frame/host.rb,
lib/plutonium/auth/sequel_adapter.rb,
lib/plutonium/interaction/outcome.rb,
lib/plutonium/resource/controller.rb,
lib/plutonium/resource/definition.rb,
lib/plutonium/ui/actions_dropdown.rb,
lib/plutonium/ui/component/tokens.rb,
lib/plutonium/ui/display/resource.rb,
lib/plutonium/ui/form/interaction.rb,
lib/plutonium/action/route_options.rb,
lib/plutonium/helpers/table_helper.rb,
lib/plutonium/helpers/turbo_helper.rb,
lib/plutonium/query/filters/select.rb,
lib/plutonium/resource/interaction.rb,
lib/plutonium/testing/auth_helpers.rb,
lib/plutonium/ui/component/methods.rb,
lib/plutonium/ui/component_classes.rb,
lib/plutonium/helpers/assets_helper.rb,
lib/plutonium/query/filters/boolean.rb,
lib/plutonium/resource/query_object.rb,
lib/plutonium/testing/portal_access.rb,
lib/plutonium/testing/resource_crud.rb,
lib/plutonium/ui/dyna_frame/content.rb,
lib/plutonium/definition/config_attr.rb,
lib/plutonium/definition/presentable.rb,
lib/plutonium/helpers/content_helper.rb,
lib/plutonium/helpers/display_helper.rb,
lib/plutonium/resource/record/routes.rb,
lib/plutonium/testing/resource_model.rb,
lib/plutonium/ui/color_mode_selector.rb,
lib/plutonium/ui/component/behaviour.rb,
lib/plutonium/ui/layout/basic_layout.rb,
lib/plutonium/ui/table/display_theme.rb,
lib/plutonium/testing/nested_resource.rb,
lib/plutonium/testing/resource_policy.rb,
lib/plutonium/ui/form/components/uppy.rb,
lib/plutonium/definition/nested_inputs.rb,
lib/plutonium/profile/security_section.rb,
lib/plutonium/query/filters/date_range.rb,
lib/plutonium/resource/record/labeling.rb,
lib/plutonium/ui/frame_navigator_panel.rb,
lib/plutonium/ui/layout/rodauth_layout.rb,
lib/plutonium/core/controllers/bootable.rb,
lib/plutonium/helpers/attachment_helper.rb,
lib/plutonium/interaction/response/base.rb,
lib/plutonium/interaction/response/file.rb,
lib/plutonium/interaction/response/null.rb,
lib/plutonium/query/filters/association.rb,
lib/plutonium/routing/mapper_extensions.rb,
lib/plutonium/ui/layout/resource_layout.rb,
lib/plutonium/helpers/application_helper.rb,
lib/plutonium/invites/concerns/invitable.rb,
lib/plutonium/portal/dynamic_controllers.rb,
lib/plutonium/rodauth/controller_methods.rb,
lib/plutonium/ui/form/components/easymde.rb,
lib/plutonium/ui/page/interactive_action.rb,
lib/plutonium/definition/defineable_props.rb,
lib/plutonium/interaction/response/render.rb,
lib/plutonium/resource/record/field_names.rb,
lib/plutonium/testing/resource_definition.rb,
lib/plutonium/ui/display/components/color.rb,
lib/plutonium/interaction/concerns/scoping.rb,
lib/plutonium/interaction/response/failure.rb,
lib/plutonium/invites/concerns/invite_user.rb,
lib/plutonium/invites/pending_invite_check.rb,
lib/plutonium/resource/record/associations.rb,
lib/plutonium/routing/route_set_extensions.rb,
lib/plutonium/testing/resource_interaction.rb,
lib/plutonium/ui/form/components/flatpickr.rb,
lib/plutonium/core/controllers/authorizable.rb,
lib/plutonium/interaction/nested_attributes.rb,
lib/plutonium/interaction/response/redirect.rb,
lib/plutonium/invites/concerns/invite_token.rb,
lib/plutonium/routing/resource_registration.rb,
lib/plutonium/ui/display/components/boolean.rb,
lib/plutonium/ui/table/components/pagy_info.rb,
lib/plutonium/invites/concerns/cancel_invite.rb,
lib/plutonium/invites/concerns/resend_invite.rb,
lib/plutonium/resource/controllers/queryable.rb,
lib/plutonium/ui/display/components/markdown.rb,
lib/plutonium/ui/form/options/inferred_types.rb,
lib/plutonium/ui/table/components/attachment.rb,
lib/plutonium/ui/table/components/scopes_bar.rb,
lib/plutonium/ui/table/components/search_bar.rb,
lib/plutonium/action_policy/sti_policy_lookup.rb,
lib/plutonium/core/controllers/entity_scoping.rb,
lib/plutonium/resource/controllers/defineable.rb,
lib/plutonium/resource/record/associated_with.rb,
lib/plutonium/resource/controllers/presentable.rb,
lib/plutonium/ui/display/components/attachment.rb,
lib/plutonium/interaction/concerns/workflow_dsl.rb,
lib/plutonium/resource/controllers/authorizable.rb,
lib/plutonium/resource/controllers/crud_actions.rb,
lib/plutonium/ui/display/components/association.rb,
lib/plutonium/ui/display/options/inferred_types.rb,
lib/plutonium/ui/form/components/intl_tel_input.rb,
lib/plutonium/definition/inheritable_config_attr.rb,
lib/plutonium/ui/form/components/key_value_store.rb,
lib/plutonium/ui/form/components/resource_select.rb,
lib/plutonium/helpers/turbo_stream_actions_helper.rb,
lib/plutonium/ui/display/components/phlexi_render.rb,
lib/plutonium/ui/table/components/pagy_pagination.rb,
lib/plutonium/ui/table/components/selection_column.rb,
lib/plutonium/api_client/concerns/create_api_client.rb,
lib/plutonium/core/controllers/association_resolver.rb,
lib/plutonium/ui/form/components/secure_association.rb,
lib/plutonium/api_client/concerns/disable_api_client.rb,
lib/plutonium/resource/controllers/interactive_actions.rb,
lib/plutonium/ui/table/components/bulk_actions_toolbar.rb,
lib/plutonium/ui/table/components/row_actions_dropdown.rb,
lib/plutonium/resource/controllers/crud_actions/index_action.rb,
lib/plutonium/ui/form/concerns/renders_nested_resource_fields.rb,
lib/plutonium/ui/form/components/secure_polymorphic_association.rb

Overview

lib/plutonium/resource/associations.rb

Defined Under Namespace

Modules: Action, ActionPolicy, ApiClient, Auth, Core, Definition, Engine, Helpers, Interaction, Invites, Lib, Models, Package, Portal, Profile, Query, Resource, Rodauth, Routing, Support, Testing, UI Classes: Configuration, Error, Railtie, Reloader

Constant Summary collapse

Loader =

Set up Zeitwerk loader for the Plutonium gem

Returns:

  • (Zeitwerk::Loader)

    configured Zeitwerk loader instance

Zeitwerk::Loader.for_gem(warn_on_extra_files: false).tap do |loader|
  loader.ignore("#{__dir__}/generators")
  loader.ignore("#{__dir__}/plutonium/railtie.rb")
  loader.ignore("#{__dir__}/plutonium/testing.rb")
  loader.ignore("#{__dir__}/plutonium/testing")
  loader.ignore("#{__dir__}/rodauth")
  loader.inflector.inflect("ui" => "UI")
  loader.inflector.inflect("workflow_dsl" => "WorkflowDSL")
  loader.enable_reloading if defined?(Rails.env) && Rails.env.development?
  loader.setup
end
VERSION =
"0.47.0"
NEXT_MAJOR_VERSION =
VERSION.split(".").tap { |v|
  v[1] = v[1].to_i + 1
  v[2] = 0
}.join(".")

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.application_nameString

Get the name of the application

Returns:

  • (String)

    the application name



68
69
70
# File 'lib/plutonium.rb', line 68

def application_name
  @application_name || Rails.application.class.module_parent_name
end

Class Method Details

.configurationConfiguration

Get the current configuration

Returns:



117
118
119
# File 'lib/plutonium/configuration.rb', line 117

def configuration
  @configuration ||= Configuration.new
end

.configure {|config| ... } ⇒ void

This method returns an undefined value.

Configure Plutonium

Yields:

  • (config)

    Configuration instance

Yield Parameters:



126
127
128
# File 'lib/plutonium/configuration.rb', line 126

def configure
  yield(configuration)
end

.deprecatorObject



40
41
42
# File 'lib/plutonium.rb', line 40

def deprecator
  @deprecator ||= ActiveSupport::Deprecation.new("1.0", "Plutonium")
end

.eager_load_rails!void

This method returns an undefined value.

Eager load Rails application if not already eager loaded



80
81
82
83
84
85
# File 'lib/plutonium.rb', line 80

def eager_load_rails!
  return if @rails_eager_loaded || Rails.application.config.eager_load

  Rails.application.eager_load!
  @rails_eager_loaded = true
end

.lib_rootPathname

Get the root directory of the lib folder of the gem

Returns:

  • (Pathname)

    the lib root directory path



54
55
56
# File 'lib/plutonium.rb', line 54

def lib_root
  @lib_root ||= root.join("lib", "plutonium")
end

.loggerLogger

Get the Rails logger

Returns:

  • (Logger)

    the Rails logger instance



61
62
63
# File 'lib/plutonium.rb', line 61

def logger
  Rails.logger
end

.rootPathname

Get the root directory of the gem

Returns:

  • (Pathname)

    the root directory path



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

def root
  @root ||= Pathname.new(File.expand_path("..", __dir__))
end