Skip to content

Commit 0cd2919

Browse files
authored
Merge pull request #13 from jjotaum/jjotaum/release/0.3
Release 0.3
2 parents 4f83678 + 5c6cedb commit 0cd2919

7 files changed

Lines changed: 127 additions & 11 deletions

File tree

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
//
2+
// String+Formatters.swift
3+
// Chroma
4+
//
5+
// Created by Jota Uribe on 7/10/21.
6+
//
7+
8+
import Foundation
9+
10+
extension String {
11+
func lowercasingFirst() -> String {
12+
let lowercasedChar = first?.lowercased() ?? ""
13+
return String(lowercasedChar + dropFirst())
14+
}
15+
16+
func camelCased() -> String {
17+
var nameComponents = components(separatedBy: " ")
18+
guard var formattedName = nameComponents.first?.lowercasingFirst() else { return self }
19+
nameComponents.removeFirst()
20+
for nameComponent in nameComponents {
21+
formattedName += nameComponent.capitalized
22+
}
23+
return formattedName
24+
}
25+
26+
func removing(_ characterSet: CharacterSet) -> String {
27+
components(separatedBy: characterSet).joined()
28+
}
29+
}

Sources/ChromaLibrary/Platform.swift

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,13 @@ extension Platform {
3636
}
3737

3838
func colorVariable(name: String) -> String {
39+
let formattedName = name.camelCased().removing(.punctuationCharacters.union(.symbols))
40+
print(formattedName)
3941
switch self {
4042
case .iOS, .macOS:
41-
return " static var \(name): \(variableType) { return \(variableType)(named: \"\(name)\")! }"
43+
return " static var \(formattedName): \(variableType) { return \(variableType)(named: \"\(name)\")! }"
4244
case .swiftUI:
43-
return " static var \(name): \(variableType) { return \(variableType)(\"\(name)\") }"
45+
return " static var \(formattedName): \(variableType) { return \(variableType)(\"\(name)\") }"
4446
}
4547
}
4648

Tests/ChromaTests/FolderTests.swift

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,33 @@ final class FolderTests: XCTestCase {
77
let path = Bundle.module.bundlePath
88
let folder = try Folder(path: path)
99
let definitions = folder.colorDefinitions(for: .iOS)
10-
XCTAssertEqual(definitions.count, 2)
11-
XCTAssertEqual(definitions.sorted().first, " static var ExampleColor1: UIColor { return UIColor(named: \"ExampleColor1\")! }")
10+
let expectedResults = [" static var exampleColor1: UIColor { return UIColor(named: \"Example Color 1\")! }",
11+
" static var exampleColor2: UIColor { return UIColor(named: \"exampleColor2\")! }",
12+
" static var exampleColor3: UIColor { return UIColor(named: \"ExampleColor3\")! }",
13+
" static var exampleColor4: UIColor { return UIColor(named: \"ExampleColor4-\")! }"]
14+
XCTAssertEqual(definitions.sorted(), expectedResults)
1215
}
1316

1417
func testColorDefinitionsForMacOS() throws {
1518
let path = Bundle.module.bundlePath
1619
let folder = try Folder(path: path)
1720
let definitions = folder.colorDefinitions(for: .macOS)
18-
XCTAssertEqual(definitions.count, 2)
19-
XCTAssertEqual(definitions.sorted().first, " static var ExampleColor1: NSColor { return NSColor(named: \"ExampleColor1\")! }")
21+
let expectedResults = [" static var exampleColor1: NSColor { return NSColor(named: \"Example Color 1\")! }",
22+
" static var exampleColor2: NSColor { return NSColor(named: \"exampleColor2\")! }",
23+
" static var exampleColor3: NSColor { return NSColor(named: \"ExampleColor3\")! }",
24+
" static var exampleColor4: NSColor { return NSColor(named: \"ExampleColor4-\")! }"]
25+
XCTAssertEqual(definitions.sorted(), expectedResults)
2026
}
2127

2228
func testColorDefinitionsForSwiftUI() throws {
2329
let path = Bundle.module.bundlePath
2430
let folder = try Folder(path: path)
2531
let definitions = folder.colorDefinitions(for: .swiftUI)
26-
XCTAssertEqual(definitions.count, 2)
27-
XCTAssertEqual(definitions.sorted().first, " static var ExampleColor1: Color { return Color(\"ExampleColor1\") }")
32+
let expectedResults = [" static var exampleColor1: Color { return Color(\"Example Color 1\") }",
33+
" static var exampleColor2: Color { return Color(\"exampleColor2\") }",
34+
" static var exampleColor3: Color { return Color(\"ExampleColor3\") }",
35+
" static var exampleColor4: Color { return Color(\"ExampleColor4-\") }"]
36+
XCTAssertEqual(definitions.sorted(), expectedResults)
2837
}
2938

3039
static var allTests = [

Tests/ChromaTests/PlatformTests.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,17 @@ import Files
55
final class PlatformTests: XCTestCase {
66
func testColorVariableForiOS() throws {
77
let variable = Platform.iOS.colorVariable(name: "ExampleColor1")
8-
XCTAssertEqual(variable, " static var ExampleColor1: UIColor { return UIColor(named: \"ExampleColor1\")! }")
8+
XCTAssertEqual(variable, " static var exampleColor1: UIColor { return UIColor(named: \"ExampleColor1\")! }")
99
}
1010

1111
func testColorVariableForMacOS() throws {
1212
let variable = Platform.macOS.colorVariable(name: "ExampleColor1")
13-
XCTAssertEqual(variable, " static var ExampleColor1: NSColor { return NSColor(named: \"ExampleColor1\")! }")
13+
XCTAssertEqual(variable, " static var exampleColor1: NSColor { return NSColor(named: \"ExampleColor1\")! }")
1414
}
1515

1616
func testColorVariableForSwiftUI() throws {
1717
let variable = Platform.swiftUI.colorVariable(name: "ExampleColor1")
18-
XCTAssertEqual(variable, " static var ExampleColor1: Color { return Color(\"ExampleColor1\") }")
18+
XCTAssertEqual(variable, " static var exampleColor1: Color { return Color(\"ExampleColor1\") }")
1919
}
2020

2121
static var allTests = [

Tests/ChromaTests/Resources/Tests.xcassets/ExampleColor1.colorset/Contents.json renamed to Tests/ChromaTests/Resources/Tests.xcassets/Example Color 1.colorset/Contents.json

File renamed without changes.
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
{
2+
"colors" : [
3+
{
4+
"color" : {
5+
"color-space" : "srgb",
6+
"components" : {
7+
"alpha" : "1.000",
8+
"blue" : "0.000",
9+
"green" : "0.000",
10+
"red" : "0.000"
11+
}
12+
},
13+
"idiom" : "universal"
14+
},
15+
{
16+
"appearances" : [
17+
{
18+
"appearance" : "luminosity",
19+
"value" : "dark"
20+
}
21+
],
22+
"color" : {
23+
"color-space" : "srgb",
24+
"components" : {
25+
"alpha" : "1.000",
26+
"blue" : "1.000",
27+
"green" : "1.000",
28+
"red" : "1.000"
29+
}
30+
},
31+
"idiom" : "universal"
32+
}
33+
],
34+
"info" : {
35+
"author" : "xcode",
36+
"version" : 1
37+
}
38+
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
{
2+
"colors" : [
3+
{
4+
"color" : {
5+
"color-space" : "srgb",
6+
"components" : {
7+
"alpha" : "1.000",
8+
"blue" : "0.000",
9+
"green" : "0.000",
10+
"red" : "0.000"
11+
}
12+
},
13+
"idiom" : "universal"
14+
},
15+
{
16+
"appearances" : [
17+
{
18+
"appearance" : "luminosity",
19+
"value" : "dark"
20+
}
21+
],
22+
"color" : {
23+
"color-space" : "srgb",
24+
"components" : {
25+
"alpha" : "1.000",
26+
"blue" : "1.000",
27+
"green" : "1.000",
28+
"red" : "1.000"
29+
}
30+
},
31+
"idiom" : "universal"
32+
}
33+
],
34+
"info" : {
35+
"author" : "xcode",
36+
"version" : 1
37+
}
38+
}

0 commit comments

Comments
 (0)