From 81393b67dae30e786a8746765a8dc574fd5078aa Mon Sep 17 00:00:00 2001 From: Wojciech Nagrodzki <278594+wnagrodzki@users.noreply.github.com> Date: Wed, 30 Oct 2019 20:02:45 +0100 Subject: [PATCH] Rename FileRotate to LogrotateImpl. Move Logrotate to Logrotate.swift --- Logger.xcodeproj/project.pbxproj | 16 +++++++------- Logger/Loggers/DiskLogger/DiskLogger.swift | 16 +------------- .../{Filerotate.swift => Logrotate.swift} | 18 +++++++++++++-- ...RotateTests.swift => LogrotateTests.swift} | 22 +++++++++---------- 4 files changed, 36 insertions(+), 36 deletions(-) rename Logger/Loggers/DiskLogger/{Filerotate.swift => Logrotate.swift} (83%) rename UnitTests/{FileRotateTests.swift => LogrotateTests.swift} (84%) diff --git a/Logger.xcodeproj/project.pbxproj b/Logger.xcodeproj/project.pbxproj index 1866e24..387575a 100644 --- a/Logger.xcodeproj/project.pbxproj +++ b/Logger.xcodeproj/project.pbxproj @@ -16,11 +16,11 @@ 2EBF4B4C2122AF53008E4117 /* NullLogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2EBF4B492122AF53008E4117 /* NullLogger.swift */; }; 2EBF4B572122B598008E4117 /* DiskLogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2EBF4B542122B598008E4117 /* DiskLogger.swift */; }; 2EBF4B582122B598008E4117 /* SizeLimitedFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2EBF4B552122B598008E4117 /* SizeLimitedFile.swift */; }; - 2EBF4B592122B598008E4117 /* FileRotate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2EBF4B562122B598008E4117 /* FileRotate.swift */; }; + 2EBF4B592122B598008E4117 /* Logrotate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2EBF4B562122B598008E4117 /* Logrotate.swift */; }; 2ED077D721329CA30058EEFC /* LoggetTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2ED077D621329CA30058EEFC /* LoggetTests.swift */; }; 2ED077D92132A4820058EEFC /* AgregateLoggerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2ED077D82132A4820058EEFC /* AgregateLoggerTests.swift */; }; 2ED077DB2132B0320058EEFC /* FileSystem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2ED077DA2132B0320058EEFC /* FileSystem.swift */; }; - 2ED103E12135C61100EB3683 /* FileRotateTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2ED103E02135C61100EB3683 /* FileRotateTests.swift */; }; + 2ED103E12135C61100EB3683 /* LogrotateTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2ED103E02135C61100EB3683 /* LogrotateTests.swift */; }; 2ED103E32135D3FB00EB3683 /* SizeLimitedFileTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2ED103E22135D3FB00EB3683 /* SizeLimitedFileTests.swift */; }; 2ED103E52138553B00EB3683 /* DiskLoggerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2ED103E42138553B00EB3683 /* DiskLoggerTests.swift */; }; /* End PBXBuildFile section */ @@ -59,11 +59,11 @@ 2EBF4B492122AF53008E4117 /* NullLogger.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NullLogger.swift; sourceTree = ""; }; 2EBF4B542122B598008E4117 /* DiskLogger.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DiskLogger.swift; sourceTree = ""; }; 2EBF4B552122B598008E4117 /* SizeLimitedFile.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SizeLimitedFile.swift; sourceTree = ""; }; - 2EBF4B562122B598008E4117 /* FileRotate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FileRotate.swift; sourceTree = ""; }; + 2EBF4B562122B598008E4117 /* Logrotate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Logrotate.swift; sourceTree = ""; }; 2ED077D621329CA30058EEFC /* LoggetTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoggetTests.swift; sourceTree = ""; }; 2ED077D82132A4820058EEFC /* AgregateLoggerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AgregateLoggerTests.swift; sourceTree = ""; }; 2ED077DA2132B0320058EEFC /* FileSystem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileSystem.swift; sourceTree = ""; }; - 2ED103E02135C61100EB3683 /* FileRotateTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileRotateTests.swift; sourceTree = ""; }; + 2ED103E02135C61100EB3683 /* LogrotateTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogrotateTests.swift; sourceTree = ""; }; 2ED103E22135D3FB00EB3683 /* SizeLimitedFileTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SizeLimitedFileTests.swift; sourceTree = ""; }; 2ED103E42138553B00EB3683 /* DiskLoggerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DiskLoggerTests.swift; sourceTree = ""; }; 2EDA8AE8213ACCFF00FE5840 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; @@ -96,7 +96,7 @@ 2ED077D82132A4820058EEFC /* AgregateLoggerTests.swift */, 2ED103E42138553B00EB3683 /* DiskLoggerTests.swift */, 2ED103E22135D3FB00EB3683 /* SizeLimitedFileTests.swift */, - 2ED103E02135C61100EB3683 /* FileRotateTests.swift */, + 2ED103E02135C61100EB3683 /* LogrotateTests.swift */, 2E58D35E21316C3500BEF81A /* Info.plist */, ); path = UnitTests; @@ -147,7 +147,7 @@ children = ( 2EBF4B542122B598008E4117 /* DiskLogger.swift */, 2EBF4B552122B598008E4117 /* SizeLimitedFile.swift */, - 2EBF4B562122B598008E4117 /* FileRotate.swift */, + 2EBF4B562122B598008E4117 /* Logrotate.swift */, 2ED077DA2132B0320058EEFC /* FileSystem.swift */, ); path = DiskLogger; @@ -249,7 +249,7 @@ 2ED103E32135D3FB00EB3683 /* SizeLimitedFileTests.swift in Sources */, 2ED103E52138553B00EB3683 /* DiskLoggerTests.swift in Sources */, 2ED077D92132A4820058EEFC /* AgregateLoggerTests.swift in Sources */, - 2ED103E12135C61100EB3683 /* FileRotateTests.swift in Sources */, + 2ED103E12135C61100EB3683 /* LogrotateTests.swift in Sources */, 2ED077D721329CA30058EEFC /* LoggetTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -265,7 +265,7 @@ 2EBF4B4B2122AF53008E4117 /* ConsoleLogger.swift in Sources */, 2ED077DB2132B0320058EEFC /* FileSystem.swift in Sources */, 2EBF4B4A2122AF53008E4117 /* AgregateLogger.swift in Sources */, - 2EBF4B592122B598008E4117 /* FileRotate.swift in Sources */, + 2EBF4B592122B598008E4117 /* Logrotate.swift in Sources */, 2EBF4B452122ACD6008E4117 /* LogStringConvertible.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/Logger/Loggers/DiskLogger/DiskLogger.swift b/Logger/Loggers/DiskLogger/DiskLogger.swift index a6952de..df97e21 100644 --- a/Logger/Loggers/DiskLogger/DiskLogger.swift +++ b/Logger/Loggers/DiskLogger/DiskLogger.swift @@ -35,20 +35,6 @@ protocol SizeLimitedFileFactory { func makeInstance(fileURL: URL, fileSizeLimit: UInt64) throws -> SizeLimitedFile } -/// Allows log files rotation. -protocol Logrotate { - - /// Rotates log files `rotations` number of times. - /// - /// First deletes file at `.`. - /// Next moves files located at: - /// - /// `, .1, .2 ... .` - /// - /// to `.1, .2 ... .` - func rotate() throws -} - protocol LogrotateFactory { /// Returns newly initialized Logrotate instance. @@ -151,7 +137,7 @@ public final class DiskLogger: Logger { private class FileRotateFactory: LogrotateFactory { func makeInstance(fileURL: URL, rotations: Int) -> Logrotate { - return FileRotate(fileURL: fileURL, rotations: rotations, fileSystem: FileManager.default) + return LogrotateImpl(fileURL: fileURL, rotations: rotations, fileSystem: FileManager.default) } } diff --git a/Logger/Loggers/DiskLogger/Filerotate.swift b/Logger/Loggers/DiskLogger/Logrotate.swift similarity index 83% rename from Logger/Loggers/DiskLogger/Filerotate.swift rename to Logger/Loggers/DiskLogger/Logrotate.swift index 0963cfa..93d4e84 100644 --- a/Logger/Loggers/DiskLogger/Filerotate.swift +++ b/Logger/Loggers/DiskLogger/Logrotate.swift @@ -24,7 +24,21 @@ import Foundation -final class FileRotate { +/// Allows log files rotation. +protocol Logrotate { + + /// Rotates log files `rotations` number of times. + /// + /// First deletes file at `.`. + /// Next moves files located at: + /// + /// `, .1, .2 ... .` + /// + /// to `.1, .2 ... .` + func rotate() throws +} + +final class LogrotateImpl { private let fileURL: URL private let rotations: Int @@ -43,7 +57,7 @@ final class FileRotate { } } -extension FileRotate: Logrotate { +extension LogrotateImpl: Logrotate { func rotate() throws { let range = 1...rotations diff --git a/UnitTests/FileRotateTests.swift b/UnitTests/LogrotateTests.swift similarity index 84% rename from UnitTests/FileRotateTests.swift rename to UnitTests/LogrotateTests.swift index 13ca7c0..f5f576c 100644 --- a/UnitTests/FileRotateTests.swift +++ b/UnitTests/LogrotateTests.swift @@ -25,7 +25,7 @@ import XCTest @testable import Logger -class FileRotateTests: XCTestCase { +class LogrotateTests: XCTestCase { let logURL = URL(fileURLWithPath: "/var/log/application.log") let log1URL = URL(fileURLWithPath: "/var/log/application.log.1") @@ -34,7 +34,7 @@ class FileRotateTests: XCTestCase { func test_1rotation_0files() { let fileSystem = FileSystemMock(files: []) - let logrotate = FileRotate(fileURL: logURL, rotations: 1, fileSystem: fileSystem) + let logrotate = LogrotateImpl(fileURL: logURL, rotations: 1, fileSystem: fileSystem) try? logrotate.rotate() let actual = fileSystem.files @@ -44,7 +44,7 @@ class FileRotateTests: XCTestCase { func test_1rotation_1file() { let fileSystem = FileSystemMock(files: [logURL]) - let logrotate = FileRotate(fileURL: logURL, rotations: 1, fileSystem: fileSystem) + let logrotate = LogrotateImpl(fileURL: logURL, rotations: 1, fileSystem: fileSystem) try? logrotate.rotate() let actual = fileSystem.files @@ -54,7 +54,7 @@ class FileRotateTests: XCTestCase { func test_1rotation_2files() { let fileSystem = FileSystemMock(files: [logURL, log1URL]) - let logrotate = FileRotate(fileURL: logURL, rotations: 1, fileSystem: fileSystem) + let logrotate = LogrotateImpl(fileURL: logURL, rotations: 1, fileSystem: fileSystem) try? logrotate.rotate() let actual = fileSystem.files @@ -64,7 +64,7 @@ class FileRotateTests: XCTestCase { func test_1rotation_3files() { let fileSystem = FileSystemMock(files: [logURL, log1URL, log2URL]) - let logrotate = FileRotate(fileURL: logURL, rotations: 1, fileSystem: fileSystem) + let logrotate = LogrotateImpl(fileURL: logURL, rotations: 1, fileSystem: fileSystem) try? logrotate.rotate() let actual = fileSystem.files @@ -74,7 +74,7 @@ class FileRotateTests: XCTestCase { func test_2rotations_0files() { let fileSystem = FileSystemMock(files: []) - let logrotate = FileRotate(fileURL: logURL, rotations: 2, fileSystem: fileSystem) + let logrotate = LogrotateImpl(fileURL: logURL, rotations: 2, fileSystem: fileSystem) try? logrotate.rotate() let actual = fileSystem.files @@ -84,7 +84,7 @@ class FileRotateTests: XCTestCase { func test_2rotations_1file() { let fileSystem = FileSystemMock(files: [logURL]) - let logrotate = FileRotate(fileURL: logURL, rotations: 2, fileSystem: fileSystem) + let logrotate = LogrotateImpl(fileURL: logURL, rotations: 2, fileSystem: fileSystem) try? logrotate.rotate() let actual = fileSystem.files @@ -94,7 +94,7 @@ class FileRotateTests: XCTestCase { func test_2rotations_2files() { let fileSystem = FileSystemMock(files: [logURL, log1URL]) - let logrotate = FileRotate(fileURL: logURL, rotations: 2, fileSystem: fileSystem) + let logrotate = LogrotateImpl(fileURL: logURL, rotations: 2, fileSystem: fileSystem) try? logrotate.rotate() let actual = fileSystem.files @@ -104,7 +104,7 @@ class FileRotateTests: XCTestCase { func test_2rotations_3files() { let fileSystem = FileSystemMock(files: [logURL, log1URL, log2URL]) - let logrotate = FileRotate(fileURL: logURL, rotations: 2, fileSystem: fileSystem) + let logrotate = LogrotateImpl(fileURL: logURL, rotations: 2, fileSystem: fileSystem) try? logrotate.rotate() let actual = fileSystem.files @@ -114,7 +114,7 @@ class FileRotateTests: XCTestCase { func test_2rotations_4files() { let fileSystem = FileSystemMock(files: [logURL, log1URL, log2URL, log3URL]) - let logrotate = FileRotate(fileURL: logURL, rotations: 2, fileSystem: fileSystem) + let logrotate = LogrotateImpl(fileURL: logURL, rotations: 2, fileSystem: fileSystem) try? logrotate.rotate() let actual = fileSystem.files @@ -124,7 +124,7 @@ class FileRotateTests: XCTestCase { func testErrorPropagation() { let fileSystem = BrokenFileSystem() - let logrotate = FileRotate(fileURL: logURL, rotations: 1, fileSystem: fileSystem) + let logrotate = LogrotateImpl(fileURL: logURL, rotations: 1, fileSystem: fileSystem) XCTAssertThrowsError(try logrotate.rotate(), "An error when removing or moving an item") { (error) in XCTAssertTrue(error is BrokenFileSystem.IOError)