module Dry::System

Constants

ComponentDirAlreadyAddedError

Error raised when a component dir is added to configuration more than once

@api public

ComponentDirNotFoundError

Error raised when a configured component directory could not be found

@api public

ComponentFileMismatchError

Error raised when booter file do not match with register component

@api public

ComponentNotStartedError

Error raised when trying to stop a component that hasn't started yet

@api public

DEFAULT_SEPARATOR
DuplicatedComponentKeyError
FileNotFoundError

Error raised when the container tries to load a component with missing file

@api public

InvalidComponentError

Error raised when resolved component couldn't be loaded

@api public

InvalidComponentIdentifierError

Error raised when component's identifier is not valid

@api public

InvalidComponentIdentifierTypeError

Error raised when component's identifier for booting is not a symbol

@api public

InvalidSettingsError
PATH_SEPARATOR
PluginDependencyMissing

Exception raise when a plugin dependency failed to load

@api public

PluginNotFoundError

Error raised when trying to use a plugin that does not exist.

@api public

RB_EXT
RB_GLOB
VERSION
WORD_REGEX

Public Class Methods

providers() click to toggle source

@api private

# File lib/dry/system.rb, line 26
def self.providers
  @providers ||= ProviderRegistry.new
end
register_component(identifier, provider:, &block) click to toggle source

Register an external component that can be booted within other systems

@api public

# File lib/dry/system.rb, line 20
def self.register_component(identifier, provider:, &block)
  providers[provider].register_component(identifier, block)
  self
end
register_provider(identifier, options) click to toggle source

Register external component provider

@api public

# File lib/dry/system.rb, line 11
def self.register_provider(identifier, options)
  providers.register(identifier, options)
  providers[identifier].load_components
  self
end