@@ -11,15 +11,17 @@ final class ObjectInterposeTests: InterposeKitTestCase {
1111 XCTAssertEqual ( testObj. sayHi ( ) , testClassHi)
1212 XCTAssertEqual ( testObj2. sayHi ( ) , testClassHi)
1313
14- let hook = try testObj. hook (
15- #selector( TestClass . sayHi) ,
14+ let hook = try testObj. addHook (
15+ for : #selector( TestClass . sayHi) ,
1616 methodSignature: ( @convention( c) ( AnyObject, Selector) - > String) . self,
17- hookSignature: ( @convention( block) ( AnyObject) - > String) . self) { store in { bSelf in
18- print ( " Before Interposing \( bSelf) " )
19- let string = store. original ( bSelf, store. selector)
20- print ( " After Interposing \( bSelf) " )
17+ hookSignature: ( @convention( block) ( AnyObject) - > String) . self
18+ ) { hook in
19+ return { `self` in
20+ print ( " Before Interposing \( self ) " )
21+ let string = hook. original ( self , hook. selector)
22+ print ( " After Interposing \( self ) " )
2123 return string + testString
22- }
24+ }
2325 }
2426
2527 XCTAssertEqual ( testObj. sayHi ( ) , testClassHi + testString)
@@ -38,11 +40,14 @@ final class ObjectInterposeTests: InterposeKitTestCase {
3840 let returnIntOverrideOffset = 2
3941 XCTAssertEqual ( testObj. returnInt ( ) , returnIntDefault)
4042
41- let hook = try testObj. hook ( #selector( TestClass . returnInt) ) { ( store: TypedHook
42- < @convention ( c) ( AnyObject , Selector ) -> Int ,
43- @convention ( block) ( AnyObject ) -> Int > ) in {
44- let int = store. original ( $0, store. selector)
45- return int + returnIntOverrideOffset
43+ let hook = try testObj. addHook (
44+ for: #selector( TestClass . returnInt) ,
45+ methodSignature: ( @convention( c) ( AnyObject, Selector) - > Int) . self,
46+ hookSignature: ( @convention( block) ( AnyObject) - > Int) . self
47+ ) { hook in
48+ return { `self` in
49+ let int = hook. original ( self , hook. selector)
50+ return int + returnIntOverrideOffset
4651 }
4752 }
4853
@@ -66,11 +71,14 @@ final class ObjectInterposeTests: InterposeKitTestCase {
6671 XCTAssertEqual ( testObj. returnInt ( ) , returnIntDefault)
6772
6873 // Functions need to be `@objc dynamic` to be hookable.
69- let hook = try testObj. hook ( #selector( TestClass . returnInt) ) { ( store: TypedHook
70- < @convention ( c) ( AnyObject , Selector ) -> Int ,
71- @convention ( block) ( AnyObject ) -> Int > ) in {
74+ let hook = try testObj. addHook (
75+ for: #selector( TestClass . returnInt) ,
76+ methodSignature: ( @convention( c) ( AnyObject, Selector) - > Int) . self,
77+ hookSignature: ( @convention( block) ( AnyObject) - > Int) . self
78+ ) { hook in
79+ return { `self` in
7280 // You're free to skip calling the original implementation.
73- store . original ( $0 , store . selector) + returnIntOverrideOffset
81+ hook . original ( self , hook . selector) + returnIntOverrideOffset
7482 }
7583 }
7684 XCTAssertEqual ( testObj. returnInt ( ) , returnIntDefault + returnIntOverrideOffset)
@@ -102,11 +110,13 @@ final class ObjectInterposeTests: InterposeKitTestCase {
102110 XCTAssertEqual ( testObj. calculate ( var1: 1 , var2: 2 , var3: 3 ) , 1 + 2 + 3 )
103111
104112 // Functions need to be `@objc dynamic` to be hookable.
105- let hook = try testObj. hook ( #selector( TestClass . calculate) ) { ( store: TypedHook
106- < @convention ( c) ( AnyObject , Selector , Int , Int , Int ) -> Int ,
107- @convention ( block) ( AnyObject , Int , Int , Int ) -> Int > ) in {
108- // You're free to skip calling the original implementation.
109- let orig = store. original ( $0, store. selector, $1, $2, $3)
113+ let hook = try testObj. addHook (
114+ for: #selector( TestClass . calculate) ,
115+ methodSignature: ( @convention( c) ( AnyObject, Selector, Int, Int, Int) - > Int) . self,
116+ hookSignature: ( @convention( block) ( AnyObject, Int, Int, Int) - > Int) . self
117+ ) { hook in
118+ return {
119+ let orig = hook. original ( $0, hook. selector, $1, $2, $3)
110120 return orig + 1
111121 }
112122 }
@@ -121,11 +131,14 @@ final class ObjectInterposeTests: InterposeKitTestCase {
121131 var4: 4 , var5: 5 , var6: 6 ) , 1 + 2 + 3 + 4 + 5 + 6 )
122132
123133 // Functions need to be `@objc dynamic` to be hookable.
124- let hook = try testObj. hook ( #selector( TestClass . calculate2) ) { ( store: TypedHook
125- < @convention ( c) ( AnyObject , Selector , Int , Int , Int , Int , Int , Int ) -> Int ,
126- @convention ( block) ( AnyObject , Int , Int , Int , Int , Int , Int ) -> Int > ) in {
134+ let hook = try testObj. addHook (
135+ for: #selector( TestClass . calculate2) ,
136+ methodSignature: ( @convention( c) ( AnyObject, Selector, Int, Int, Int, Int, Int, Int) - > Int) . self,
137+ hookSignature: ( @convention( block) ( AnyObject, Int, Int, Int, Int, Int, Int) - > Int) . self
138+ ) { hook in
139+ return {
127140 // You're free to skip calling the original implementation.
128- let orig = store . original ( $0, store . selector, $1, $2, $3, $4, $5, $6)
141+ let orig = hook . original ( $0, hook . selector, $1, $2, $3, $4, $5, $6)
129142 return orig + 1
130143 }
131144 }
@@ -140,10 +153,13 @@ final class ObjectInterposeTests: InterposeKitTestCase {
140153 XCTAssertEqual ( testObj. doubleString ( string: str) , str + str)
141154
142155 // Functions need to be `@objc dynamic` to be hookable.
143- let hook = try testObj. hook ( #selector( TestClass . doubleString) ) { ( store: TypedHook
144- < @convention ( c) ( AnyObject , Selector , String ) -> String ,
145- @convention ( block) ( AnyObject , String ) -> String > ) in {
146- store. original ( $0, store. selector, $1) + str
156+ let hook = try testObj. addHook (
157+ for: #selector( TestClass . doubleString) ,
158+ methodSignature: ( @convention( c) ( AnyObject, Selector, String) - > String) . self,
159+ hookSignature: ( @convention( block) ( AnyObject, String) - > String) . self
160+ ) { hook in
161+ return { `self`, parameter in
162+ hook. original ( self , hook. selector, parameter) + str
147163 }
148164 }
149165 XCTAssertEqual ( testObj. doubleString ( string: str) , str + str + str)
@@ -155,8 +171,8 @@ final class ObjectInterposeTests: InterposeKitTestCase {
155171 let object = TestClass ( )
156172 XCTAssertEqual ( object. getPoint ( ) , CGPoint ( x: - 1 , y: 1 ) )
157173
158- let hook = try object. hook (
159- #selector( TestClass . getPoint) ,
174+ let hook = try object. addHook (
175+ for : #selector( TestClass . getPoint) ,
160176 methodSignature: ( @convention( c) ( NSObject, Selector) - > CGPoint) . self,
161177 hookSignature: ( @convention( block) ( NSObject) - > CGPoint) . self
162178 ) { hook in
@@ -182,8 +198,8 @@ final class ObjectInterposeTests: InterposeKitTestCase {
182198 CGPoint ( x: 1 , y: 1 )
183199 )
184200
185- let hook = try object. hook (
186- #selector( TestClass . passthroughPoint ( _: ) ) ,
201+ let hook = try object. addHook (
202+ for : #selector( TestClass . passthroughPoint ( _: ) ) ,
187203 methodSignature: ( @convention( c) ( NSObject, Selector, CGPoint) - > CGPoint) . self,
188204 hookSignature: ( @convention( block) ( NSObject, CGPoint) - > CGPoint) . self
189205 ) { hook in
0 commit comments