@@ -11,103 +11,114 @@ import Screeen
11
11
import RxSwift
12
12
import RxCocoa
13
13
14
- public extension ScreenShotObserver {
14
+ extension Reactive where Base: ScreenShotObserver {
15
+
15
16
/**
16
17
Reactive wrapper for `delegate`.
18
+
17
19
For more information take a look at `DelegateProxyType` protocol documentation.
18
20
*/
19
- public var rx_delegate : DelegateProxy {
20
- return proxyForObject ( RxScreeenDelegateProxy . self , self )
21
+ public var delegate : DelegateProxy {
22
+ return RxScreeenDelegateProxy . proxyForObject ( base )
21
23
}
22
- }
23
-
24
- public extension ScreenShotObserver {
25
24
26
25
// MARK: - Responding to screenshot image
27
- public var rx_image : Observable < NSImage > {
28
- return Observable
29
- . of ( rx_delegate. observe ( #selector( ScreenShotObserverDelegate . screenShotObserver ( _: addedItem: ) ) ) ,
30
- rx_delegate. observe ( #selector( ScreenShotObserverDelegate . screenShotObserver ( _: updatedItem: ) ) ) ,
31
- rx_delegate. observe ( #selector( ScreenShotObserverDelegate . screenShotObserver ( _: removedItem: ) ) ) )
32
- . merge ( )
33
- . flatMap { a -> Observable < NSImage > in
34
- guard let metadataItem = a [ 1 ] as? NSMetadataItem else { return Observable . empty ( ) }
35
- guard let imagePath = metadataItem. value ( forAttribute: " kMDItemPath " ) as? String else { return Observable . empty ( ) }
36
- guard let image = NSImage ( contentsOfFile: imagePath) else { return Observable . empty ( ) }
37
-
38
- return Observable . just ( image)
39
- }
26
+ public var image : Observable < NSImage > {
27
+ return Observable . of (
28
+ delegate. methodInvoked ( #selector( ScreenShotObserverDelegate . screenShotObserver ( _: addedItem: ) ) ) ,
29
+ delegate. methodInvoked ( #selector( ScreenShotObserverDelegate . screenShotObserver ( _: updatedItem: ) ) ) ,
30
+ delegate. methodInvoked ( #selector( ScreenShotObserverDelegate . screenShotObserver ( _: removedItem: ) ) )
31
+ )
32
+ . merge ( )
33
+ . flatMap { a -> Observable < NSImage > in
34
+ guard let metadataItem = a [ 1 ] as? NSMetadataItem else { return Observable . empty ( ) }
35
+ guard let imagePath = metadataItem. value ( forAttribute: " kMDItemPath " ) as? String else { return Observable . empty ( ) }
36
+ guard let image = NSImage ( contentsOfFile: imagePath) else { return Observable . empty ( ) }
37
+
38
+ return Observable . just ( image)
39
+ }
40
40
}
41
41
42
42
// MARK: - Responding to screenshot item
43
- public var rx_item : Observable < NSMetadataItem > {
44
- return Observable
45
- . of ( rx_delegate. observe ( #selector( ScreenShotObserverDelegate . screenShotObserver ( _: addedItem: ) ) ) ,
46
- rx_delegate. observe ( #selector( ScreenShotObserverDelegate . screenShotObserver ( _: updatedItem: ) ) ) ,
47
- rx_delegate. observe ( #selector( ScreenShotObserverDelegate . screenShotObserver ( _: removedItem: ) ) ) )
48
- . merge ( )
49
- . flatMap { a -> Observable < NSMetadataItem > in
50
- guard let metadataItem = a [ 1 ] as? NSMetadataItem else { return Observable . empty ( ) }
51
- return Observable . just ( metadataItem)
52
- }
43
+ public var item : Observable < NSMetadataItem > {
44
+ return Observable . of (
45
+ delegate. methodInvoked ( #selector( ScreenShotObserverDelegate . screenShotObserver ( _: addedItem: ) ) ) ,
46
+ delegate. methodInvoked ( #selector( ScreenShotObserverDelegate . screenShotObserver ( _: updatedItem: ) ) ) ,
47
+ delegate. methodInvoked ( #selector( ScreenShotObserverDelegate . screenShotObserver ( _: removedItem: ) ) )
48
+ )
49
+ . merge ( )
50
+ . flatMap { a -> Observable < NSMetadataItem > in
51
+ guard let metadataItem = a [ 1 ] as? NSMetadataItem else { return Observable . empty ( ) }
52
+
53
+ return Observable . just ( metadataItem)
54
+ }
53
55
}
54
56
55
57
// MARK: - Delegate methods
56
- public var rx_addedItem : Observable < NSMetadataItem > {
57
- return rx_delegate. observe ( #selector( ScreenShotObserverDelegate . screenShotObserver ( _: addedItem: ) ) )
58
- . flatMap { a -> Observable < NSMetadataItem > in
59
- guard let metadataItem = a [ 1 ] as? NSMetadataItem else { return Observable . empty ( ) }
60
- return Observable . just ( metadataItem)
61
- }
58
+ public var addedItem : Observable < NSMetadataItem > {
59
+ return delegate
60
+ . methodInvoked ( #selector( ScreenShotObserverDelegate . screenShotObserver ( _: addedItem: ) ) )
61
+ . flatMap { a -> Observable < NSMetadataItem > in
62
+ guard let metadataItem = a [ 1 ] as? NSMetadataItem else { return Observable . empty ( ) }
63
+
64
+ return Observable . just ( metadataItem)
65
+ }
62
66
}
63
67
64
- public var rx_addedImage : Observable < NSImage > {
65
- return rx_delegate. observe ( #selector( ScreenShotObserverDelegate . screenShotObserver ( _: addedItem: ) ) )
66
- . flatMap { a -> Observable < NSImage > in
67
- guard let metadataItem = a [ 1 ] as? NSMetadataItem else { return Observable . empty ( ) }
68
- guard let imagePath = metadataItem. value ( forAttribute: " kMDItemPath " ) as? String else { return Observable . empty ( ) }
69
- guard let image = NSImage ( contentsOfFile: imagePath) else { return Observable . empty ( ) }
68
+ public var addedImage : Observable < NSImage > {
69
+ return delegate
70
+ . methodInvoked ( #selector( ScreenShotObserverDelegate . screenShotObserver ( _: addedItem: ) ) )
71
+ . flatMap { a -> Observable < NSImage > in
72
+ guard let metadataItem = a [ 1 ] as? NSMetadataItem else { return Observable . empty ( ) }
73
+ guard let imagePath = metadataItem. value ( forAttribute: " kMDItemPath " ) as? String else { return Observable . empty ( ) }
74
+ guard let image = NSImage ( contentsOfFile: imagePath) else { return Observable . empty ( ) }
70
75
71
- return Observable . just ( image)
72
- }
76
+ return Observable . just ( image)
77
+ }
73
78
}
74
79
75
- public var rx_updatedItem : Observable < NSMetadataItem > {
76
- return rx_delegate. observe ( #selector( ScreenShotObserverDelegate . screenShotObserver ( _: updatedItem: ) ) )
77
- . flatMap { a -> Observable < NSMetadataItem > in
78
- guard let metadataItem = a [ 1 ] as? NSMetadataItem else { return Observable . empty ( ) }
79
- return Observable . just ( metadataItem)
80
- }
80
+ public var updatedItem : Observable < NSMetadataItem > {
81
+ return delegate
82
+ . methodInvoked ( #selector( ScreenShotObserverDelegate . screenShotObserver ( _: updatedItem: ) ) )
83
+ . flatMap { a -> Observable < NSMetadataItem > in
84
+ guard let metadataItem = a [ 1 ] as? NSMetadataItem else { return Observable . empty ( ) }
85
+
86
+ return Observable . just ( metadataItem)
87
+ }
81
88
}
82
89
83
- public var rx_updatedImage : Observable < NSImage > {
84
- return rx_delegate. observe ( #selector( ScreenShotObserverDelegate . screenShotObserver ( _: updatedItem: ) ) )
85
- . flatMap { a -> Observable < NSImage > in
86
- guard let metadataItem = a [ 1 ] as? NSMetadataItem else { return Observable . empty ( ) }
87
- guard let imagePath = metadataItem. value ( forAttribute: " kMDItemPath " ) as? String else { return Observable . empty ( ) }
88
- guard let image = NSImage ( contentsOfFile: imagePath) else { return Observable . empty ( ) }
90
+ public var updatedImage : Observable < NSImage > {
91
+ return delegate
92
+ . methodInvoked ( #selector( ScreenShotObserverDelegate . screenShotObserver ( _: updatedItem: ) ) )
93
+ . flatMap { a -> Observable < NSImage > in
94
+ guard let metadataItem = a [ 1 ] as? NSMetadataItem else { return Observable . empty ( ) }
95
+ guard let imagePath = metadataItem. value ( forAttribute: " kMDItemPath " ) as? String else { return Observable . empty ( ) }
96
+ guard let image = NSImage ( contentsOfFile: imagePath) else { return Observable . empty ( ) }
89
97
90
- return Observable . just ( image)
98
+ return Observable . just ( image)
91
99
}
92
100
}
93
101
94
- public var rx_removedItem : Observable < NSMetadataItem > {
95
- return rx_delegate. observe ( #selector( ScreenShotObserverDelegate . screenShotObserver ( _: removedItem: ) ) )
96
- . flatMap { a -> Observable < NSMetadataItem > in
97
- guard let metadataItem = a [ 1 ] as? NSMetadataItem else { return Observable . empty ( ) }
98
- return Observable . just ( metadataItem)
99
- }
102
+ public var removedItem : Observable < NSMetadataItem > {
103
+ return delegate
104
+ . methodInvoked ( #selector( ScreenShotObserverDelegate . screenShotObserver ( _: removedItem: ) ) )
105
+ . flatMap { a -> Observable < NSMetadataItem > in
106
+ guard let metadataItem = a [ 1 ] as? NSMetadataItem else { return Observable . empty ( ) }
107
+
108
+ return Observable . just ( metadataItem)
109
+ }
100
110
}
101
111
102
- public var rx_removedImage : Observable < NSImage > {
103
- return rx_delegate. observe ( #selector( ScreenShotObserverDelegate . screenShotObserver ( _: removedItem: ) ) )
112
+ public var removedImage : Observable < NSImage > {
113
+ return delegate
114
+ . methodInvoked ( #selector( ScreenShotObserverDelegate . screenShotObserver ( _: removedItem: ) ) )
104
115
. flatMap { a -> Observable < NSImage > in
105
116
guard let metadataItem = a [ 1 ] as? NSMetadataItem else { return Observable . empty ( ) }
106
117
guard let imagePath = metadataItem. value ( forAttribute: " kMDItemPath " ) as? String else { return Observable . empty ( ) }
107
118
guard let image = NSImage ( contentsOfFile: imagePath) else { return Observable . empty ( ) }
108
119
109
120
return Observable . just ( image)
110
- }
121
+ }
111
122
}
112
123
113
124
}
0 commit comments