Fix: Using Single for rx.validate

fix #26
This commit is contained in:
Flávio Caetano 2018-03-06 19:06:18 -03:00
parent 55d8988b77
commit 3ec88fcf7e
3 changed files with 6 additions and 7 deletions

View File

@ -55,7 +55,7 @@
</BuildableReference>
</TestableReference>
<TestableReference
skipped = "YES">
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "F28FAC9B200E425600E14987"

View File

@ -90,7 +90,7 @@ class ReCaptcha_Rx__Tests: XCTestCase {
_ = try manager.rx.validate(on: presenterView, resetOnError: false)
.toBlocking()
.single()
XCTFail("should have thrown exception")
}
catch let error {

View File

@ -30,16 +30,14 @@ public extension Reactive where Base: ReCaptchaWebViewManager {
- See: `ReCaptchaWebViewManager.stop()`
*/
func validate(on view: UIView, resetOnError: Bool = true) -> Observable<String> {
return Observable<String>.create { [weak base] (observer: AnyObserver<String>) in
return Single<String>.create { [weak base] single in
base?.validate(on: view, resetOnError: resetOnError) { result in
defer { observer.onCompleted() }
switch result {
case .token(let token):
observer.onNext(token)
single(.success(token))
case .error(let error):
observer.onError(error)
single(.error(error))
}
}
@ -47,6 +45,7 @@ public extension Reactive where Base: ReCaptchaWebViewManager {
base?.stop()
}
}
.asObservable()
}
/**