class Dry::System::ManualRegistrar

Default manual registration implementation

This is currently configured by default for every System::Container. Manual registrar objects are responsible for loading files from configured manual registration paths, which should hold code to explicitly register certain objects with the container.

@api private

Attributes

config[R]
container[R]

Public Class Methods

new(container) click to toggle source
# File lib/dry/system/manual_registrar.rb, line 20
def initialize(container)
  @container = container
  @config = container.config
end

Public Instance Methods

call(component) click to toggle source

@api private

# File lib/dry/system/manual_registrar.rb, line 33
def call(component)
  require(root.join(config.registrations_dir, component.root_key.to_s))
end
file_exists?(component) click to toggle source
# File lib/dry/system/manual_registrar.rb, line 37
def file_exists?(component)
  File.exist?(File.join(registrations_dir, "#{component.root_key}#{RB_EXT}"))
end
finalize!() click to toggle source

@api private

# File lib/dry/system/manual_registrar.rb, line 26
def finalize!
  ::Dir[registrations_dir.join(RB_GLOB)].sort.each do |file|
    call(File.basename(file, RB_EXT))
  end
end

Private Instance Methods

registrations_dir() click to toggle source

@api private

# File lib/dry/system/manual_registrar.rb, line 44
def registrations_dir
  root.join(config.registrations_dir)
end
root() click to toggle source

@api private

# File lib/dry/system/manual_registrar.rb, line 49
def root
  container.root
end