Skip to content

Instantly share code, notes, and snippets.

@nanoxd
Last active December 16, 2018 02:36
Show Gist options
  • Save nanoxd/97de7b6cd5fb56da0db322092102d5a5 to your computer and use it in GitHub Desktop.
Save nanoxd/97de7b6cd5fb56da0db322092102d5a5 to your computer and use it in GitHub Desktop.
[ObservableType+] Adds additional sugar to `ObservableType`
import Foundation
import RxSwift
import RxCocoa
extension ObservableType {
/// Unwraps an Optional Element if it's present
///
/// - Returns: The safely unwrapped item
func unwrap<T>() -> Observable<T> where E == Optional<T> {
return filter { $0 != nil }.map { $0! }
}
/// Merges the current Observable with another Observer
///
/// - Parameter other: Observable that should be merged in
/// - Returns: An observable that emits events from both Observables
func merge(with other: Observable<E>) -> Observable<E> {
return Observable.merge(self.asObservable(), other)
}
}
extension ObservableType where E == Bool {
/// Boolean not operator
public func not() -> Observable<Bool> {
return self.map(!)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment