fastlane-plugin-wpmreleasetoolkit 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (31) hide show
  1. checksums.yaml +4 -4
  2. data/bin/drawText +1 -0
  3. data/ext/drawText/drawText Tests/DigitParsingTests.swift +21 -0
  4. data/ext/drawText/drawText Tests/ExtensionsTests.swift +5 -0
  5. data/ext/drawText/drawText Tests/Info.plist +22 -0
  6. data/ext/drawText/drawText Tests/StylesheetTests.swift +31 -0
  7. data/ext/drawText/drawText Tests/Test Cases/default-stylesheet.txt +10 -0
  8. data/ext/drawText/drawText Tests/Test Cases/external-styles-sample.css +3 -0
  9. data/ext/drawText/drawText Tests/Test Cases/external-styles-test.txt +13 -0
  10. data/ext/drawText/drawText Tests/Test Cases/large-text-block.txt +1 -0
  11. data/ext/drawText/drawText Tests/Test Cases/regular-text-block.txt +2 -0
  12. data/ext/drawText/drawText Tests/Test Cases/rtl-text-block.txt +2 -0
  13. data/ext/drawText/drawText Tests/Test Cases/text-size-adjustment-test.txt +10 -0
  14. data/ext/drawText/drawText Tests/TextImageTests.swift +99 -0
  15. data/ext/drawText/drawText Tests/drawText_Tests.swift +14 -0
  16. data/ext/drawText/drawText.xcodeproj/project.pbxproj +508 -0
  17. data/ext/drawText/drawText.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  18. data/ext/drawText/drawText.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  19. data/ext/drawText/drawText.xcodeproj/xcshareddata/xcschemes/drawText Tests.xcscheme +57 -0
  20. data/ext/drawText/drawText.xcodeproj/xcshareddata/xcschemes/drawText.xcscheme +109 -0
  21. data/ext/drawText/drawText/Assets/style.css +1 -0
  22. data/ext/drawText/drawText/CoreTextStack.swift +113 -0
  23. data/ext/drawText/drawText/Helpers/CommandLineHelpers.swift +36 -0
  24. data/ext/drawText/drawText/Helpers/Extensions.swift +27 -0
  25. data/ext/drawText/drawText/Helpers/FileSystemHelper.swift +24 -0
  26. data/ext/drawText/drawText/Stylesheet.swift +48 -0
  27. data/ext/drawText/drawText/TextImage.swift +100 -0
  28. data/ext/drawText/drawText/main.swift +61 -0
  29. data/ext/drawText/makefile.example +8 -0
  30. data/lib/fastlane/plugin/wpmreleasetoolkit/version.rb +1 -1
  31. metadata +41 -14
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5a164eee4bfa299744d0d3b099e606de22f670be3ac3a4762a130886673a8c0d
4
- data.tar.gz: f685eea8efef80e3252c24163e8bf735274bfb549f0ac5aa887b46c4d5512bef
3
+ metadata.gz: 22d749d3edd201c7a544486c77eee999cf5c2f4eb6232d575d3dbe7c2bca9371
4
+ data.tar.gz: 93bfa99fe6595eca9a27a0b900c2fe0bbd9ecaf4c116fd9de8acf8a02c7498fa
5
5
  SHA512:
6
- metadata.gz: be95ca7d3fa67df1349aa5c9ee3cff0c702cbd1b5523bc79e43ed2b3f48515011016cf4a76b2301d3f9d3e862575b2d3387d902a498d34d799b914cef51dddaf
7
- data.tar.gz: bc65cddafec303ad0676bef1b54301e643061b1a3f640535e7ab52e2a3d10df9d3cd63f85f41b7faa2cb2da3e8d5ad543336c1c93e5e009637d259e2905f89c5
6
+ metadata.gz: c73d585587a42656b6a0f39e60573a38bc73464c15ef20ddc02650e6fb0dca830277f92962ac2d97544ab59ecda388d1a2b31265e17976d846a0c251dbb7e720
7
+ data.tar.gz: 5a2afb8d0d5f8a835124ebf937be6e67f34686b7e44931e7d843b989c0daf2f69cb782bb530b2adaa23cff8952c5204687217ef4a46e21ae8bf48965963a959e
data/bin/drawText CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  require 'rake'
4
4
  require 'os'
5
+ require 'pathname'
5
6
 
6
7
  abort 'Fatal Error: `drawText` can only be run on macOS.' unless OS.mac?
7
8
 
@@ -0,0 +1,21 @@
1
+ import XCTest
2
+
3
+ class DigitParsingTests: XCTestCase {
4
+
5
+ func testThatParsingMixedContentWorks() {
6
+ XCTAssert("$10".digits == 10)
7
+ }
8
+
9
+ func testThatParsingUnmixedContentWorks() {
10
+ XCTAssert("10".digits == 10)
11
+ }
12
+
13
+ // Yes, this is kinda weird, but CSS + decimal numbers is generally a bad idea anyway
14
+ func testThatParsingDecimalContentWorks() {
15
+ XCTAssert("10.0".digits == 100)
16
+ }
17
+
18
+ func testThatParsingNonDigitContentWorks() {
19
+ XCTAssert("Foo".digits == nil)
20
+ }
21
+ }
@@ -0,0 +1,5 @@
1
+ import XCTest
2
+
3
+ class ExtensionsTests: DrawTextTest {
4
+
5
+ }
@@ -0,0 +1,22 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>CFBundleDevelopmentRegion</key>
6
+ <string>$(DEVELOPMENT_LANGUAGE)</string>
7
+ <key>CFBundleExecutable</key>
8
+ <string>$(EXECUTABLE_NAME)</string>
9
+ <key>CFBundleIdentifier</key>
10
+ <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
11
+ <key>CFBundleInfoDictionaryVersion</key>
12
+ <string>6.0</string>
13
+ <key>CFBundleName</key>
14
+ <string>$(PRODUCT_NAME)</string>
15
+ <key>CFBundlePackageType</key>
16
+ <string>BNDL</string>
17
+ <key>CFBundleShortVersionString</key>
18
+ <string>1.0</string>
19
+ <key>CFBundleVersion</key>
20
+ <string>1</string>
21
+ </dict>
22
+ </plist>
@@ -0,0 +1,31 @@
1
+ import XCTest
2
+
3
+ class StylesheetTests: DrawTextTest {
4
+
5
+ func testThatDefaultStylesheetProducesValidOutput() {
6
+ let stylesheet = Stylesheet(color: "black", fontSize: 10)
7
+ XCTAssert(stylesheet.contents == getTestCase(named: "default-stylesheet"))
8
+ }
9
+
10
+ func testThatStylesheetCanChangeFontSizes() {
11
+ var stylesheet = Stylesheet(color: "black", fontSize: 10)
12
+ stylesheet.fontSize -= 1
13
+ XCTAssert(stylesheet.contents == getTestCase(named: "text-size-adjustment-test"))
14
+ }
15
+
16
+ func testThatStylesheetExternalStylesCanBeUpdated() {
17
+ var stylesheet = Stylesheet(color: "black", fontSize: 10)
18
+ stylesheet.updateWith(filePath: getTestCaseURLForAsset(named: "external-styles-sample", extension: "css").path)
19
+ XCTAssert(stylesheet.contents == getTestCase(named: "external-styles-test"))
20
+ }
21
+
22
+ func testThatUpdatingExternalStylesWithAnInvalidPathProducesAValidStylesheet() {
23
+ var stylesheet = Stylesheet(color: "black", fontSize: 10)
24
+ stylesheet.updateWith(filePath: "/this-is-a-fake-path-that-should-never-exist")
25
+
26
+ debugPrint(stylesheet.contents, getTestCase(named: "default-stylesheet"))
27
+
28
+
29
+ XCTAssert(stylesheet.contents == getTestCase(named: "default-stylesheet"))
30
+ }
31
+ }
@@ -0,0 +1,10 @@
1
+ <style>
2
+ * {
3
+ padding: 0;
4
+ margin: 0;
5
+ color: black;
6
+ font-size: 10px;
7
+ }
8
+
9
+ /* EXTERNAL STYLES */
10
+ </style>
@@ -0,0 +1,3 @@
1
+ strong {
2
+ font-wight: bold;
3
+ }
@@ -0,0 +1,13 @@
1
+ <style>
2
+ * {
3
+ padding: 0;
4
+ margin: 0;
5
+ color: black;
6
+ font-size: 10px;
7
+ }
8
+
9
+ strong {
10
+ font-wight: bold;
11
+ }
12
+
13
+ </style>
@@ -0,0 +1 @@
1
+ You <em>can</em> <a href="google.com">override</a> the <span style="color: orange;">pasteboard</span> <i>representation</i> to be "plain text" <b>only</b> in order to remove the <span class="styled">style info</span> and thus have it behave <strong>like</strong> the "Paste and Match Style" <u>command</u> from the "Edit" menu <s>automatically</s>.
@@ -0,0 +1,2 @@
1
+ <strong>Create</strong> beautiful
2
+ posts and pages
@@ -0,0 +1,2 @@
1
+ <strong>إنشاء</strong> مقالات
2
+ وصفحات جميلة
@@ -0,0 +1,10 @@
1
+ <style>
2
+ * {
3
+ padding: 0;
4
+ margin: 0;
5
+ color: black;
6
+ font-size: 9px;
7
+ }
8
+
9
+ /* EXTERNAL STYLES */
10
+ </style>
@@ -0,0 +1,99 @@
1
+ import XCTest
2
+
3
+ class TextImageTests: DrawTextTest {
4
+
5
+ func testThatInitializingWithAValidFilePathReadsTheFileCorrectly() {
6
+ let path = getTestCaseURLForAsset(named: "regular-text-block").path
7
+ let image = try! TextImage(string: path)
8
+
9
+ XCTAssertEqual(image.html, getTestCase(named: "regular-text-block"))
10
+ }
11
+
12
+ func testDrawingOversizedSingleLineText() {
13
+ let string = "playstoreres/metadata/source/play_store_screenshot_7.html"
14
+ try! TextImage(string: string)
15
+ .applying(fontSize: 140)
16
+ .draw(toFileNamed: "\(#function).png")
17
+ }
18
+
19
+ func testDrawingRealText() {
20
+
21
+ regularTextBlock()
22
+ .draw(toFileNamed: "\(#function).png")
23
+ }
24
+
25
+ func testDrawingLongText() {
26
+
27
+ let string = getTestCase(named: "large-text-block")
28
+ try! TextImage(string: string)
29
+ .applying(fontSize: 140)
30
+ .draw(toFileNamed: "\(#function).png")
31
+ }
32
+
33
+ func testDrawingCenteredText() {
34
+
35
+ regularTextBlock()
36
+ .applying(fontSize: 100)
37
+ .applying(alignment: .center)
38
+ .draw(toFileNamed: "\(#function).png")
39
+ }
40
+
41
+ func testDrawingRTLLanguages() {
42
+
43
+ let string = getTestCase(named: "rtl-text-block")
44
+ try! TextImage(string: string)
45
+ .applying(fontSize: 100)
46
+ .applying(alignment: .center)
47
+ .draw(toFileNamed: "\(#function).png")
48
+ }
49
+
50
+
51
+ private func regularTextBlock() -> TextImage {
52
+ let string = getTestCase(named: "regular-text-block")
53
+ return try! TextImage(string: string)
54
+ .applying(fontSize: 100) // use a sensible default font size
55
+ }
56
+ }
57
+
58
+ fileprivate extension TextImage {
59
+ func applying(styleRule rule: String) -> TextImage {
60
+ self.stylesheet.externalStyles = """
61
+ *{
62
+ \(rule)
63
+ }
64
+ """
65
+
66
+ return self
67
+ }
68
+
69
+ func applying(fontSize size: Int) -> TextImage {
70
+ self.fontSize = size
71
+ return self
72
+ }
73
+
74
+ func applying(alignment: NSTextAlignment) -> TextImage {
75
+ self.alignment = alignment
76
+ return self
77
+ }
78
+
79
+ @discardableResult
80
+ func draw(toFileNamed fileName: String) -> TextImage {
81
+ let output = try! self.draw(inSize: CGSize(width: 500, height: 500))!
82
+
83
+ let outputDirectory = String(packageRootPath + "/test-output/")
84
+
85
+ File.write(image: output, toFileAtPath: outputDirectory + fileName)
86
+
87
+ return self
88
+ }
89
+
90
+ var packageRootPath: String {
91
+ let packageRootPath = URL(fileURLWithPath: #file)
92
+ .pathComponents
93
+ .prefix(while: { $0 != "drawText Tests" })
94
+ .joined(separator: "/")
95
+ .dropFirst()
96
+
97
+ return String(packageRootPath)
98
+ }
99
+ }
@@ -0,0 +1,14 @@
1
+ import XCTest
2
+
3
+ class DrawTextTest: XCTestCase {
4
+
5
+ internal func getTestCase(named name: String) -> String {
6
+ let url = getTestCaseURLForAsset(named: name)
7
+ return try! String(contentsOf: url)
8
+ .trimmingCharacters(in: .whitespacesAndNewlines)
9
+ }
10
+
11
+ internal func getTestCaseURLForAsset(named name: String, extension: String = "txt") -> URL {
12
+ return Bundle(for: self.classForCoder).url(forResource: name, withExtension: `extension`)!
13
+ }
14
+ }
@@ -0,0 +1,508 @@
1
+ // !$*UTF8*$!
2
+ {
3
+ archiveVersion = 1;
4
+ classes = {
5
+ };
6
+ objectVersion = 50;
7
+ objects = {
8
+
9
+ /* Begin PBXBuildFile section */
10
+ F907EA7322F3736E00196382 /* drawText_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F907EA7222F3736E00196382 /* drawText_Tests.swift */; };
11
+ F907EA7822F3738700196382 /* TextImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = F99B0BA522F24403002851D8 /* TextImage.swift */; };
12
+ F907EA7922F3738700196382 /* Stylesheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = F99B0BAB22F24629002851D8 /* Stylesheet.swift */; };
13
+ F907EA7A22F3738B00196382 /* CommandLineHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = F99B0BA322F2434E002851D8 /* CommandLineHelpers.swift */; };
14
+ F907EA7B22F3738B00196382 /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F99B0BAD22F24E81002851D8 /* Extensions.swift */; };
15
+ F907EA7E22F3742900196382 /* text-size-adjustment-test.txt in Resources */ = {isa = PBXBuildFile; fileRef = F907EA7D22F3742900196382 /* text-size-adjustment-test.txt */; };
16
+ F907EA8122F375BD00196382 /* external-styles-sample.css in Resources */ = {isa = PBXBuildFile; fileRef = F907EA8022F375BD00196382 /* external-styles-sample.css */; };
17
+ F907EA8222F3766D00196382 /* default-stylesheet.txt in Resources */ = {isa = PBXBuildFile; fileRef = F907EA7F22F3757A00196382 /* default-stylesheet.txt */; };
18
+ F907EA8422F3771200196382 /* external-styles-test.txt in Resources */ = {isa = PBXBuildFile; fileRef = F907EA8322F376F700196382 /* external-styles-test.txt */; };
19
+ F907EA8622F377D300196382 /* StylesheetTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F907EA8522F377D300196382 /* StylesheetTests.swift */; };
20
+ F907EA8822F3780B00196382 /* DigitParsingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F907EA8722F3780B00196382 /* DigitParsingTests.swift */; };
21
+ F907EA8A22F38F8B00196382 /* FileSystemHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = F907EA8922F38F8B00196382 /* FileSystemHelper.swift */; };
22
+ F99B0B9C22F24329002851D8 /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = F99B0B9B22F24329002851D8 /* main.swift */; };
23
+ F99B0BA422F2434E002851D8 /* CommandLineHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = F99B0BA322F2434E002851D8 /* CommandLineHelpers.swift */; };
24
+ F99B0BA622F24403002851D8 /* TextImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = F99B0BA522F24403002851D8 /* TextImage.swift */; };
25
+ F99B0BAC22F24629002851D8 /* Stylesheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = F99B0BAB22F24629002851D8 /* Stylesheet.swift */; };
26
+ F99B0BAE22F24E81002851D8 /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F99B0BAD22F24E81002851D8 /* Extensions.swift */; };
27
+ F9AE76F222F39664006C0FEB /* ExtensionsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9AE76F122F39664006C0FEB /* ExtensionsTests.swift */; };
28
+ F9C0B31D22F3F29300B5DDD2 /* FileSystemHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = F907EA8922F38F8B00196382 /* FileSystemHelper.swift */; };
29
+ F9C0B31F22F3F2EE00B5DDD2 /* CoreTextStack.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9C0B31E22F3F2EE00B5DDD2 /* CoreTextStack.swift */; };
30
+ F9C0B32022F3F3CE00B5DDD2 /* CoreTextStack.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9C0B31E22F3F2EE00B5DDD2 /* CoreTextStack.swift */; };
31
+ F9C0B32222F4A7BB00B5DDD2 /* large-text-block.txt in Resources */ = {isa = PBXBuildFile; fileRef = F9C0B32122F4A7BB00B5DDD2 /* large-text-block.txt */; };
32
+ F9C0B32422F4A7DC00B5DDD2 /* regular-text-block.txt in Resources */ = {isa = PBXBuildFile; fileRef = F9C0B32322F4A7DC00B5DDD2 /* regular-text-block.txt */; };
33
+ F9C0B32822F4A87A00B5DDD2 /* TextImageTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9C0B32722F4A87A00B5DDD2 /* TextImageTests.swift */; };
34
+ F9C0B32E22F4D70200B5DDD2 /* rtl-text-block.txt in Resources */ = {isa = PBXBuildFile; fileRef = F9C0B32A22F4B53C00B5DDD2 /* rtl-text-block.txt */; };
35
+ /* End PBXBuildFile section */
36
+
37
+ /* Begin PBXCopyFilesBuildPhase section */
38
+ F99B0B9622F24329002851D8 /* CopyFiles */ = {
39
+ isa = PBXCopyFilesBuildPhase;
40
+ buildActionMask = 2147483647;
41
+ dstPath = /usr/share/man/man1/;
42
+ dstSubfolderSpec = 0;
43
+ files = (
44
+ );
45
+ runOnlyForDeploymentPostprocessing = 1;
46
+ };
47
+ /* End PBXCopyFilesBuildPhase section */
48
+
49
+ /* Begin PBXFileReference section */
50
+ F907EA7022F3736E00196382 /* drawText Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "drawText Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
51
+ F907EA7222F3736E00196382 /* drawText_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = drawText_Tests.swift; sourceTree = "<group>"; };
52
+ F907EA7422F3736E00196382 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
53
+ F907EA7D22F3742900196382 /* text-size-adjustment-test.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = "text-size-adjustment-test.txt"; sourceTree = "<group>"; };
54
+ F907EA7F22F3757A00196382 /* default-stylesheet.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = "default-stylesheet.txt"; sourceTree = "<group>"; };
55
+ F907EA8022F375BD00196382 /* external-styles-sample.css */ = {isa = PBXFileReference; lastKnownFileType = text.css; path = "external-styles-sample.css"; sourceTree = "<group>"; };
56
+ F907EA8322F376F700196382 /* external-styles-test.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = "external-styles-test.txt"; sourceTree = "<group>"; };
57
+ F907EA8522F377D300196382 /* StylesheetTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StylesheetTests.swift; sourceTree = "<group>"; };
58
+ F907EA8722F3780B00196382 /* DigitParsingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DigitParsingTests.swift; sourceTree = "<group>"; };
59
+ F907EA8922F38F8B00196382 /* FileSystemHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileSystemHelper.swift; sourceTree = "<group>"; };
60
+ F99B0B9822F24329002851D8 /* drawText */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = drawText; sourceTree = BUILT_PRODUCTS_DIR; };
61
+ F99B0B9B22F24329002851D8 /* main.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = main.swift; sourceTree = "<group>"; };
62
+ F99B0BA322F2434E002851D8 /* CommandLineHelpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommandLineHelpers.swift; sourceTree = "<group>"; };
63
+ F99B0BA522F24403002851D8 /* TextImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextImage.swift; sourceTree = "<group>"; };
64
+ F99B0BAA22F245FF002851D8 /* style.css */ = {isa = PBXFileReference; lastKnownFileType = text.css; path = style.css; sourceTree = "<group>"; };
65
+ F99B0BAB22F24629002851D8 /* Stylesheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Stylesheet.swift; sourceTree = "<group>"; };
66
+ F99B0BAD22F24E81002851D8 /* Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Extensions.swift; sourceTree = "<group>"; };
67
+ F9AE76F122F39664006C0FEB /* ExtensionsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExtensionsTests.swift; sourceTree = "<group>"; };
68
+ F9C0B31E22F3F2EE00B5DDD2 /* CoreTextStack.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoreTextStack.swift; sourceTree = "<group>"; };
69
+ F9C0B32122F4A7BB00B5DDD2 /* large-text-block.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = "large-text-block.txt"; sourceTree = "<group>"; };
70
+ F9C0B32322F4A7DC00B5DDD2 /* regular-text-block.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = "regular-text-block.txt"; sourceTree = "<group>"; };
71
+ F9C0B32722F4A87A00B5DDD2 /* TextImageTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextImageTests.swift; sourceTree = "<group>"; };
72
+ F9C0B32A22F4B53C00B5DDD2 /* rtl-text-block.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = "rtl-text-block.txt"; sourceTree = "<group>"; };
73
+ /* End PBXFileReference section */
74
+
75
+ /* Begin PBXFrameworksBuildPhase section */
76
+ F907EA6D22F3736E00196382 /* Frameworks */ = {
77
+ isa = PBXFrameworksBuildPhase;
78
+ buildActionMask = 2147483647;
79
+ files = (
80
+ );
81
+ runOnlyForDeploymentPostprocessing = 0;
82
+ };
83
+ F99B0B9522F24329002851D8 /* Frameworks */ = {
84
+ isa = PBXFrameworksBuildPhase;
85
+ buildActionMask = 2147483647;
86
+ files = (
87
+ );
88
+ runOnlyForDeploymentPostprocessing = 0;
89
+ };
90
+ /* End PBXFrameworksBuildPhase section */
91
+
92
+ /* Begin PBXGroup section */
93
+ F907EA7122F3736E00196382 /* drawText Tests */ = {
94
+ isa = PBXGroup;
95
+ children = (
96
+ F907EA7222F3736E00196382 /* drawText_Tests.swift */,
97
+ F9C0B32722F4A87A00B5DDD2 /* TextImageTests.swift */,
98
+ F907EA8522F377D300196382 /* StylesheetTests.swift */,
99
+ F9AE76F122F39664006C0FEB /* ExtensionsTests.swift */,
100
+ F907EA8722F3780B00196382 /* DigitParsingTests.swift */,
101
+ F907EA7422F3736E00196382 /* Info.plist */,
102
+ F907EA7C22F3740F00196382 /* Test Cases */,
103
+ );
104
+ path = "drawText Tests";
105
+ sourceTree = "<group>";
106
+ };
107
+ F907EA7C22F3740F00196382 /* Test Cases */ = {
108
+ isa = PBXGroup;
109
+ children = (
110
+ F907EA7F22F3757A00196382 /* default-stylesheet.txt */,
111
+ F907EA8322F376F700196382 /* external-styles-test.txt */,
112
+ F907EA7D22F3742900196382 /* text-size-adjustment-test.txt */,
113
+ F907EA8022F375BD00196382 /* external-styles-sample.css */,
114
+ F9C0B32122F4A7BB00B5DDD2 /* large-text-block.txt */,
115
+ F9C0B32A22F4B53C00B5DDD2 /* rtl-text-block.txt */,
116
+ F9C0B32322F4A7DC00B5DDD2 /* regular-text-block.txt */,
117
+ );
118
+ path = "Test Cases";
119
+ sourceTree = "<group>";
120
+ };
121
+ F99B0B8F22F24329002851D8 = {
122
+ isa = PBXGroup;
123
+ children = (
124
+ F99B0B9A22F24329002851D8 /* drawText */,
125
+ F907EA7122F3736E00196382 /* drawText Tests */,
126
+ F99B0B9922F24329002851D8 /* Products */,
127
+ );
128
+ sourceTree = "<group>";
129
+ };
130
+ F99B0B9922F24329002851D8 /* Products */ = {
131
+ isa = PBXGroup;
132
+ children = (
133
+ F99B0B9822F24329002851D8 /* drawText */,
134
+ F907EA7022F3736E00196382 /* drawText Tests.xctest */,
135
+ );
136
+ name = Products;
137
+ sourceTree = "<group>";
138
+ };
139
+ F99B0B9A22F24329002851D8 /* drawText */ = {
140
+ isa = PBXGroup;
141
+ children = (
142
+ F99B0B9B22F24329002851D8 /* main.swift */,
143
+ F99B0BA522F24403002851D8 /* TextImage.swift */,
144
+ F99B0BAB22F24629002851D8 /* Stylesheet.swift */,
145
+ F9C0B31E22F3F2EE00B5DDD2 /* CoreTextStack.swift */,
146
+ F99B0BA222F2433E002851D8 /* Helpers */,
147
+ F99B0BA922F245EC002851D8 /* Assets */,
148
+ );
149
+ path = drawText;
150
+ sourceTree = "<group>";
151
+ };
152
+ F99B0BA222F2433E002851D8 /* Helpers */ = {
153
+ isa = PBXGroup;
154
+ children = (
155
+ F99B0BA322F2434E002851D8 /* CommandLineHelpers.swift */,
156
+ F99B0BAD22F24E81002851D8 /* Extensions.swift */,
157
+ F907EA8922F38F8B00196382 /* FileSystemHelper.swift */,
158
+ );
159
+ path = Helpers;
160
+ sourceTree = "<group>";
161
+ };
162
+ F99B0BA922F245EC002851D8 /* Assets */ = {
163
+ isa = PBXGroup;
164
+ children = (
165
+ F99B0BAA22F245FF002851D8 /* style.css */,
166
+ );
167
+ path = Assets;
168
+ sourceTree = "<group>";
169
+ };
170
+ /* End PBXGroup section */
171
+
172
+ /* Begin PBXNativeTarget section */
173
+ F907EA6F22F3736E00196382 /* drawText Tests */ = {
174
+ isa = PBXNativeTarget;
175
+ buildConfigurationList = F907EA7722F3736E00196382 /* Build configuration list for PBXNativeTarget "drawText Tests" */;
176
+ buildPhases = (
177
+ F907EA6C22F3736E00196382 /* Sources */,
178
+ F907EA6D22F3736E00196382 /* Frameworks */,
179
+ F907EA6E22F3736E00196382 /* Resources */,
180
+ );
181
+ buildRules = (
182
+ );
183
+ dependencies = (
184
+ );
185
+ name = "drawText Tests";
186
+ productName = "drawText Tests";
187
+ productReference = F907EA7022F3736E00196382 /* drawText Tests.xctest */;
188
+ productType = "com.apple.product-type.bundle.unit-test";
189
+ };
190
+ F99B0B9722F24329002851D8 /* drawText */ = {
191
+ isa = PBXNativeTarget;
192
+ buildConfigurationList = F99B0B9F22F24329002851D8 /* Build configuration list for PBXNativeTarget "drawText" */;
193
+ buildPhases = (
194
+ F99B0B9422F24329002851D8 /* Sources */,
195
+ F99B0B9522F24329002851D8 /* Frameworks */,
196
+ F99B0B9622F24329002851D8 /* CopyFiles */,
197
+ );
198
+ buildRules = (
199
+ );
200
+ dependencies = (
201
+ );
202
+ name = drawText;
203
+ productName = drawText;
204
+ productReference = F99B0B9822F24329002851D8 /* drawText */;
205
+ productType = "com.apple.product-type.tool";
206
+ };
207
+ /* End PBXNativeTarget section */
208
+
209
+ /* Begin PBXProject section */
210
+ F99B0B9022F24329002851D8 /* Project object */ = {
211
+ isa = PBXProject;
212
+ attributes = {
213
+ LastSwiftUpdateCheck = 1030;
214
+ LastUpgradeCheck = 1030;
215
+ ORGANIZATIONNAME = Automattic;
216
+ TargetAttributes = {
217
+ F907EA6F22F3736E00196382 = {
218
+ CreatedOnToolsVersion = 10.3;
219
+ };
220
+ F99B0B9722F24329002851D8 = {
221
+ CreatedOnToolsVersion = 10.3;
222
+ };
223
+ };
224
+ };
225
+ buildConfigurationList = F99B0B9322F24329002851D8 /* Build configuration list for PBXProject "drawText" */;
226
+ compatibilityVersion = "Xcode 9.3";
227
+ developmentRegion = en;
228
+ hasScannedForEncodings = 0;
229
+ knownRegions = (
230
+ en,
231
+ );
232
+ mainGroup = F99B0B8F22F24329002851D8;
233
+ productRefGroup = F99B0B9922F24329002851D8 /* Products */;
234
+ projectDirPath = "";
235
+ projectRoot = "";
236
+ targets = (
237
+ F99B0B9722F24329002851D8 /* drawText */,
238
+ F907EA6F22F3736E00196382 /* drawText Tests */,
239
+ );
240
+ };
241
+ /* End PBXProject section */
242
+
243
+ /* Begin PBXResourcesBuildPhase section */
244
+ F907EA6E22F3736E00196382 /* Resources */ = {
245
+ isa = PBXResourcesBuildPhase;
246
+ buildActionMask = 2147483647;
247
+ files = (
248
+ F9C0B32222F4A7BB00B5DDD2 /* large-text-block.txt in Resources */,
249
+ F907EA8122F375BD00196382 /* external-styles-sample.css in Resources */,
250
+ F907EA8222F3766D00196382 /* default-stylesheet.txt in Resources */,
251
+ F907EA7E22F3742900196382 /* text-size-adjustment-test.txt in Resources */,
252
+ F9C0B32E22F4D70200B5DDD2 /* rtl-text-block.txt in Resources */,
253
+ F9C0B32422F4A7DC00B5DDD2 /* regular-text-block.txt in Resources */,
254
+ F907EA8422F3771200196382 /* external-styles-test.txt in Resources */,
255
+ );
256
+ runOnlyForDeploymentPostprocessing = 0;
257
+ };
258
+ /* End PBXResourcesBuildPhase section */
259
+
260
+ /* Begin PBXSourcesBuildPhase section */
261
+ F907EA6C22F3736E00196382 /* Sources */ = {
262
+ isa = PBXSourcesBuildPhase;
263
+ buildActionMask = 2147483647;
264
+ files = (
265
+ F907EA7B22F3738B00196382 /* Extensions.swift in Sources */,
266
+ F9C0B32822F4A87A00B5DDD2 /* TextImageTests.swift in Sources */,
267
+ F907EA8622F377D300196382 /* StylesheetTests.swift in Sources */,
268
+ F907EA7822F3738700196382 /* TextImage.swift in Sources */,
269
+ F907EA8822F3780B00196382 /* DigitParsingTests.swift in Sources */,
270
+ F9C0B32022F3F3CE00B5DDD2 /* CoreTextStack.swift in Sources */,
271
+ F907EA7A22F3738B00196382 /* CommandLineHelpers.swift in Sources */,
272
+ F9AE76F222F39664006C0FEB /* ExtensionsTests.swift in Sources */,
273
+ F9C0B31D22F3F29300B5DDD2 /* FileSystemHelper.swift in Sources */,
274
+ F907EA7322F3736E00196382 /* drawText_Tests.swift in Sources */,
275
+ F907EA7922F3738700196382 /* Stylesheet.swift in Sources */,
276
+ );
277
+ runOnlyForDeploymentPostprocessing = 0;
278
+ };
279
+ F99B0B9422F24329002851D8 /* Sources */ = {
280
+ isa = PBXSourcesBuildPhase;
281
+ buildActionMask = 2147483647;
282
+ files = (
283
+ F907EA8A22F38F8B00196382 /* FileSystemHelper.swift in Sources */,
284
+ F9C0B31F22F3F2EE00B5DDD2 /* CoreTextStack.swift in Sources */,
285
+ F99B0BAE22F24E81002851D8 /* Extensions.swift in Sources */,
286
+ F99B0B9C22F24329002851D8 /* main.swift in Sources */,
287
+ F99B0BAC22F24629002851D8 /* Stylesheet.swift in Sources */,
288
+ F99B0BA622F24403002851D8 /* TextImage.swift in Sources */,
289
+ F99B0BA422F2434E002851D8 /* CommandLineHelpers.swift in Sources */,
290
+ );
291
+ runOnlyForDeploymentPostprocessing = 0;
292
+ };
293
+ /* End PBXSourcesBuildPhase section */
294
+
295
+ /* Begin XCBuildConfiguration section */
296
+ F907EA7522F3736E00196382 /* Debug */ = {
297
+ isa = XCBuildConfiguration;
298
+ buildSettings = {
299
+ CODE_SIGN_IDENTITY = "-";
300
+ CODE_SIGN_STYLE = Manual;
301
+ COMBINE_HIDPI_IMAGES = YES;
302
+ DEVELOPMENT_TEAM = "";
303
+ INFOPLIST_FILE = "drawText Tests/Info.plist";
304
+ LD_RUNPATH_SEARCH_PATHS = (
305
+ "$(inherited)",
306
+ "@executable_path/../Frameworks",
307
+ "@loader_path/../Frameworks",
308
+ );
309
+ PRODUCT_BUNDLE_IDENTIFIER = "com.automattic.drawText-Tests";
310
+ PRODUCT_NAME = "$(TARGET_NAME)";
311
+ PROVISIONING_PROFILE_SPECIFIER = "";
312
+ SWIFT_VERSION = 5.0;
313
+ };
314
+ name = Debug;
315
+ };
316
+ F907EA7622F3736E00196382 /* Release */ = {
317
+ isa = XCBuildConfiguration;
318
+ buildSettings = {
319
+ CODE_SIGN_IDENTITY = "-";
320
+ CODE_SIGN_STYLE = Manual;
321
+ COMBINE_HIDPI_IMAGES = YES;
322
+ DEVELOPMENT_TEAM = "";
323
+ INFOPLIST_FILE = "drawText Tests/Info.plist";
324
+ LD_RUNPATH_SEARCH_PATHS = (
325
+ "$(inherited)",
326
+ "@executable_path/../Frameworks",
327
+ "@loader_path/../Frameworks",
328
+ );
329
+ PRODUCT_BUNDLE_IDENTIFIER = "com.automattic.drawText-Tests";
330
+ PRODUCT_NAME = "$(TARGET_NAME)";
331
+ PROVISIONING_PROFILE_SPECIFIER = "";
332
+ SWIFT_VERSION = 5.0;
333
+ };
334
+ name = Release;
335
+ };
336
+ F99B0B9D22F24329002851D8 /* Debug */ = {
337
+ isa = XCBuildConfiguration;
338
+ buildSettings = {
339
+ ALWAYS_SEARCH_USER_PATHS = NO;
340
+ CLANG_ANALYZER_NONNULL = YES;
341
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
342
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
343
+ CLANG_CXX_LIBRARY = "libc++";
344
+ CLANG_ENABLE_MODULES = YES;
345
+ CLANG_ENABLE_OBJC_ARC = YES;
346
+ CLANG_ENABLE_OBJC_WEAK = YES;
347
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
348
+ CLANG_WARN_BOOL_CONVERSION = YES;
349
+ CLANG_WARN_COMMA = YES;
350
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
351
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
352
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
353
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
354
+ CLANG_WARN_EMPTY_BODY = YES;
355
+ CLANG_WARN_ENUM_CONVERSION = YES;
356
+ CLANG_WARN_INFINITE_RECURSION = YES;
357
+ CLANG_WARN_INT_CONVERSION = YES;
358
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
359
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
360
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
361
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
362
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
363
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
364
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
365
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
366
+ CLANG_WARN_UNREACHABLE_CODE = YES;
367
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
368
+ CODE_SIGN_IDENTITY = "Mac Developer";
369
+ COPY_PHASE_STRIP = NO;
370
+ DEBUG_INFORMATION_FORMAT = dwarf;
371
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
372
+ ENABLE_TESTABILITY = YES;
373
+ GCC_C_LANGUAGE_STANDARD = gnu11;
374
+ GCC_DYNAMIC_NO_PIC = NO;
375
+ GCC_NO_COMMON_BLOCKS = YES;
376
+ GCC_OPTIMIZATION_LEVEL = 0;
377
+ GCC_PREPROCESSOR_DEFINITIONS = (
378
+ "DEBUG=1",
379
+ "$(inherited)",
380
+ );
381
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
382
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
383
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
384
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
385
+ GCC_WARN_UNUSED_FUNCTION = YES;
386
+ GCC_WARN_UNUSED_VARIABLE = YES;
387
+ MACOSX_DEPLOYMENT_TARGET = 10.14;
388
+ MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
389
+ MTL_FAST_MATH = YES;
390
+ ONLY_ACTIVE_ARCH = YES;
391
+ SDKROOT = macosx;
392
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
393
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
394
+ };
395
+ name = Debug;
396
+ };
397
+ F99B0B9E22F24329002851D8 /* Release */ = {
398
+ isa = XCBuildConfiguration;
399
+ buildSettings = {
400
+ ALWAYS_SEARCH_USER_PATHS = NO;
401
+ CLANG_ANALYZER_NONNULL = YES;
402
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
403
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
404
+ CLANG_CXX_LIBRARY = "libc++";
405
+ CLANG_ENABLE_MODULES = YES;
406
+ CLANG_ENABLE_OBJC_ARC = YES;
407
+ CLANG_ENABLE_OBJC_WEAK = YES;
408
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
409
+ CLANG_WARN_BOOL_CONVERSION = YES;
410
+ CLANG_WARN_COMMA = YES;
411
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
412
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
413
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
414
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
415
+ CLANG_WARN_EMPTY_BODY = YES;
416
+ CLANG_WARN_ENUM_CONVERSION = YES;
417
+ CLANG_WARN_INFINITE_RECURSION = YES;
418
+ CLANG_WARN_INT_CONVERSION = YES;
419
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
420
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
421
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
422
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
423
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
424
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
425
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
426
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
427
+ CLANG_WARN_UNREACHABLE_CODE = YES;
428
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
429
+ CODE_SIGN_IDENTITY = "Mac Developer";
430
+ COPY_PHASE_STRIP = NO;
431
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
432
+ ENABLE_NS_ASSERTIONS = NO;
433
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
434
+ GCC_C_LANGUAGE_STANDARD = gnu11;
435
+ GCC_NO_COMMON_BLOCKS = YES;
436
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
437
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
438
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
439
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
440
+ GCC_WARN_UNUSED_FUNCTION = YES;
441
+ GCC_WARN_UNUSED_VARIABLE = YES;
442
+ MACOSX_DEPLOYMENT_TARGET = 10.14;
443
+ MTL_ENABLE_DEBUG_INFO = NO;
444
+ MTL_FAST_MATH = YES;
445
+ SDKROOT = macosx;
446
+ SWIFT_COMPILATION_MODE = wholemodule;
447
+ SWIFT_OPTIMIZATION_LEVEL = "-O";
448
+ };
449
+ name = Release;
450
+ };
451
+ F99B0BA022F24329002851D8 /* Debug */ = {
452
+ isa = XCBuildConfiguration;
453
+ buildSettings = {
454
+ CODE_SIGN_IDENTITY = "-";
455
+ CODE_SIGN_STYLE = Manual;
456
+ DEVELOPMENT_TEAM = "";
457
+ PRODUCT_NAME = "$(TARGET_NAME)";
458
+ PROVISIONING_PROFILE_SPECIFIER = "";
459
+ SWIFT_VERSION = 5.0;
460
+ };
461
+ name = Debug;
462
+ };
463
+ F99B0BA122F24329002851D8 /* Release */ = {
464
+ isa = XCBuildConfiguration;
465
+ buildSettings = {
466
+ CODE_SIGN_IDENTITY = "-";
467
+ CODE_SIGN_STYLE = Manual;
468
+ DEVELOPMENT_TEAM = "";
469
+ PRODUCT_NAME = "$(TARGET_NAME)";
470
+ PROVISIONING_PROFILE_SPECIFIER = "";
471
+ SWIFT_VERSION = 5.0;
472
+ };
473
+ name = Release;
474
+ };
475
+ /* End XCBuildConfiguration section */
476
+
477
+ /* Begin XCConfigurationList section */
478
+ F907EA7722F3736E00196382 /* Build configuration list for PBXNativeTarget "drawText Tests" */ = {
479
+ isa = XCConfigurationList;
480
+ buildConfigurations = (
481
+ F907EA7522F3736E00196382 /* Debug */,
482
+ F907EA7622F3736E00196382 /* Release */,
483
+ );
484
+ defaultConfigurationIsVisible = 0;
485
+ defaultConfigurationName = Release;
486
+ };
487
+ F99B0B9322F24329002851D8 /* Build configuration list for PBXProject "drawText" */ = {
488
+ isa = XCConfigurationList;
489
+ buildConfigurations = (
490
+ F99B0B9D22F24329002851D8 /* Debug */,
491
+ F99B0B9E22F24329002851D8 /* Release */,
492
+ );
493
+ defaultConfigurationIsVisible = 0;
494
+ defaultConfigurationName = Release;
495
+ };
496
+ F99B0B9F22F24329002851D8 /* Build configuration list for PBXNativeTarget "drawText" */ = {
497
+ isa = XCConfigurationList;
498
+ buildConfigurations = (
499
+ F99B0BA022F24329002851D8 /* Debug */,
500
+ F99B0BA122F24329002851D8 /* Release */,
501
+ );
502
+ defaultConfigurationIsVisible = 0;
503
+ defaultConfigurationName = Release;
504
+ };
505
+ /* End XCConfigurationList section */
506
+ };
507
+ rootObject = F99B0B9022F24329002851D8 /* Project object */;
508
+ }