From 41c846ba83f6f85c2758a226aa006aaa966b110c Mon Sep 17 00:00:00 2001 From: pjechris Date: Tue, 24 Oct 2023 18:34:03 +0200 Subject: [PATCH] tech(cleaning): Rename IdentityMap and remove Observer protocol (#61) --- Sources/CohesionKit/{Identity => }/AliasKey.swift | 0 .../Combine/EntityObserver+Publisher.swift | 2 +- .../IdentityStore.swift => EntityStore.swift} | 0 Sources/CohesionKit/{Identity => }/Logger.swift | 0 Sources/CohesionKit/Observer/EntityObserver.swift | 2 +- Sources/CohesionKit/Observer/Observer.swift | 15 --------------- ...ntityMapTests.swift => EntityStoreTests.swift} | 6 +++--- .../{Identity => }/LoggerMock.swift | 0 8 files changed, 5 insertions(+), 20 deletions(-) rename Sources/CohesionKit/{Identity => }/AliasKey.swift (100%) rename Sources/CohesionKit/{Identity/IdentityStore.swift => EntityStore.swift} (100%) rename Sources/CohesionKit/{Identity => }/Logger.swift (100%) delete mode 100644 Sources/CohesionKit/Observer/Observer.swift rename Tests/CohesionKitTests/{IdentityMapTests.swift => EntityStoreTests.swift} (99%) rename Tests/CohesionKitTests/{Identity => }/LoggerMock.swift (100%) diff --git a/Sources/CohesionKit/Identity/AliasKey.swift b/Sources/CohesionKit/AliasKey.swift similarity index 100% rename from Sources/CohesionKit/Identity/AliasKey.swift rename to Sources/CohesionKit/AliasKey.swift diff --git a/Sources/CohesionKit/Combine/EntityObserver+Publisher.swift b/Sources/CohesionKit/Combine/EntityObserver+Publisher.swift index 8faec2b..6638aeb 100644 --- a/Sources/CohesionKit/Combine/EntityObserver+Publisher.swift +++ b/Sources/CohesionKit/Combine/EntityObserver+Publisher.swift @@ -1,7 +1,7 @@ #if canImport(Combine) import Combine -extension Observer { +extension EntityObserver { /// A `Publisher` emitting the observer current value and subscribing to any subsequents new values public var asPublisher: AnyPublisher { let subject = CurrentValueSubject(value) diff --git a/Sources/CohesionKit/Identity/IdentityStore.swift b/Sources/CohesionKit/EntityStore.swift similarity index 100% rename from Sources/CohesionKit/Identity/IdentityStore.swift rename to Sources/CohesionKit/EntityStore.swift diff --git a/Sources/CohesionKit/Identity/Logger.swift b/Sources/CohesionKit/Logger.swift similarity index 100% rename from Sources/CohesionKit/Identity/Logger.swift rename to Sources/CohesionKit/Logger.swift diff --git a/Sources/CohesionKit/Observer/EntityObserver.swift b/Sources/CohesionKit/Observer/EntityObserver.swift index 96036c6..661a725 100644 --- a/Sources/CohesionKit/Observer/EntityObserver.swift +++ b/Sources/CohesionKit/Observer/EntityObserver.swift @@ -1,7 +1,7 @@ import Foundation /// A type registering observers on a given entity from identity storage -public struct EntityObserver: Observer { +public struct EntityObserver { public typealias OnChange = (T) -> Void public let value: T diff --git a/Sources/CohesionKit/Observer/Observer.swift b/Sources/CohesionKit/Observer/Observer.swift deleted file mode 100644 index d9a9623..0000000 --- a/Sources/CohesionKit/Observer/Observer.swift +++ /dev/null @@ -1,15 +0,0 @@ -/// A protocol allowing to observe a value returned from the `IdentityMap` -public protocol Observer { - associatedtype T - - /// The value at the time the observer creation. - /// If you want **realtime** value use `observe to get notified of changes - var value: T { get } - - /// Add an observer being notified when entity change. - /// Alternatively you can use `asPublisher` to observe using Combine. - /// - Parameter onChange: a closure called when value changed - /// - Returns: a subscription to cancel observation. Observation is automatically cancelled if subscription is deinit. - /// As long as the subscription is alived the entity should be kept in `IdentityMap`. - func observe(onChange: @escaping (T) -> Void) -> Subscription -} diff --git a/Tests/CohesionKitTests/IdentityMapTests.swift b/Tests/CohesionKitTests/EntityStoreTests.swift similarity index 99% rename from Tests/CohesionKitTests/IdentityMapTests.swift rename to Tests/CohesionKitTests/EntityStoreTests.swift index fdbb9cc..07299be 100644 --- a/Tests/CohesionKitTests/IdentityMapTests.swift +++ b/Tests/CohesionKitTests/EntityStoreTests.swift @@ -2,7 +2,7 @@ import XCTest @testable import CohesionKit // MARK: Store -class IdentityMapTests: XCTestCase { +class EntityStoreTests: XCTestCase { func test_storeAggregate_nestedEntitiesAreStored() { let entity = RootFixture( id: 1, @@ -154,7 +154,7 @@ class IdentityMapTests: XCTestCase { } // MARK: Find -extension IdentityMapTests { +extension EntityStoreTests { func test_find_entityStored_noObserverAdded_returnNil() { let identityMap = IdentityMap() let entity = SingleNodeFixture(id: 1) @@ -277,7 +277,7 @@ extension IdentityMapTests { // MARK: Update -extension IdentityMapTests { +extension EntityStoreTests { func test_update_entityIsAlreadyInserted_entityIsUpdated() { let identityMap = IdentityMap() diff --git a/Tests/CohesionKitTests/Identity/LoggerMock.swift b/Tests/CohesionKitTests/LoggerMock.swift similarity index 100% rename from Tests/CohesionKitTests/Identity/LoggerMock.swift rename to Tests/CohesionKitTests/LoggerMock.swift