Sources/Tea/Extensions.swift (26 lines of code) (raw):
import Foundation
extension String {
private static let randomDict = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
func toBytes() -> [UInt8] {
[UInt8](self.utf8)
}
func jsonDecode() -> [String: AnyObject] {
let jsonData: Data = self.data(using: .utf8)!
guard let data = try? JSONSerialization.jsonObject(with: jsonData, options: .mutableContainers) as? [String: AnyObject] else {
return [String: AnyObject]()
}
return data
}
func urlEncode() -> String {
let unreserved = "*-._"
let allowedCharacterSet = NSMutableCharacterSet.alphanumeric()
allowedCharacterSet.addCharacters(in: unreserved)
allowedCharacterSet.addCharacters(in: " ")
var encoded = addingPercentEncoding(withAllowedCharacters: allowedCharacterSet as CharacterSet)
encoded = encoded?.replacingOccurrences(of: " ", with: "%20")
return encoded ?? ""
}
func isNumber() -> Bool {
!isEmpty && rangeOfCharacter(from: CharacterSet.decimalDigits.inverted) == nil
}
}