30 lines
828 B
Swift
30 lines
828 B
Swift
//
|
|
// MockWireframe.swift
|
|
// RxExample
|
|
//
|
|
// Created by Krunoslav Zaher on 12/29/15.
|
|
// Copyright © 2015 Krunoslav Zaher. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
import RxSwift
|
|
|
|
class MockWireframe : Wireframe {
|
|
let _openURL: (URL) -> ()
|
|
let _promptFor: (String, Any, [Any]) -> Observable<Any>
|
|
|
|
init(openURL: @escaping (URL) -> () = notImplementedSync(),
|
|
promptFor: @escaping (String, Any, [Any]) -> Observable<Any> = notImplemented()) {
|
|
_openURL = openURL
|
|
_promptFor = promptFor
|
|
}
|
|
|
|
func open(url: URL) {
|
|
_openURL(url)
|
|
}
|
|
|
|
func promptFor<Action: CustomStringConvertible>(_ message: String, cancelAction: Action, actions: [Action]) -> Observable<Action> {
|
|
return _promptFor(message, cancelAction, actions.map { $0 as Any }).map { $0 as! Action }
|
|
}
|
|
}
|