Created
January 13, 2017 17:13
-
-
Save gorozco58/6a397063a849f991f23c8d9162e2499d to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
protocol RepositoryViewModelType: Transitionable //Make our view model Transitionable { | |
var repositorySubject: PublishSubject<Repository> { get } | |
func fetchRepositories(for observableText: Observable<String>) -> Driver<Result<[Repository]>> | |
} | |
class RepositoryViewModel : RepositoryViewModelType { | |
fileprivate let disposeBag = DisposeBag() | |
var repositorySubject = PublishSubject<Repository>()//add repositorySubject to recive the repositories selected | |
weak var navigationCoordinator: CoordinatorType? //add navigationCoordinator property this is a protocol and weak to avoid retain cycles. | |
init() { | |
//subscribe to repositories change | |
repositorySubject | |
.asObservable() | |
.subscribe(onNext: { [unowned self] in | |
self.navigationCoordinator?.performTransition(transition: .showRepository($0)) //perform the transition | |
}) | |
.addDisposableTo(disposeBag) | |
} | |
func fetchRepositories(for observableText: Observable<String>) -> Driver<Result<[Repository]>> { | |
return RepositoryNetworking | |
.fetchRepositories(for: observableText) | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment