class

PointClickEngine::Core::ServiceRegistry

Inherits Reference < Object

Service registry with automatic resolution

Example usage:

registry = ServiceRegistry.new

# Register with factory
registry.register(EventBus) do |r|
  EventBus.new
end

# Register an existing instance
registry.register_instance(EventBus, my_event_bus)

# Resolve services
bus = registry.resolve(EventBus)

Constructors

Instance methods

clear_scope

Clear scoped instances (call at end of game session)

Source
register(interface : T.class, lifetime : ServiceLifetime = ServiceLifetime::Singleton, &factory : ServiceRegistry -> T) forall T

Register a service with a factory

Source
register_instance(interface : T.class, instance : T) forall T

Register an existing instance directly

Source
registered?(interface : T.class) : Bool forall T

Check if a service is registered

Source
registered_services

Get all registered service names

Source
reset

Reset everything - clears all registrations

Source
resolve(interface : T.class) : T forall T

Resolve a service by its interface type

Source
resolve?(interface : T.class) : T | Nil forall T

Try to resolve a service, returning nil if not found

Source
unregister(interface : T.class) forall T

Unregister a specific service

Source