@@ -156,23 +156,27 @@ func ~=(lhs: [String: String], rhs: [String: String]) -> Bool {
156156}
157157
158158/// Separate a trim a string by a separator
159- func separateBy( separator: String ) ( _ input: String ) -> [ String ] {
160- return input. componentsSeparatedByString ( separator) . map {
161- $0. stringByTrimmingCharactersInSet ( NSCharacterSet . whitespaceCharacterSet ( ) )
159+ func separateBy( separator: String ) -> ( String ) -> [ String ] {
160+ return { input in
161+ return input. componentsSeparatedByString ( separator) . map {
162+ $0. stringByTrimmingCharactersInSet ( NSCharacterSet . whitespaceCharacterSet ( ) )
163+ }
162164 }
163165}
164166
165167/// Split a string by a separator into two components
166- func split( separator: String ) ( _ input: String ) -> ( String , String ) {
167- let range = input. rangeOfString ( separator, options: NSStringCompareOptions ( rawValue: 0 ) , range: nil , locale: nil )
168+ func split( separator: String ) -> ( String ) -> ( String , String ) {
169+ return { input in
170+ let range = input. rangeOfString ( separator, options: NSStringCompareOptions ( rawValue: 0 ) , range: nil , locale: nil )
171+
172+ if let range = range {
173+ let lhs = input. substringToIndex ( range. startIndex)
174+ let rhs = input. substringFromIndex ( range. endIndex)
175+ return ( lhs, rhs)
176+ }
168177
169- if let range = range {
170- let lhs = input. substringToIndex ( range. startIndex)
171- let rhs = input. substringFromIndex ( range. endIndex)
172- return ( lhs, rhs)
178+ return ( input, " " )
173179 }
174-
175- return ( input, " " )
176180}
177181
178182/// Separate the first element in an array from the rest
@@ -186,10 +190,12 @@ func takeFirst(input: [String]) -> (String, ArraySlice<String>) {
186190}
187191
188192/// Trim a prefix and suffix from a string
189- func trim( lhs: Character , _ rhs: Character ) ( _ input: String ) -> String {
190- if input. hasPrefix ( " \( lhs) " ) && input. hasSuffix ( " \( rhs) " ) {
191- return input [ input. startIndex. successor ( ) ..< input. endIndex. predecessor ( ) ]
192- }
193+ func trim( lhs: Character , _ rhs: Character ) -> ( String ) -> String {
194+ return { input in
195+ if input. hasPrefix ( " \( lhs) " ) && input. hasSuffix ( " \( rhs) " ) {
196+ return input [ input. startIndex. successor ( ) ..< input. endIndex. predecessor ( ) ]
197+ }
193198
194- return input
199+ return input
200+ }
195201}
0 commit comments