@@ -30,7 +30,11 @@ class PoliticalParty: Equatable {
30
30
name: " Democrat " ,
31
31
color: PoliticalParty . LIGHT_BLUE,
32
32
aliases: [ " Democrat " , " Democratic " , " Democratic Party " ] )
33
- static let nonpartisan = PoliticalParty ( name: " Nonpartisan " , color: . black)
33
+ static let nonpartisan = PoliticalParty (
34
+ name: " Nonpartisan " ,
35
+ color: . black,
36
+ aliases: [ " Nonpartisan " , " none " ] )
37
+ static let unknown = PoliticalParty ( name: " Unknown " , color: . black)
34
38
35
39
var name : String // The name to display
36
40
var image : UIImage // The default image to use
@@ -48,7 +52,7 @@ class PoliticalParty: Equatable {
48
52
style: . solid,
49
53
textColor: color,
50
54
size: PORTRAIT_SIZE)
51
- self . aliases = aliases
55
+ self . aliases = aliases. map { $0 . lowercased ( ) }
52
56
}
53
57
54
58
/// Determines the PoliticalParty given an alias for the party.
@@ -57,6 +61,7 @@ class PoliticalParty: Equatable {
57
61
///
58
62
/// - Returns: the PoliticalParty matching the given alias
59
63
static func determine( for alias: String ) -> PoliticalParty {
64
+ let alias = alias. lowercased ( )
60
65
if PoliticalParty . republican. aliases. contains ( alias) {
61
66
return PoliticalParty . republican
62
67
}
@@ -65,7 +70,11 @@ class PoliticalParty: Equatable {
65
70
return PoliticalParty . democratic
66
71
}
67
72
68
- return nonpartisan
73
+ if PoliticalParty . nonpartisan. aliases. contains ( alias) {
74
+ return PoliticalParty . nonpartisan
75
+ }
76
+
77
+ return PoliticalParty . unknown
69
78
}
70
79
71
80
/// Compares two political parties for equality
0 commit comments