Skip to content

Commit 85b5be7

Browse files
Minor improvements
1 parent 6f33526 commit 85b5be7

File tree

7 files changed

+33
-19
lines changed

7 files changed

+33
-19
lines changed

Sources/Publishers/Publishers.ExpiredScope.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import Foundation
44
public extension Publisher {
55
/// From a publisher, we can focus on a task and filter all expired and duplicated task. This publisher doesn't send a value if at the moment of subscription there is an expired task.
66
@available(*, deprecated, renamed: "scope")
7-
func expiredScope<T: Taskable & Equatable>(_ transform: @escaping (Self.Output) -> T, margin: TimeInterval = taskDefaultMargin) -> AnyPublisher<T, Failure> {
7+
func expiredScope<T: Taskable>(_ transform: @escaping (Self.Output) -> T, margin: TimeInterval = taskDefaultMargin) -> AnyPublisher<T, Failure> {
88
map(transform)
99
.removeExpired(margin: margin)
1010
.removeDuplicates()

Sources/Publishers/Publishers.MapToLatestTask.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ public extension Publisher {
55
transform: @escaping ((Output.Payload.ID) -> (AnyPublisher<DownTask, Failure>))
66
)
77
-> AnyPublisher<DownTask, Failure>
8-
where Output: Taskable & Equatable, Output.Payload: Identifiable,
9-
DownTask: Taskable & Equatable, DownTask.Failure == Output.Failure {
8+
where Output: Taskable, Output.Payload: Identifiable,
9+
DownTask: Taskable, DownTask.Failure == Output.Failure {
1010
map { (task: Output) -> AnyPublisher<DownTask, Failure> in
1111
switch task.status {
1212
case .success(let payload):

Sources/Publishers/Publishers.RemoveExpired.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public extension Publishers {
1414
public typealias Output = Upstream.Output
1515
public typealias Failure = Upstream.Failure
1616

17-
public let upstream: Upstream
17+
private let upstream: Upstream
1818
private let margin: TimeInterval
1919

2020
public init(upstream: Upstream, margin: TimeInterval) {

Sources/Task/Task.swift

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import Foundation
22

33
public let taskDefaultMargin: TimeInterval = 0.250
44

5-
public class Task<T: Equatable, E: Error & Equatable>: Taskable, Equatable, CustomDebugStringConvertible {
5+
public class Task<T: Equatable, E: Error & Equatable>: Taskable, CustomDebugStringConvertible, CustomStringConvertible {
66
public typealias Payload = T
77
public typealias Failure = E
88

@@ -125,19 +125,14 @@ public class Task<T: Equatable, E: Error & Equatable>: Taskable, Equatable, Cust
125125
progress: progress)
126126
}
127127

128+
// MARK: - CustomStringConvertible
129+
public var description: String {
130+
"[TASK] \(status) - started: \(started)"
131+
}
132+
128133
// MARK: - CustomDebugStringConvertible
129134
public var debugDescription: String {
130-
let tagPrint: String
131-
if let tag = tag {
132-
tagPrint = tag
133-
} else {
134-
tagPrint = "nil"
135-
}
136-
137-
return """
138-
🚀 Task: status: \(status), started: \(started), tag: \(tagPrint)
139-
payload: \(String(describing: payload)), progress: \(String(describing: progress)) error: \(String(describing: error))
140-
"""
135+
"[TASK] \(status) - started: \(started) - expiration \(expiration)"
141136
}
142137

143138
// MARK: Equatable

Sources/Task/TaskStatus.swift

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
public enum TaskStatus<Payload: Equatable, Failure: Error & Equatable>: Equatable {
1+
public enum TaskStatus<Payload: Equatable, Failure: Error & Equatable>: Equatable, CustomDebugStringConvertible, CustomStringConvertible {
22
case idle
33
case running
44
case success(payload: Payload)
@@ -19,4 +19,23 @@ public enum TaskStatus<Payload: Equatable, Failure: Error & Equatable>: Equatabl
1919
return false
2020
}
2121
}
22+
23+
// MARK: - CustomStringConvertible
24+
public var description: String {
25+
switch self {
26+
case .idle:
27+
return "⚪️ idle"
28+
case .running:
29+
return "🌕 Running"
30+
case .success(let payload):
31+
return "🟢 Success - payload: \(payload)"
32+
case .failure(let error):
33+
return "🔴 Failure - error: \(error)"
34+
}
35+
}
36+
37+
// MARK: - CustomDebugStringConvertible
38+
public var debugDescription: String {
39+
description
40+
}
2241
}

Sources/Task/Taskable.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import Foundation
22

3-
public protocol Taskable {
3+
public protocol Taskable: Equatable {
44
associatedtype Payload: Equatable
55
associatedtype Failure: Error & Equatable
66

Tests/StoreTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ class StoreTests: XCTestCase {
2727
// THIS PASSES
2828
store.state = TestState(testTask: .success(1), counter: 1)
2929

30-
// THIS DOES NOT, had the same success value as the previous one
30+
// THIS NOT PASS, had the same success value as the previous one
3131
store.state = TestState(testTask: .success(1), counter: 2)
3232

3333
// THIS PASSES

0 commit comments

Comments
 (0)