fastlane-plugin-wpmreleasetoolkit 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+ }