Files
SwiftLint/Source/SwiftLintFramework/Rules/RuleConfigurations/FileNameNoSpaceConfiguration.swift
T
JP SimardandGitHub 4bd7da32ea Reduce visibility of rules to be internal (#4533)
There's no reason to expose these publicly and this will make it nicer
to move to a new module outside of the core SwiftLint functionality.
2022-11-09 11:01:26 -05:00

28 lines
970 B
Swift

struct FileNameNoSpaceConfiguration: RuleConfiguration, Equatable {
var consoleDescription: String {
return "(severity) \(severity.consoleDescription), " +
"excluded: \(excluded.sorted())"
}
private(set) var severity: SeverityConfiguration
private(set) var excluded: Set<String>
init(severity: ViolationSeverity, excluded: [String] = []) {
self.severity = SeverityConfiguration(severity)
self.excluded = Set(excluded)
}
mutating func apply(configuration: Any) throws {
guard let configurationDict = configuration as? [String: Any] else {
throw ConfigurationError.unknownConfiguration
}
if let severityConfiguration = configurationDict["severity"] {
try severity.apply(configuration: severityConfiguration)
}
if let excluded = [String].array(of: configurationDict["excluded"]) {
self.excluded = Set(excluded)
}
}
}