Files
SwiftLint/Source/SwiftLintFramework/Rules/RuleConfigurations/NumberSeparatorConfiguration.swift
T
2018-11-19 09:51:12 -08:00

41 lines
1.5 KiB
Swift

public struct NumberSeparatorConfiguration: RuleConfiguration, Equatable {
private(set) var severityConfiguration = SeverityConfiguration(.warning)
private(set) var minimumLength: Int
private(set) var minimumFractionLength: Int?
public var consoleDescription: String {
let minimumFractionLengthDescription: String
if let minimumFractionLength = minimumFractionLength {
minimumFractionLengthDescription = ", minimum_fraction_length: \(minimumFractionLength)"
} else {
minimumFractionLengthDescription = ""
}
return severityConfiguration.consoleDescription
+ ", minimum_length: \(minimumLength)"
+ minimumFractionLengthDescription
}
public init(minimumLength: Int, minimumFractionLength: Int?) {
self.minimumLength = minimumLength
self.minimumFractionLength = minimumFractionLength
}
public mutating func apply(configuration: Any) throws {
guard let configuration = configuration as? [String: Any] else {
throw ConfigurationError.unknownConfiguration
}
if let minimumLength = configuration["minimum_length"] as? Int {
self.minimumLength = minimumLength
}
if let minimumFractionLength = configuration["minimum_fraction_length"] as? Int {
self.minimumFractionLength = minimumFractionLength
}
if let severityString = configuration["severity"] as? String {
try severityConfiguration.apply(configuration: severityString)
}
}
}