File tree Expand file tree Collapse file tree 5 files changed +101
-0
lines changed
Sources/CustomDump/Conformances Expand file tree Collapse file tree 5 files changed +101
-0
lines changed Original file line number Diff line number Diff line change 9
9
- ' *'
10
10
workflow_dispatch :
11
11
12
+ concurrency :
13
+ group : ci-${{ github.ref }}
14
+ cancel-in-progress : true
15
+
12
16
jobs :
13
17
macos :
14
18
name : macOS (Xcode ${{ matrix.xcode }})
Original file line number Diff line number Diff line change 5
5
- published
6
6
workflow_dispatch :
7
7
8
+ concurrency :
9
+ group : documentation-${{ github.ref }}
10
+ cancel-in-progress : true
11
+
8
12
jobs :
9
13
build :
10
14
runs-on : ubuntu-latest
Original file line number Diff line number Diff line change 5
5
branches :
6
6
- main
7
7
8
+ concurrency :
9
+ group : format-${{ github.ref }}
10
+ cancel-in-progress : true
11
+
8
12
jobs :
9
13
swift_format :
10
14
name : swift-format
Original file line number Diff line number Diff line change
1
+ name : Release
2
+ on :
3
+ release :
4
+ types : [published]
5
+ workflow_dispatch :
6
+ jobs :
7
+ project-channel :
8
+ runs-on : ubuntu-latest
9
+ steps :
10
+ - name : Dump Github context
11
+ env :
12
+ GITHUB_CONTEXT : ${{ toJSON(github) }}
13
+ run : echo "$GITHUB_CONTEXT"
14
+ - name : Slack Notification on SUCCESS
15
+ if : success()
16
+ uses : tokorom/action-slack-incoming-webhook@main
17
+ env :
18
+ INCOMING_WEBHOOK_URL : ${{ secrets.SLACK_PROJECT_CHANNEL_WEBHOOK_URL }}
19
+ with :
20
+ text : swift-custom-dump ${{ github.event.release.tag_name }} has been released.
21
+ blocks : |
22
+ [
23
+ {
24
+ "type": "header",
25
+ "text": {
26
+ "type": "plain_text",
27
+ "text": "swift-custom-dump ${{ github.event.release.tag_name}}"
28
+ }
29
+ },
30
+ {
31
+ "type": "section",
32
+ "text": {
33
+ "type": "mrkdwn",
34
+ "text": ${{ toJSON(github.event.release.body) }}
35
+ }
36
+ },
37
+ {
38
+ "type": "section",
39
+ "text": {
40
+ "type": "mrkdwn",
41
+ "text": "${{ github.event.release.html_url }}"
42
+ }
43
+ }
44
+ ]
45
+
46
+ releases-channel :
47
+ runs-on : ubuntu-latest
48
+ steps :
49
+ - name : Dump Github context
50
+ env :
51
+ GITHUB_CONTEXT : ${{ toJSON(github) }}
52
+ run : echo "$GITHUB_CONTEXT"
53
+ - name : Slack Notification on SUCCESS
54
+ if : success()
55
+ uses : tokorom/action-slack-incoming-webhook@main
56
+ env :
57
+ INCOMING_WEBHOOK_URL : ${{ secrets.SLACK_RELEASES_WEBHOOK_URL }}
58
+ with :
59
+ text : swift-custom-dump ${{ github.event.release.tag_name }} has been released.
60
+ blocks : |
61
+ [
62
+ {
63
+ "type": "header",
64
+ "text": {
65
+ "type": "plain_text",
66
+ "text": "swift-custom-dump ${{ github.event.release.tag_name}}"
67
+ }
68
+ },
69
+ {
70
+ "type": "section",
71
+ "text": {
72
+ "type": "mrkdwn",
73
+ "text": ${{ toJSON(github.event.release.body) }}
74
+ }
75
+ },
76
+ {
77
+ "type": "section",
78
+ "text": {
79
+ "type": "mrkdwn",
80
+ "text": "${{ github.event.release.html_url }}"
81
+ }
82
+ }
83
+ ]
Original file line number Diff line number Diff line change
1
+ import Foundation
2
+
1
3
extension AnyKeyPath : CustomDumpStringConvertible {
2
4
public var customDumpDescription : String {
3
5
#if swift(>=5.8)
@@ -6,6 +8,9 @@ extension AnyKeyPath: CustomDumpStringConvertible {
6
8
}
7
9
#endif
8
10
#if os(iOS) || os(macOS) || os(tvOS) || os(watchOS)
11
+ keyPathToNameLock. lock ( )
12
+ defer { keyPathToNameLock. unlock ( ) }
13
+
9
14
guard let name = keyPathToName [ self ] else {
10
15
func reflectName( ) -> String {
11
16
var namedKeyPaths = Reflection . allNamedKeyPaths ( forUnderlyingTypeOf: Self . rootType)
@@ -36,6 +41,7 @@ extension AnyKeyPath: CustomDumpStringConvertible {
36
41
}
37
42
38
43
#if os(iOS) || os(macOS) || os(tvOS) || os(watchOS)
44
+ private var keyPathToNameLock = NSRecursiveLock ( )
39
45
private var keyPathToName : [ AnyKeyPath : String ] = [ : ]
40
46
41
47
// The source code below was extracted from the "KeyPath Reflection" branch of Apple's
You can’t perform that action at this time.
0 commit comments