diff --git a/Source/SwiftLintFramework/Extensions/Configuration+Cache.swift b/Source/SwiftLintFramework/Extensions/Configuration+Cache.swift index b421a733b5..70c1f799eb 100644 --- a/Source/SwiftLintFramework/Extensions/Configuration+Cache.swift +++ b/Source/SwiftLintFramework/Extensions/Configuration+Cache.swift @@ -1,24 +1,5 @@ -#if canImport(CommonCrypto) -import CommonCrypto -#else -import CryptoSwift -#endif import Foundation -#if canImport(CommonCrypto) -private extension String { - func md5() -> String { - let context = UnsafeMutablePointer.allocate(capacity: 1) - var digest = [UInt8](repeating: 0, count: Int(CC_MD5_DIGEST_LENGTH)) - CC_MD5_Init(context) - CC_MD5_Update(context, self, CC_LONG(lengthOfBytes(using: .utf8))) - CC_MD5_Final(&digest, context) - context.deallocate() - return digest.reduce(into: "") { $0.append(String(format: "%02x", $1)) } - } -} -#endif - extension Configuration { // MARK: Caching Configurations By Path (In-Memory) diff --git a/Source/SwiftLintFramework/Extensions/String+md5.swift b/Source/SwiftLintFramework/Extensions/String+md5.swift new file mode 100644 index 0000000000..0807b674e0 --- /dev/null +++ b/Source/SwiftLintFramework/Extensions/String+md5.swift @@ -0,0 +1,20 @@ +#if canImport(CommonCrypto) +import CommonCrypto +#else +import CryptoSwift +#endif +import Foundation + +#if canImport(CommonCrypto) +extension String { + internal func md5() -> String { + let context = UnsafeMutablePointer.allocate(capacity: 1) + var digest = [UInt8](repeating: 0, count: Int(CC_MD5_DIGEST_LENGTH)) + CC_MD5_Init(context) + CC_MD5_Update(context, self, CC_LONG(lengthOfBytes(using: .utf8))) + CC_MD5_Final(&digest, context) + context.deallocate() + return digest.reduce(into: "") { $0.append(String(format: "%02x", $1)) } + } +} +#endif diff --git a/Source/SwiftLintFramework/Reporters/CodeClimateReporter.swift b/Source/SwiftLintFramework/Reporters/CodeClimateReporter.swift index 61d199b3a1..1f1f176ffb 100644 --- a/Source/SwiftLintFramework/Reporters/CodeClimateReporter.swift +++ b/Source/SwiftLintFramework/Reporters/CodeClimateReporter.swift @@ -1,26 +1,7 @@ -#if canImport(CommonCrypto) -import CommonCrypto -#else -import CryptoSwift -#endif import Foundation import SourceKittenFramework -#if canImport(CommonCrypto) -private extension String { - func md5() -> String { - let context = UnsafeMutablePointer.allocate(capacity: 1) - var digest = [UInt8](repeating: 0, count: Int(CC_MD5_DIGEST_LENGTH)) - CC_MD5_Init(context) - CC_MD5_Update(context, self, CC_LONG(lengthOfBytes(using: .utf8))) - CC_MD5_Final(&digest, context) - context.deallocate() - return digest.reduce(into: "") { $0.append(String(format: "%02x", $1)) } - } -} -#endif - -/// Reports violations as a JSON array. +/// Reports violations as a JSON array in Code Climate format. public struct CodeClimateReporter: Reporter { // MARK: - Reporter Conformance