Files
SwiftLint/Source/SwiftLintFramework/Rules/RuleConfigurations/MinMaxLengthConfig.swift
T
2016-01-23 17:42:13 -08:00

45 lines
1.3 KiB
Swift

//
// MinMaxLengthConfig.swift
// SwiftLint
//
// Created by Scott Hoyt on 1/19/16.
// Copyright © 2016 Realm. All rights reserved.
//
import Foundation
public struct MinMaxLengthConfig: RuleConfiguration, Equatable {
var min: SeverityLevelConfig
var max: SeverityLevelConfig
init(minWarning: Int, minError: Int, maxWarning: Int, maxError: Int) {
min = SeverityLevelConfig(warning: minWarning, error: minError)
max = SeverityLevelConfig(warning: maxWarning, error: maxError)
}
public mutating func setConfiguration(config: AnyObject) throws {
if let configDict = config as? [String: AnyObject] {
if let minConfig = configDict["min"] {
try min.setConfiguration(minConfig)
}
if let maxConfig = configDict["max"] {
try max.setConfiguration(maxConfig)
}
} else {
throw ConfigurationError.UnknownConfiguration
}
}
public func isEqualTo(ruleConfiguration: RuleConfiguration) -> Bool {
if let ruleConfig = ruleConfiguration as? MinMaxLengthConfig {
return self == ruleConfig
}
return false
}
}
public func == (lhs: MinMaxLengthConfig, rhs: MinMaxLengthConfig) -> Bool {
return lhs.min == rhs.min &&
lhs.max == rhs.max
}