Skip to content

Commit 997baa1

Browse files
committed
Fix class name cache and add regression test
1 parent 1547090 commit 997baa1

File tree

3 files changed

+34
-7
lines changed

3 files changed

+34
-7
lines changed

Cosmic.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Pod::Spec.new do |s|
22

33
s.name = "Cosmic"
4-
s.version = "1.2.0"
4+
s.version = "1.3.0"
55
s.summary = "A log reporting framework written in Swift"
66

77
s.description = <<-DESC

Sources/Cosmic/Base/LogReporter.swift

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,10 @@ public protocol LogReporter {
2020

2121
public extension LogReporter {
2222

23-
public func createLogger<T: Logger>(with type: T.Type, for identifier: String = Self.className) -> T {
24-
25-
let className = String(describing: identifier)
23+
public func createLogger<T: Logger>(with type: T.Type) -> T {
2624

2725
if !LoggerCache.keys.contains(className) {
26+
print("Logging with className: \(className)")
2827
LoggerCache[className] = T.init()
2928
}
3029

@@ -37,8 +36,8 @@ public extension LogReporter {
3736
}
3837

3938

40-
static var className: String {
41-
return String(describing: self)
39+
var className: String {
40+
return String(describing: type(of: self))
4241
}
4342

4443
}

Tests/CosmicTests/LogReporterTests.swift

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,35 @@ class LogReporterTests: XCTestCase, DefaultLogReporter {
3333
}
3434

3535
func testLoggerClassName() {
36-
let name = type(of: self).className
36+
let name = self.className
3737
XCTAssertEqual(name, "LogReporterTests")
3838
}
39+
40+
func testLoggerInSubclass() {
41+
let object = B()
42+
43+
let loggerA = object.getLoggerA()
44+
let loggerB = object.getLoggerB()
45+
46+
XCTAssert(loggerA === loggerB)
47+
}
48+
}
49+
50+
51+
class A: LogReporter {
52+
53+
typealias DefaultLoggerType = PrintLogger
54+
55+
func getLoggerA() -> Logger {
56+
return logger
57+
}
58+
59+
}
60+
61+
class B: A {
62+
63+
func getLoggerB() -> Logger {
64+
return logger
65+
}
66+
3967
}

0 commit comments

Comments
 (0)