From 2c887a699b10d27c441cb8c7210ee03456389cfd Mon Sep 17 00:00:00 2001 From: Marcin Iwanicki Date: Sat, 31 Aug 2024 20:49:07 +0100 Subject: [PATCH] Rename RegisterName to RegistrationName --- Sources/SCInject/Container.swift | 21 ++++++++++++------- ...isterName.swift => RegistrationName.swift} | 4 ++-- Sources/SCInject/Registry.swift | 4 ++-- Sources/SCInject/Resolver.swift | 2 +- Tests/SCInject/ContainerTests.swift | 2 +- 5 files changed, 19 insertions(+), 14 deletions(-) rename Sources/SCInject/{RegisterName.swift => RegistrationName.swift} (86%) diff --git a/Sources/SCInject/Container.swift b/Sources/SCInject/Container.swift index 5501826..a016ffe 100644 --- a/Sources/SCInject/Container.swift +++ b/Sources/SCInject/Container.swift @@ -55,11 +55,16 @@ public final class DefaultContainer: Container { register(type: type, name: .init(rawValue: name), scope: scope, closure: closure) } - public func register(_ type: T.Type, name: RegisterName, closure: @escaping (Resolver) -> T) { + public func register(_ type: T.Type, name: RegistrationName, closure: @escaping (Resolver) -> T) { register(type: type, name: name, scope: nil, closure: closure) } - public func register(_ type: T.Type, name: RegisterName, _ scope: Scope, closure: @escaping (Resolver) -> T) { + public func register( + _ type: T.Type, + name: RegistrationName, + _ scope: Scope, + closure: @escaping (Resolver) -> T + ) { register(type: type, name: name, scope: scope, closure: closure) } @@ -77,7 +82,7 @@ public final class DefaultContainer: Container { resolve(type, name: .init(rawValue: name)) } - public func resolve(_ type: T.Type, name: RegisterName) -> T { + public func resolve(_ type: T.Type, name: RegistrationName) -> T { guard let instance = tryResolve(type, name: name) else { let message = errorMessage("Failed to resolve given type -- TYPE=\(type) NAME=\(name.rawValue)") fatalError(message) @@ -95,7 +100,7 @@ public final class DefaultContainer: Container { tryResolve(type: type, name: .init(rawValue: name), container: self) } - public func tryResolve(_ type: T.Type, name: RegisterName) -> T? { + public func tryResolve(_ type: T.Type, name: RegistrationName) -> T? { tryResolve(type: type, name: name, container: self) } @@ -103,7 +108,7 @@ public final class DefaultContainer: Container { private func register( type: T.Type, - name: RegisterName?, + name: RegistrationName?, scope: Scope?, closure: @escaping (Resolver) -> T ) { @@ -117,7 +122,7 @@ public final class DefaultContainer: Container { resolvers[identifier] = makeResolver(scope ?? defaultScope, closure: closure) } - private func tryResolve(type: T.Type, name: RegisterName? = nil, container: Container) -> T? { + private func tryResolve(type: T.Type, name: RegistrationName? = nil, container: Container) -> T? { lock.lock(); defer { lock.unlock() } if let resolver = resolvers[identifier(of: type, name: name)] { return resolver.resolve(with: container) as? T @@ -137,7 +142,7 @@ public final class DefaultContainer: Container { } } - private func identifier(of type: (some Any).Type, name: RegisterName?) -> ResolverIdentifier { + private func identifier(of type: (some Any).Type, name: RegistrationName?) -> ResolverIdentifier { ResolverIdentifier( name: name, typeIdentifier: ObjectIdentifier(type), @@ -146,7 +151,7 @@ public final class DefaultContainer: Container { } private struct ResolverIdentifier: Hashable { - let name: RegisterName? + let name: RegistrationName? let typeIdentifier: ObjectIdentifier let description: String } diff --git a/Sources/SCInject/RegisterName.swift b/Sources/SCInject/RegistrationName.swift similarity index 86% rename from Sources/SCInject/RegisterName.swift rename to Sources/SCInject/RegistrationName.swift index c067836..0934a6a 100644 --- a/Sources/SCInject/RegisterName.swift +++ b/Sources/SCInject/RegistrationName.swift @@ -17,7 +17,7 @@ import Foundation /// A structure that represents a name used for registering and resolving dependencies in a container. -public struct RegisterName: RawRepresentable, CustomStringConvertible, Hashable { +public struct RegistrationName: RawRepresentable, CustomStringConvertible, Hashable { public let rawValue: String public init(rawValue string: String) { @@ -25,6 +25,6 @@ public struct RegisterName: RawRepresentable, CustomStringConvertible, Hashable } public var description: String { - "SCInject.RegisterName(\(rawValue))" + "SCInject.RegistrationName(\(rawValue))" } } diff --git a/Sources/SCInject/Registry.swift b/Sources/SCInject/Registry.swift index 5fc61f5..66e53f1 100644 --- a/Sources/SCInject/Registry.swift +++ b/Sources/SCInject/Registry.swift @@ -51,12 +51,12 @@ public protocol Registry { /// - Parameter type: The type of the dependency to register. /// - Parameter name: The name associated with the dependency. /// - Parameter closure: A closure that provides the instance of the dependency. - func register(_ type: T.Type, name: RegisterName, closure: @escaping (Resolver) -> T) + func register(_ type: T.Type, name: RegistrationName, closure: @escaping (Resolver) -> T) /// Registers a named dependency with a specified scope. /// - Parameter type: The type of the dependency to register. /// - Parameter name: The name associated with the dependency. /// - Parameter scope: The scope in which the dependency should be resolved. /// - Parameter closure: A closure that provides the instance of the dependency. - func register(_ type: T.Type, name: RegisterName, _ scope: Scope, closure: @escaping (Resolver) -> T) + func register(_ type: T.Type, name: RegistrationName, _ scope: Scope, closure: @escaping (Resolver) -> T) } diff --git a/Sources/SCInject/Resolver.swift b/Sources/SCInject/Resolver.swift index 587fb85..ac592df 100644 --- a/Sources/SCInject/Resolver.swift +++ b/Sources/SCInject/Resolver.swift @@ -40,5 +40,5 @@ public protocol Resolver: AnyObject { /// - Parameter name: The `RegisterName` associated with the dependency. /// - Returns: An instance of the resolved dependency. /// - Note: The application will crash if the dependency cannot be resolved. - func resolve(_ type: T.Type, name: RegisterName) -> T + func resolve(_ type: T.Type, name: RegistrationName) -> T } diff --git a/Tests/SCInject/ContainerTests.swift b/Tests/SCInject/ContainerTests.swift index 74d5e37..2a3cb8e 100644 --- a/Tests/SCInject/ContainerTests.swift +++ b/Tests/SCInject/ContainerTests.swift @@ -55,7 +55,7 @@ final class ContainerTests: XCTestCase { } func testRegister_transientClassWithName() { - let second: RegisterName = .init(rawValue: "second") + let second: RegistrationName = .init(rawValue: "second") let container = DefaultContainer() container.register(TestClass1.self) { _ in TestClass1(value: "TestClass1_Instance")