12345678910111213141516171819202122232425262728293031323334 |
- //
- // String+Sweeter.swift
- //
- // Created by Yonat Sharon on 2019-02-08.
- //
- import Foundation
- extension String {
- /// Sweeter: Separate CamelCase into capitalized words.
- /// E.g., "winterIsComing" -> "Winter Is Coming"
- public var unCamelCased: String {
- return replacingCamelCase(with: "$1 $2").capitalized
- }
- /// Sweeter: Change CamelCase into snake_case
- /// E.g., "winterIsComing" -> "winter_is_coming"
- public var camelToSnakeCased: String {
- return replacingCamelCase(with: "$1_$2").lowercased()
- }
- func replacingCamelCase(with template: String) -> String {
- return String.camelCaseWordBoundaryRegex
- .stringByReplacingMatches(in: self, range: NSRange(startIndex..., in: self), withTemplate: template)
- }
- static let camelCaseWordBoundaryRegex: NSRegularExpression = {
- do {
- return try NSRegularExpression(pattern: "([a-z])([A-Z])")
- } catch {
- fatalError(error.localizedDescription)
- }
- }()
- }
|