Add command to generate Colors

This commit is contained in:
2021-12-20 16:28:23 +01:00
parent e2150059f7
commit e8545955f6
22 changed files with 1094 additions and 31 deletions

View File

@ -0,0 +1,64 @@
//
// Extensions.swift
//
//
// Created by Thibaut Schmitt on 13/12/2021.
//
import Foundation
// MARK: - String
public extension String {
func removeCharacters(from forbiddenChars: CharacterSet) -> String {
let passed = self.unicodeScalars.filter { !forbiddenChars.contains($0) }
return String(String.UnicodeScalarView(passed))
}
func removeCharacters(from: String) -> String {
return removeCharacters(from: CharacterSet(charactersIn: from))
}
func removeTrailingWhitespace() -> String {
var newString = self
while newString.last?.isWhitespace == true {
newString = String(newString.dropLast())
}
return newString
}
func colorComponent() -> (alpha: String, red: String, green: String, blue: String) {
var alpha: String = "FF"
var red: String
var green: String
var blue: String
var colorClean = self
.replacingOccurrences(of: "#", with: "")
.replacingOccurrences(of: "0x", with: "")
if colorClean.count == 8 {
alpha = String(colorClean.prefix(2))
colorClean = String(colorClean.dropFirst(2))
}
red = String(colorClean.prefix(2))
colorClean = String(colorClean.dropFirst(2))
green = String(colorClean.prefix(2))
colorClean = String(colorClean.dropFirst(2))
blue = String(colorClean.prefix(2))
return (alpha: alpha, red: red, green: green, blue: blue)
}
}
// MARK: - Sequence
extension Sequence where Iterator.Element: Hashable {
public func unique() -> [Iterator.Element] {
var seen: [Iterator.Element: Bool] = [:]
return self.filter { seen.updateValue(true, forKey: $0) == nil }
}
}